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>
<span style="font-size:12px;">Chapter<input type="text" name="chapter" value="1" size="2" />
<input type="submit" value="GO">
</form>
答案 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
的结果。
您应该考虑切换到mysqli
或PDO
,因为现在已弃用mysql_*
个功能。