Почему это не петля? (PHP и MySQL) - PullRequest
0 голосов
/ 14 октября 2010

Я написал этот код:

<?php
mysql_connect("localhost", "root", "root") or
    die("Could not connect: " . mysql_error());
mysql_select_db("internal");

$result = mysql_query("SELECT Title, Message FROM msg");
?>

<?php

  while ($row = mysql_fetch_array($result, MYSQL_NUM)){
?>

     <div>
         <h3><a href="#"><?php printf("%s", $row[0]); ?></a></h3>
         <div><?php printf("%s", $row[1]); ?></div>
     </div>

<?php
 mysql_free_result($result);
  }
?>

В результате я получаю первую строку таблицы MySQL (с правильным форматированием), на всякий случай я включаю изображение:

screeshot result

(На самом деле это первая строка моей БД MySQL и единственное, что я вижу)

Код был зациклен, пока мне не пришлось добавлять теги html, что я имею в виду, что если я просто сделаю:

<?php printf("%s", $row[0]); ?>
&
<?php printf("%s", $row[1]); ?>

Он зациклился и принес все результаты.

Может ли это быть синтаксической ошибкой?

Ответы [ 5 ]

5 голосов
/ 14 октября 2010

mysql_free_result($result); внутри вашего цикла while.Это делает его таким, что после первой итерации, он очищает результаты, поэтому больше не может быть захвачен.

Измените ваше окончание на

<?php
  }
mysql_free_result($result);
?>

, и оно исправит это

2 голосов
/ 14 октября 2010

Ваша третья строка освобождает результат, прежде чем вы закончите с ним. Переместите его за пределы цикла.

1 голос
/ 14 октября 2010

Вы освобождаете результат после первого цикла.Здесь

mysql_free_result($result);
 }

Это должно быть

  }
mysql_free_result($result);
1 голос
/ 14 октября 2010

переместить вызов в mysql_free_result, чтобы он находился вне цикла while.

0 голосов
/ 14 октября 2010

Не очищает ли mysql_free_result набор результатов?

Вам больше нечего зациклить!

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