0

forループでインクリメントする配列を使用してデータベースにクエリを実行しようとしています。どういうわけか、これは私が何をしても機能しません、

エラーが発生します:

「SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、1行目の「)」の近くで使用する正しい構文を確認してください。」

データベースがPHPMyAdminで照会されると、すべてが正常に出力されるため、forループ内の何かがそれを台無しにしていると想定しています。何か案は?

私のコード:-

 <?php
$submitclick=$_GET["submitclick"];
if($submitclick==1)
{
require('json.php');
$selec=$_GET["selec"];
$selec=str_replace("'","",$selec);
error_reporting(E_ALL);
mysql_connect("localhost", "seamus", "password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("seamus") or die("No such database");
$sql1 = sprintf("SELECT event FROM attends WHERE student = '%s'",$selec);
$result1 = mysql_query($sql1)
  or die(mysql_error());

while ($row1 = mysql_fetch_array($result1))
 {
  $eve[] = $row1['event'];
 }

for($f=0;$f<count($eve);$f++)
{
$sql = sprintf("SELECT event.id, teaches.staff, day, start, duration, room FROM event JOIN module ON (event.module=module.id) JOIN isin ON (event.id=isin.event) JOIN teaches ON (event.id=teaches.event) JOIN attends ON (event.id=attends.event) WHERE event.id = '%s')",$eve[$f]);
$result = mysql_query($sql)
  or die(mysql_error());  
 $i=0;

while ($row = mysql_fetch_array($result))
    {
     $key =$row['day'].$row['start'];
     $event[$key] = $row['id'];
     $room[$row['id']] = $row['room'];
     $lect[$row['id']] = $row['staff'];
   $time[$i]= $row['duration'];
   $i++;
    }
}     
   $i=0;
4

2 に答える 2

1

ここの直後に、余分な括弧があります'%s'

... WHERE event.id = '%s')",$eve[$f]);

削除するだけで動作するはずです。

于 2012-04-12T00:02:27.593 に答える
1

行を変更します。

$sql = sprintf("SELECT event.id, teaches.staff, day, start, duration, room FROM event JOIN module ON (event.module=module.id) JOIN isin ON (event.id=isin.event) JOIN teaches ON (event.id=teaches.event) JOIN attends ON (event.id=attends.event) WHERE event.id = '%s')",$eve[$f]);

に:

$sql = sprintf("SELECT event.id, teaches.staff, day, start, duration, room FROM event JOIN module ON (event.module=module.id) JOIN isin ON (event.id=isin.event) JOIN teaches ON (event.id=teaches.event) JOIN attends ON (event.id=attends.event) WHERE event.id = %d)",$eve[$f]);

event.idは整数なので。

お役に立てば幸いです。

于 2012-04-12T00:03:03.037 に答える