Basit MySQL sorgu tek satır döndüren

4 Cevap php

Ben aşağıdaki tablo vardır:

CREATE TABLE IF NOT EXISTS `notes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`note` text,
PRIMARY KEY (`id`)
)

INSERT INTO `notes` (`id`, `uid`, `note`) VALUES
(1, 1, 'noteteeext'),
(2, 1, 'notenotenotenote');

Gördüğünüz gibi ben uid = 1 ile 2 satır var ama sadece 1 satır döndürür! (Ikincisi)

$sql = "SELECT id,uid,note
                    FROM notes
		    WHERE uid = 1";
$result = mysql_query($sql);


while ($row = mysql_fetch_assoc($result)) {
 echo $row['note'];
}

Ne oldu? :/

4 Cevap

Kesinlikle size çalıştırdığınız aslında kodda while döngüsüne bir $row = mysql_fetch_assoc($result) önce orada olmadığından emin misin?

Açıkçası yukarıdaki attılar kodu çalıştırdığınız tam olarak ne ise, bu sorun değil, ama bu davranış en sık nedeni olacaktır.

Belirgin bir şey göremiyorum, bu yüzden basit şeyler ile gidersiniz:

Eğer var:

  • Doğrudan aslında iki satır var olduğunu belirlemek için db Bakmış?
  • Bu iki satır beklediğiniz sütunları, beklediğiniz veri var doğruladıktan?
  • Bu ilk kayıt otomatik bir şekilde alınır, böylece aslında sizin süre döngü koşulu ikinci kayıt için gidiyoruz olabilir mi?
  • Eğer üçüncü bir satır eklerseniz ne olur? 1 veya 2 sonuç alırsanız, her iki şekilde de bazı ek bilgiler sağlayabilir.

Uzaktan şutlar bu, ama belki bir şey yardımcı olacaktır.

Eğer herhangi bir satır sonu ekleme değil çünkü hepsi tek satıra yazılır çünkü sadece özledim-bakmadım emin misin?

Artı. UID türü INT olduğundan, yazmak gerekir

WHERE uid = 1

yerine

WHERE uid = '1'

Eğer kontrol ve PHP çıkış kaynağını analiz ettiniz mi? Belki ilk satır bir yere HTML kaybolur.

Aşağıdaki cevabı da devletler olarak yayınlanmıştır kodu bazı HTML kodları orada da varsa exactly çalıştırdığınız kod, ancak, daha sonra bunun ne ise, bu durum böyle değil.