0

echo 'DESCRIPTION: '.$row['DESCRIPTION']; 以下のコードではまったく表示されていません...最初のステートメントを実行しますが、2番目のステートメントは実行されていないようです。理由がわかりません。最悪の種類のエラーであるエラーは発生しません。助けてください!

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

関数は現在廃止されているため、mysqliまたはに切り替えることを検討する必要があります。PDOmysql_*

于 2013-03-09T22:04:32.200 に答える