1

このコードは私のために働きます。

$result = mysql_query("select * from tbl_rating limit 1 ;");

while($row = mysql_fetch_array($result)){

   echo $row["NameA"];

}

ただし、このコードは機能しません。誰かが私の間違いを指摘できますか?ありがとう。

$result = mysql_query("create temporary table ub_rank as 
select similar.NameA,count(*) rank
from tbl_rating target 
join tbl_rating similar on target.NameB= similar.NameB and target.NameA != similar.NameA and target.Rate= similar.Rate 
where target.NameA = 'tutorA'
group by similar.NameA;

select * from ub_rank limit 1 ;");

while($row = mysql_fetch_array($result)){

    echo $row["NameA"];

  }

エラーメッセージ:

警告:mysql_fetch_array():指定された引数は有効なMySQL結果リソースではありません

しかし、なぜ同じ構造の最初のコードで値を取得できるのでしょうか。

4

2 に答える 2

1

mysql_query()パス内の複数のクエリをサポートしていません。クエリを2つの別々の呼び出しに分割する必要があります。

mysql_query("create temporary table ub_rank as 
  select similar.NameA,count(*) rank
  from tbl_rating target 
  join tbl_rating similar on target.NameB= similar.NameB and target.NameA !=  similar.NameA and target.Rate= similar.Rate 
  where target.NameA = 'tutorA'
  group by similar.NameA
");
$result = mysql_query("select * from ub_rank limit 1 ;");

while($row = mysql_fetch_array($result)){
  echo $row["NameA"];
}
于 2013-03-25T23:56:49.927 に答える
1

mysql_query()は非推奨であるため、とにかく使用すべきではありませんが、そのような1回の呼び出しで複数のクエリを実行することはできません。技術的には、複数のクエリを実行するためにそれをファッジするハックな方法がありますが、それは最初からの結果セットのみを提供します。

これらのクエリは個別に実行する必要があります。または、を使用するように変換する場合は、を使用mysqliできますがmysqli_multi_query、実際には、結果セットが必要ない場合にのみ役立ちます。

于 2013-03-25T23:57:44.790 に答える