PHP aynı değer döndüren Array

5 Cevap
  $result = mysql_query("SELECT position
    	FROM ".$this->table_name."
    	WHERE c_name = '".$chName."'");

    	while($row = mysql_fetch_array($result)) 
    	{
    		return(array($row['position']));
    	}

Ben onun değişti i COMBOX değiştirseniz bile ... ben Combox kutusunun ID gerekir, aynı değeri alıyorum. Ama seçmek her zaman için aynı değeri gösterir.

function getID($chName) {

}

CHNAME i Flex açılan kutu alıyorum değerdir.

5 Cevap

Her zaman sadece ilk satırı dönüyor. Belki tüm veri seti ve sadece ilk kayıt istiyorum. Yani bu deneyin:

$result = mysql_query("SELECT position
    FROM ".$this->table_name."
    WHERE c_name = '".$chName."'");
$retVal = array();
while ($row = mysql_fetch_array($result)) {
    $retVal[] = $row['position']);
}
return $retVal;

neden

 return(array($row['position']));

ve sadece

return($row['position']);

Herhangi bir diğer yardım için daha fazla informationn sağlamak zorunda (HMTL? Çıktı?)

Gumbo cevabı doğrudur.

Bu koşulsuz bir döngü içinde bir şey dönen döngü kendisini çalıştırmak için yapar only once dikkat edin. Bu, genel olarak doğrudur ve her zaman böyle bir canavar kaçınmalısınız :)

Bir bellek tasarrufu adam iseniz, çok az bellek bir CPU iyileştirme yapmak:

mysql_fetch_assoc()

bu kullanmak değil edeceğiz tamsayı endeksli dizisi alınırken önler

Eğer içeride çözümlü isteyen değişkenleri öyle ise çift tırnak kullanımı Dont.

$results = array();

// Dont forget you should be escaping $chName
$result = mysql_query("SELECT `position` FROM `{$this->table_name}` WHERE `c_name` = '$chName';");

while($row = mysql_fetch_array($result)) 
{
	$results[] = $row['position'];
}

return $results;

Veya

$results = array();

// Dont forget you should be escaping $chName
$result = mysql_query('SELECT `position` FROM `'.$this->table_name.'` WHERE `c_name` = \''.$chName.'\';');

while($row = mysql_fetch_array($result)) 
{
	$results[] = $row['position'];
}

return $results;

Diğer millet iyi cevap attılar; Sadece bir öneri - kod DB sarıcı sınıf elle diziler sürekli bir hata kaynağı her zaman, almak zorunda kalmazsınız. Benim kendi Sorgu sınıf var ve bir sorgu yaptıktan sonra, ben sadece () $ sorgu-> dumpResultAsArray yapması ve için-her oradan.

Daha az etkili, ama daha sağlam ve hata ayıklama daha kolay.