2012-03-28 17 views
6

Orijinal SQL sorgusu budur; SELECT id, post_title, post_date FROM wp_posts nerede id = '1'PHP liste sorunu (Tanımsız uzaklık:)

Kayıt aldığımda, bulamıyorum, ancak sonuçları döndürmeye gelince, şaşırıyorum. İşte sıkıştığım yer burası.

while ($row = mysql_fetch_assoc($RS)) : 
     print_r ($row); 
     list($id,$post_title,$post_date) = $row; 
    endwhile; 

print_r ($ row) şunu verir; Array ([ID] => 1 [post_title] => Merhaba dünya! [Post_date] => 2012-03-27 03:28:27)

Ve orada liste işlevini çalıştırdığımda (hata ayıklama amacıyla) Açıkçası), bunu anlıyorum;

Notice: Undefined offset: 2 in F:\inetpub\wwwroot\whatever\sql.php on line 147 
Notice: Undefined offset: 1 in F:\inetpub\wwwroot\whatever\sql.php on line 147 
Notice: Undefined offset: 0 in F:\inetpub\wwwroot\whatever\sql.php on line 147 

Buna neden oluyor?

cevap

5

değiştirin.

mysql_fetch_assoc($RS)

fonksiyon sayısal tuşları kullanarak dizisine erişmek için trys çünkü

mysql_fetch_array($RS, MYSQL_NUM)

o zaman çalışması gerekir: ile

.

4

Sanırım cevap, bunun içinde bir yerlerde;

listesi() yalnızca sayısal diziler için sayısal indisleri 0

:(

1

için mysql_fetch_assoc kullanılan başlar kabul yani her satırda elde edilen dizi kolon adıyla bir anahtar altında veri vardır, . "liste" sayısal dizi endeksleri kullanılarak değerlere değişkenleri eşleştirmeye çalışır oysa mysql_fetch_array yerine kullanabilirsiniz

0

$ categ = val1 | val2

liste ($ bir, $ iki, $ üç) = @ split ('[|]', $ categ);

Kullanılamayan değeri listelemeye çalışırsanız, Hata Tanımsız Ofset değerini döndürür. $ Categ çatlıyor yaparken o zaman hata döndürür üçüncü değerini erişmeye çalışırsanız, o sadece iki değere sahip olacağı için

Burada hata

2. Ofset Tanımsız edilecektir.