-1

PHPコードを変更する必要があり、いくつかの問題に遭遇しました(私は通常Javaでコーディングしており、PHPで開発を行っていないことに注意してください)。

私は次のコードの平和を持っています:

   $sql = "SELECT id_class FROM  events e join event_to_class ec on e.id = ec.id_event WHERE e.id = ".$r['id']."  and ec.id_evaluator = 8 and (".$stepNumbers.")";
   $mirekClassesForEvent = mysql_query($sql) or trigger_error(mysql_error().$sql); 
   if (!$mirekClassesForEvent) {
      echo "Could not successfully run query from DB: " . mysql_error();
      exit;
   }               
   $mirekClasses = array();        
   if (mysql_num_rows($mirekClassesForEvent) > 0 ) {
      while($row = mysql_fetch_assoc($mirekClassesForEvent) {
           array_push($mirekClasses, $row['id_class'];
      }
   } 

select ステートメントは次のようになります。

SELECT id_class FROM events e join event_to_class ec on e.id = ec.id_event WHERE e.id = 1 and ec.id_evaluator = 8 and (e.id_step=4 OR e.id_step=5 OR e.id_step=6)

MySQL DBで実行すると正常に実行され、1行のデータが返されます

id_class=27

.

ただし、上記のコードを実行すると、php スクリプトがクラッシュします (関数を使用しようとしても、エラー メッセージは表示されませんmysql_error()) 。

私のデバッグから、問題は while ステートメントにあるように見えますが、何が問題なのかわかりません。

4

2 に答える 2

4

)行末に a がなく、while行に別のa がありませんarray_push。エラーが表示されない場合は、エラー レポートがオフになっている可能性があります。通常、一致しない括弧の強調表示が含まれているため、構文の強調表示を備えたエディターを使用すると、この種のエラーを見つけるのに役立ちます。

を使用すると、クエリを少し簡略化できることに注意してくださいIN

... and e.id_step IN (4,5,6)

またはBETWEEN:

... and e.id_step BETWEEN 4 AND 6
于 2012-10-05T15:41:19.340 に答える
2

コードに構文エラーがあります:

while($row = mysql_fetch_assoc($mirekClassesForEvent) {
       array_push($mirekClasses, $row['id_class'];
  }

while ループに閉じ括弧がありません:

while($row = mysql_fetch_assoc($mirekClassesForEvent)) {

追加するために編集されました:

そしてarray_push、あまりにも - よく発見されたコリンクの 1 つ

于 2012-10-05T15:41:01.703 に答える