0

echo 'DESCRIPTION: '.$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 文件:

<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>
4

2 回答 2

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 的变量,它代表一个数字数组,结果总是会让你失望'

于 2013-03-09T22:04:25.533 回答
1

您必须将 while 循环更改为

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

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

您应该考虑切换到mysqlior PDO,因为mysql_*现在不推荐使用函数。

于 2013-03-09T22:04:32.200 回答