ECHO没有错误,但没有显示来自MYSQL的数据

时间:2013-03-09 22:02:30

标签: php mysql drop-down-menu echo

echo'描述:'。$ row ['DESCRIPTION'];在下面的代码中根本不显示...它运行第一个语句,但第二个语句似乎没有执行。我不明白为什么。我没有收到任何错误,这是更糟糕的错误。请帮忙!

PHP文件:     

$sql="SELECT * FROM $tbl_name WHERE `ID` != '67' && `ID` != '68' ORDER BY SORT_ORDER ASC";
$result=mysql_query($sql);
if ($result === false) { echo "An error occurred."; }
?>

<?php
//mysql_connect("$host", "$username", "$password")or die("cannot connect");
//mysql_select_db("$db_name")or die("cannot select DB");

      echo $_POST['book'];
      echo $_POST['chapter'];
      $book = $_POST['book'];
      $chapter = $_POST['chapter'];
      $tbl_link = "PLD_LINK";

      $sql1 = "SELECT * FROM $tbl_link WHERE `TITLE` like '%$book%' && `SORT_ORD` = '%$chapter%'";
      $result1=mysql_query($sql);
      if ($result1 === false) { echo "An error occurred."; }
      while ($row = mysql_fetch_array($sql1)){
      echo 'DESCRIPTION: '.$row['DESCRIPTION'];
      }
?>

<?php
while($rows=mysql_fetch_array($result)){
{ $results[] = $rows; }
$tpl->assign('results', $results); 
?>
<?php
}
mysql_close();
unset ($username, $password, $db_name, $tbl_name);
?>

TPL FILE:

<form action="search_bible.php" method="post">
<p><select name='book'><option value="">Select Book</option></p>
{foreach item=rows from=$results}<p><option value='{$rows.TITLE}'>{$rows.TITLE}</option></p>{/foreach}
</select>
&nbsp;
<span style="font-size:12px;">Chapter<input type="text" name="chapter" value="1" size="2" />
&nbsp;
<input type="submit" value="GO">
</form>

2 个答案:

答案 0 :(得分:3)

while ($row = mysql_fetch_array($sql1)){
      echo 'DESCRIPTION: '.$row['DESCRIPTION'];
      }

必须是

while ($row = mysql_fetch_array($result1)){
  echo 'DESCRIPTION: '.$row['DESCRIPTION'];
  }

$result1=mysql_query($sql);

必须是

 $result1=mysql_query($sql1);

您可能需要考虑给变量标题一个更适合您将得到的结果的名称。

这不仅可以让您更容易分辨出哪些会产生什么结果,如果您想要选择一段时间未触及的项目,或者其他人曾经使用过您的代码。

我最后会听到一些老师说的话。

'如果你有一个名为beers的变量'代表一个数字数组,结果总会让你失望'

答案 1 :(得分:1)

您必须将while循环更改为

while ($row = mysql_fetch_array($result1)) {
...
}

因为,$sql1只是一个字符串,而不是之前mysql_query的结果。

您应该考虑切换到mysqliPDO,因为现在已弃用mysql_*个功能。