Php 检查并从数据库返回值
我有一个小问题: 我想从数据库中检索一些行,它检索得很好,但当我在文本字段中插入数据库中不存在的特定值进行跟踪时,它返回一个空/空白页,下面是我使用的代码:Php 检查并从数据库返回值,php,mysql,Php,Mysql,我有一个小问题: 我想从数据库中检索一些行,它检索得很好,但当我在文本字段中插入数据库中不存在的特定值进行跟踪时,它返回一个空/空白页,下面是我使用的代码: <form id="track" name="track" method="post" action="track_now.php"> <h2>Track your shipment Here</h2> <p><label> Tracking Ref
<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' ;
}
将特定值插入数据库中不存在的字段是什么意思?请使用mysqli或PDO。。mysql\u函数不再维护。另外,您没有像这样关闭表单:我没有看到名为reference的表单元素。我也看不到结束标记。在打开警告后立即在文件顶部添加错误报告:mysql_查询是一个过时的接口,不应在新的应用程序中使用,因为它将在未来的PHP版本中删除。一个现代的替代品。如果您是PHP新手,可以使用类似的指南来帮助您解释最佳实践。大家好,谢谢您的回复。情况就是这样。用户来到站点跟踪某个内容。他插入一个引用并单击track,引用号返回数据库中的行。这很好,但我希望出现这样的情况:如果插入了错误的号码,就会弹出一条警告消息,如:无效号码/错误号码。我已经编辑了包含表单元素的代码。另外,我已经关闭了表单,但仍然没有更改..如何以及在何处使用PDO对象?当我使用else时,dreamweaver给了我代码提示错误。出于好奇,为什么你在这里发布问题后消失了9个小时\?hello@Meda,感谢这些代码,不幸的是,这些代码在C:\wamp错误中使用了未定义的常量rs-假定为“rs”。我在这里做错了什么?@AdenijiOlasunkanmi我错过了美元符号,我相信你能纠正我的小错误。我很抱歉@meda,当我发布问题时,已经是晚上10:37了,所以我睡了。时差太大了。现在是早上7点07分。。我不是故意消失的,我只是不能欺骗大自然。。请接受我的道歉。
if(mysql_num_rows($rs) > 0){
//found a row
}