0

通常、これを行う必要はあまりありませんでしたが、今回は私のプロセスが正しく機能していないようだったので、説明を求めています

これは、クエリ内の単一のアイテムに対して機能します。

    $query="SELECT data1 as product FROM Products ORDER BY Title"; 
    $result = mysql_query($query)
        or die("Query failed -".$query);        
    $rows=array();
    while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        $rows[] = $row;
    }

私が言ったように、これは単一のアイテムが返される場合にうまく機能し、クエリで返されるすべてのアイテムは $rows という配列になります

    $query="SELECT data1 as product, data2 as info FROM Products ORDER BY Title"; 
    $result = mysql_query($query)
        or die("Query failed -".$query);        
    $i=0;
    $data1=array();
    $data2=array();

    while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
        $data1[$i] = $row[0];
        $data2[$i++] = $row[1];
    }

これは同じことをしていないように見えるか、何かを逃しました。

何か不足していますか?そうでない場合は、私の問題として何か他のものを見る必要がありますが、これについて確認する必要があります.

私が望む結果は、クエリ結果の最初の項目をすべて含む 2 つの配列と、クエリ結果の 2 番目の項目をすべて含む 2 番目の配列です。

4

2 に答える 2

2

試す:

$row = array();
while($row[] = mysql_fetch_array($result, MYSQL_BOTH)) {}

そして、すでに述べたように、mysqli または PDO を使用してください。mysql_* は廃止されました。

于 2012-11-06T16:32:46.250 に答える
0
 $query="SELECT data1 as product, data2 as info FROM Products ORDER BY Title"; 
$result = mysql_query($query)
    or die("Query failed -".$query);        
$i=0;
$data1=array();
$data2=array();

while($row = mysql_fetch_array($result, MYSQL_BOTH)) {
    $data1[$i] = $row[0];
    $data2[$i] = $row[1];
    $i++;
}
于 2012-11-06T16:32:45.203 に答える