MySQL sütundan PHP dizi oluşturma

7 Cevap php

mysql_fetch_array Bana getirilen satır bir dizi verecektir. Ne iyi yolu, bir sütundaki tüm satırların değerlerinden bir dizi oluşturmak mı?

Edit: Büyük yanıtlar Lots. Size cevap herkese teşekkürler! Ben bamya ve GSTO önerilen ne benzer bir çözüm ile gidiş sona erdi. O (sadece küçük adam, kişisel hiçbir yardım) daha az puan var çünkü GSTO cevabı puan verdi.

7 Cevap

Eğer dizi döngü olabilir ve yeni bir tane oluşturun, şöyle:

$column = array();

while($row = mysql_fetch_array($info)){
    $column[] = $row[$key];
//Edited - added semicolon at the End of line.1st and 4th(prev) line

}

Mysql uzantısı kullanarak bunu yapmak için hiçbir işlevi yoktur, bunu yapabilirsiniz:

$result = array();
while ($row = mysql_fetch_array($r, MYSQL_NUM)) {
    $result[] = $row[0];
}

Bu görünüşte bir sayısal endeksli dizide sütunları almak için marjinal hızlı ve ilişkisel dizi biçimi olan burada gerçek bir yararı yoktur.

Sonuç döngü:

$result = mysql_query(...);
$data = array();
while ($row = mysql_fetch_array($result)) {
    array_push($data, $row["columnyouwant"]);
}

Kayıtlarını almak ve onları bir diziye saklamak için while döngü kullanın:

$array = array();
while ($row = mysql_fetch_array()) {
    $array[] = $row['column-x'];
}

Yerine PDO :: sorgu php-mysql dönüş değeri PDO kullanırsanız () örn kullanabilirsiniz, yani Traversable arabirimini uygular foreach () ile (mysql sonuç kaynağın aksine sen mysql_query olsun).

foreach( $pdo->query('SELECT x,y,z FROM foo') as $row ) {

Ve durumda bu yeterli değildir ve gerçekten, gerçekten bir dizi (örneğin get_class ($ x) === 'Dizi') ihtiyaç fetchAll() yöntem var.

bunu yapabilirsiniz:

        $columns = array();
        $i=1;
        while( $row = mysql_fetch_array($sql) )
           {
              $columns [$i]=$row['value'];
              $i++;
           }

Eğer bu tablodaki diğer bilgi mi yoksa, size gereken ve tüm daha kolay hale getirir, sadece sütun sorgulayabilirsiniz:

$query = mysql_query("SELECT * FROM table WHERE id='$int' LIMIT 1");
$column = array();
$column  = mysql_fetch_array($query);