web-dev-qa-db-ja.com

1つのクエリでmysqlから複数の行を選択し、それらをphpで使用する方法

私は現在、下の写真のようなデータベースを持っています。

enter image description here

Number1が1に等しい行を選択するクエリがある場合

mysql_fetch_assoc()

pHPで私は最初のものだけを与えられます2番目を取得する方法はありますか?のような次元配列を介してのように

array['number2'][2] 

または同様のもの

8
Jjack

Mysql_fetch_assocへの繰り返し呼び出しを使用します。 PHPマニュアルに記載されています。

http://php.net/manual/function.mysql-fetch-assoc.php

// While a row of data exists, put that row in $row as an associative array
// Note: If you're expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you'll
//       then create $userid, $fullname, and $userstatus
while ($row = mysql_fetch_assoc($result)) {
    echo $row["userid"];
    echo $row["fullname"];
    echo $row["userstatus"];
}

必要に応じて、これを使用して、スクリプトの他の部分で使用するための多次元配列を作成できます。

15
Justin Aquadro
$Query="select SubCode,SubLongName from subjects where sem=1";
$Subject=mysqli_query($con,$Query);
$i=-1;

while($row = mysqli_fetch_array($Subject))
{
    $i++;

    $SubjectCode[$i]['SubCode']=$row['SubCode'];
    $SubjectCode[$i]['SubLongName']=$row['SubLongName'];

}

ここで、whileループは各行をフェッチします。行のすべての列は$row変数(配列)に格納されますが、次の反復が発生すると失われます。したがって、配列$rowの内容を$SubjectCodeという多次元配列にコピーします。各行の.contentsは、その配列の最初のインデックスに格納されます。これは、後でスクリプトで再利用できます。 (私はPHPを初めて使用するので、より良い方法を知っている人がこれに出くわした場合は、新しいことを学ぶことができるように、私の名前のコメントと一緒に言及してください。)

6
Nidhin David

これは別の簡単な方法です

$sql_shakil ="SELECT app_id, doctor_id FROM patients WHERE doctor_id = 201 ORDER BY ABS(app_id) ASC";
if ($result = $con->query($sql_shakil)) {

while ($row = $result->fetch_assoc()) {
    printf ("%s (%s)\n", $row["app_id"], $row["doctor_id"]);
}

デモリンク

1
A.A Noman