【问题标题】:ECHO No error but not displaying data from MYSQLECHO 没有错误但不显示来自 MYSQL 的数据
【发布时间】:2013-03-09 22:02:29
【问题描述】:

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>

【问题讨论】:

    标签: php mysql drop-down-menu echo


    【解决方案1】:
    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' 的变量代表一个数字数组,结果总是会让你失望'

    【讨论】:

      【解决方案2】:

      您必须将 while 循环更改为

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

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

      您应该考虑切换到mysqliPDO,因为mysql_* 函数现在已被弃用。

      【讨论】:

      • 感谢您通知我。我切换到 PDO。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 2013-05-17
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多