-2

ここでいくつかの結果をエコーし​​ようとしています $aditya は複数の値を含む配列であり、 $var3 にも複数の値が含まれていますが、エコーすると1つの値しか表示されません

私が何をしているのか理解してください

$query1= mysql_query("SELECT * FROM table WHERE col2 in ($aditya)");

while($var1=mysql_fetch_array($query1))
{

$var2=$var1['col1'];
$var3=$var1['col2'];
$var4=$var1['col3'];

 $name=mysql_query("SELECT f_name FROM table2 WHERE f_id=$var2");
$tname=mysql_fetch_array($name);



   echo "</br>"."</br>"."<a style='color:blue' href=something.php?f_id=$var2   target=_BLANK >".$name['f_name']."</a>"." "."$var3"." "."("."$var4".")";

}
4

3 に答える 3

0

$aditya が実際に配列である場合、クエリで使用する方法は不可能です。MySQL はコンマで区切られた要素のリストを想定しているため、PHP 配列を内破してクエリに渡すことができます。

$query1= mysql_query("SELECT * FROM table WHERE col2 in (" . implode(',', $aditya) . ")");

それに加えて、$var1、$var2 などの名前を付けると、自分自身やプロジェクトで作業している他のコーダーを混乱させるだけなので、変数にもっと意味のある名前を付けることを検討することをお勧めします。単なるヒントです。

于 2012-08-10T06:38:24.357 に答える
0

ほとんどの場合、問題はクエリに起因します。echo $query1; exit;もしそうならphpmyadminに入れて試してみてください。クエリから得られるものを確認する他の方法は、次のように配置することです。

echo $var1['col1'].", ".$var1['col2'].", ".$var1['col3'];

while() で、クエリから得られるものを確認します。問題は確かにエコーにはありません。

更新 2

$query1 = ("
    SELECT unique_ids, GROUP_CONCAT( whatuwant )
    FROM table
    WHERE col2 in ($aditya)
    GROUP BY unique_ids
");
于 2012-08-10T06:31:42.163 に答える
0

ここで多くのことが間違っている可能性があります

A.$adityaが適切に定義されていませんでした。配列の場合はimplode、適切にフォーマットされていることを確認してください。

期待される出力は次のようになります

 SELECT * FROM table  WHERE col2  IN ( 250, 220, 170 );

B.$nameは配列ではないため、$name['f_name']機能しません。$tname['f_name']代わりにuse を使用します

C.リモートでテストできないほど多くのことが実行できるため、コードを持っている正確なエラーで質問を更新する必要があると思います。tableそもそもテーブル名が存在するのか

于 2012-08-10T06:42:24.680 に答える