2016-04-10 29 views
1

Diziyle bir eylem gerçekleştirebilmem için bu sorgudaki değerleri bir dizi olarak nasıl döndürebilirim?Sorgudan değerler alın ve dizi olarak döndürün

$sql = mysql_query("SELECT username FROM `users`"); 
$row = mysql_fetch_array($sql); 

Aşağıdaki gibi olması için kodu nasıl alabilirim? Burada, user1 ve user2, yukarıdaki sorgudan seçilen kullanıcıların kullanıcı adları olacaktır.

$userarray = []; 

foreach($row as $single) 
{ 
    array_push($userarray, $single['username']); 
} 

ve this MySQLi Class kullanmayı deneyebilirsiniz eğer, bu veritabanından istediklerini elde etmek çok basit:

$userarray = array("user1","user2"); 
+1

1) Sorguyu yürütmeniz gerekiyor 2) Verileri bir süre döngüde almak isteyebilirsiniz – Rizier123

cevap

1

En iyi uygulamaları belirtmeden önce, önce çalışma koduna ihtiyacınız vardır. Bu yüzden önce size basit bir çözüm sunacağım.

mysql uzantısıyla bir sorguyu çalıştırmak için, işlev mysql_query'dir, sorgu metnini doğrudan mysql_fetch_array öğesine iletemezsiniz. Daha sonra mysql_fetch_array düşündüğün şeyi yapmaz. mysql_fetch_array, mysql_fetch_row ve mysql_fetch_assoc işlevlerini bir araya getirerek, elde edilen sütunların anahtar adlarını sayısal indeksleriyle birlikte saklar. Mysql_fetch_array işlevi, sorgunuzdaki tüm satırları içeren bir dizi döndürmez. sorgudan tüm satırları almak için, şöyle bir döngü içinde mysql_fetch_array çalıştırmak gerekir:

$sql = "SELECT username FROM `users`"; 
$result = mysql_query($sql); 
if(!$result){echo mysql_error();exit;} 
$rows=array(); 
while($row = mysql_fetch_array($result)) 
{ 
    $rows[]=$row; 
} 
print_r($rows); 

Nextly dikkat anlamına mysql_ * PHP'de MySQL uzatma artık korunduğundan fonksiyonları deprecated bulunmaktadır. Bu, MySQL veritabanlarının kullanımdan kaldırıldığı anlamına gelmez, sadece PHP'de mysql olarak adlandırılan veritabanı bağdaştırıcısı eski ve daha yeni bağdaştırıcıların kullanılabilir olması gerektiği anlamına gelir, örneğin mysqli ve PDO.

Sonraki nokta, php.ini ayarları tarafından devre dışı bırakılabileceğinden kısa etiketlere güvenmek kötü bir uygulamadır; kısa etiketlerden etkilenmeyen kolay yankılanma için her zaman <?php ... ?> veya <?= ... ?> kullanın.

Lütfen birini ya da diğerini kullanmaya başlamak için bazı mysqli ya da PDO basit örneklerini okuyun. Mysqli uzantısı MySQL'e özgüdür, PDO (PHP Veri Nesneleri), birleşik bir şekilde birkaç çeşit veritabanında çalışmak için genel bir adaptör olarak tasarlanmıştır. Seçiminizi yapın ve artık kullanımdan kaldırılmış mysql_ * işlevlerini kullanmayacaksınız.

0

Bunu yapmak için bir foreach döngü kullanmak gerekir.

$db  = new MysqliDb ('host', 'username', 'password', 'databaseName'); 
$userarray = $db->getValue('users', 'username', null); 
İlgili konular