gpt4 book ai didi

php - 从数据库中检查和返回值

转载 作者:行者123 更新时间:2023-11-30 22:53:49 24 4
gpt4 key购买 nike

我有这个小问题:

我想从数据库中检索一些行,它检索正常,但是当我在文本字段中插入一个特定值时,该值不存在于数据库中进行跟踪,它返回一个空/空白页,下面是代码我用过:

<form id="track" name="track" method="post" action="track_now.php"> 
<h2>Track your shipment Here</h2>

<p><label> Tracking Reference:
<input type="text" id="reference" name="reference" value="" maxlength="40" required="required" /></label></p>


<div class="button_holder">

<p> <input type="submit" id="track" value="Track Now" maxlength="40" required="required" /></label>
</label></p>

</div>
</form>

这是 track_now.php

<form id="track" name="track" method="post" action=""> 
<h2>Your Shipment Result</h2>

<?php
//error_reporting(0);
$ref = mysql_real_escape_string($_POST['reference']);

// conmnecting to the database
if(isset($ref))
{
$db = mysql_connect('localhost', 'admin', "admin") or die(mysql_error("Cannot Connect to Database"));
mysql_select_db('tracking') or die(mysql_error());

$sql = "SELECT * FROM order_tracking WHERE ship_ref = '".$ref."' ";

$rs = mysql_query($sql);
if($row = mysql_fetch_array($rs)) {

echo '<table width="518" border="1";>';

echo '<tr>';
echo '<td width="137" style="font-size:12px; padding: 5px;" >Shipment Reference: </td>';
echo '<td width="365" style="background-color:#fcfcfc; padding: 10px; font-size:12px;">' . $row['ship_ref'] . "<br />" . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td width="137" style="font-size:12px; padding: 5px;" >Shipment Type: </td>';
echo '<td width="365" style="background-color:#fcfcfc; padding: 10px; font-size:12px;">' . $row['ship_type'] . "<br />" . '</td>';
echo '</tr>';

}

echo "</table>";
}
else if ($rs != $row) {
print 'Invalid Tracking Number, Please <a href="tracking.php"> click here </a> to try again' ;
}

mysql_close();
?>

拜托,我做错了什么?

最佳答案

你的条件可以简化,试试这个:

if(isset($ref)){ 
$db = mysql_connect('localhost', 'admin', "admin") or die(mysql_error("Cannot Connect to Database"));
mysql_select_db('tracking') or die(mysql_error());

$sql = "SELECT * FROM order_tracking WHERE ship_ref = '".$ref."' ";
$rs = mysql_query($sql);
if(!rs){
die(mysql_error());
}

if($row = mysql_fetch_array($rs)) {
echo '<table width="518" border="1";>';

echo '<tr>';
echo '<td width="137" style="font-size:12px; padding: 5px;" >Shipment Reference: </td>';
echo '<td width="365" style="background-color:#fcfcfc; padding: 10px; font-size:12px;">' . $row['ship_ref'] . "<br />" . '</td>';
echo '</tr>';

echo '<tr>';
echo '<td width="137" style="font-size:12px; padding: 5px;" >Shipment Type: </td>';
echo '<td width="365" style="background-color:#fcfcfc; padding: 10px; font-size:12px;">' . $row['ship_type'] . "<br />" . '</td>';
echo '</tr>';
echo "</table>";
}
mysql_close();
}
else{
print 'Invalid Tracking Number, Please <a href="tracking.php"> click here </a> to try again' ;
}

因为如果不满足第一个条件,else if ($rs != $row) 将具有未定义的值。

正如@marco 指出的,您可以在不获取的情况下检查行:

if(mysql_num_rows($rs) > 0){
//found a row
}

关于php - 从数据库中检查和返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27258868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com