1

テーブルにデータを表示したいこのコードでは、コードにエラーはありませんが、クエリに必要な結果が含まれていても、空のテーブルが表示され続けます。理解を深めるためのコードは次のとおりです。

<?php
$connectdb = mysql_connect('localhost','root','sara', true ) or die ("Not Connect");
 if (!$connectdb)
 {
    die('Could not connect :'. mysql_errno());
  }
 $selestdb  = mysql_select_db('iexa', $connectdb) or die ("not selected database");
  if (isset($_POST['examID'])) {
   $examID = $_POST['examID'];
   }
    echo $examID;
    echo "<br />";
   $query = mysql_query("SELECT  Question  , Choise_1  , Choise_2 , Choise_3 , Choise_4 , Correct_Answer
   FROM question_bank WHERE E_No='examID' ORDER BY Question asc") or die ("mysql error");
 echo "<table width='40%' border='1' cellpadding='5'>
  <tr>
    <td>Qusetion </td>
    <td>Choise 1</td>
    <td>Choise 2</td>
    <td>Choise 3</td>
    <td>Choise 4</td>
    <td>The correct answer</td>
    </tr>";
   echo $query;
  while ($row = mysql_fetch_assoc($query)){
 echo '
  <tr>
   <td>'.$row['Question'].'</td>
   <td>' .$row['Choise_1'].'</td>
    <td>' .$row['Choise_2'].'</td>
   <td>' .$row['Choise_3'].'</td>
   <td>' .$row['Choise_4'].'</td>
    <td>' .$row['Correct_Answer'].'</td>
    </tr>';
     };
     echo "</table>";
     mysql_close($connectdb);
     ?>
4

3 に答える 3

1

問題はE_No='examID'次のとおりです。

E_No='" . mysql_real_escape_string($_POST['examID']) . "'

整数値の場合は、いつでも整数に型キャストできます。クエリは次のようになります。

"SELECT  Question  , Choise_1  , Choise_2 , Choise_3 , Choise_4 , Correct_Answer FROM question_bank WHERE E_No='" . mysql_real_escape_string($_POST['examID']) . "' ORDER BY Question asc"
于 2012-04-27T17:53:00.207 に答える
1

リテラルを検索しています'examId'

これを試して:

$examID = mysql_real_escape_string($_POST['examID']);
$query = mysql_query("SELECT  Question  , Choise_1  , Choise_2 , Choise_3 , Choise_4 , Correct_Answer
FROM question_bank
WHERE E_No='$examID' ORDER BY Question asc");
#           ^ here
于 2012-04-27T17:53:12.977 に答える
0

置き換えてみましたか、それとも死にましたか (「mysql エラー」); または死にます(mysql_error()); ?

試験 ID の先頭にも $ が必要なようです。

于 2012-04-27T17:54:57.987 に答える