Простой запрос MySQL, возвращающий только одну строку - PullRequest
2 голосов
/ 22 июля 2009

У меня есть следующая таблица:

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');

Как видите, у меня есть 2 строки с uid = 1, но он возвращает только 1 строку! (второй)

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


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

Что не так? : /

Ответы [ 4 ]

6 голосов
/ 22 июля 2009

Вы уверены, что определенно нет $row = mysql_fetch_assoc($result) до цикла while в текущем коде, который вы выполняете?

Очевидно, что это не проблема, если код, который вы разместили выше, именно то, что вы запускаете, но это будет самой распространенной причиной такого поведения.

6 голосов
/ 22 июля 2009

Не вижу ничего очевидного, поэтому я пойду с простыми вещами:

Есть ли у вас:

  • Заглянул в БД напрямую, чтобы определить, что у вас действительно есть две строки?
  • Проверено, что в этих двух строках есть ожидаемые данные в ожидаемых столбцах?
  • Может ли быть так, что первая запись каким-то образом автоматически извлекается, так что вы фактически переходите ко второй записи в своем состоянии цикла while?
  • Что произойдет, если вы добавите третий ряд? Если вы получите 1 или 2 результата, в любом случае это может дать некоторую дополнительную информацию.

Длинные выстрелы, но, возможно, что-то поможет.

3 голосов
/ 22 июля 2009

Вы уверены, что не просто пропустили, потому что все записано в одну строку, поскольку вы не добавляете разрыв строки?

Plus. Поскольку тип uid - INT, вы должны написать

WHERE uid = 1

вместо

WHERE uid = '1'
0 голосов
/ 22 июля 2009

Вы проверили и проанализировали источник вывода PHP? Возможно, первая строка где-то теряется в HTML.

Как указано в ответе ниже, это не тот случай, если опубликованный код точно код, который вы запускаете, но если там есть какой-то HTML-код, то это может произойти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...