Цикл в PHP не работает - PullRequest
0 голосов
/ 17 июля 2011
$qPhysician = mysql_query("SELECT * FROM physicians");
$num = mysql_num_rows($qPhysician);
$i=0;
while($i < $num)
{
    "<tr>";
    "<td>" . mysql_result($qPhysician,$i,"lastName") . "</td>";
    "<td>" . mysql_result($qPhysician,$i,"firstName") . "</td>";
    "</tr>";
    $i++;
}

Я получаю пустой результат.

Если я получу эхо $num, я получу «19», которое является числом строк в моей БД. Если я повторяю $rowPhysician['lastName'] только для того, чтобы проверить, получаю ли я записи, я получаю как минимум 1 запись с фамилией. Я не знаю, если что-то не так с «пока». Пожалуйста, помогите мне.

Ответы [ 3 ]

4 голосов
/ 17 июля 2011

Вам не хватает эха для печати строк?

while($i < $num) {
    echo "tr";
    echo "td" . mysql_result($qPhysician,$i,"lastName") . "/td";
    echo "td" . mysql_result($qPhysician,$i,"firstName") . "/td";
    echo "/tr";
    $i++;
}
0 голосов
/ 17 июля 2011

Технически, это не ответ, но проще показать код следующим образом:

// first, only take the records you need -- each record adds more time to
// query, so if you only need 2, only select 2.
$query = mysql_query("SELECT lastName, firstName FROM physicians");

// mysql_fetch_assoc returns an associative array of all of the columns
// mysql_fetch_row   returns a numerically indexed array.
// mysql_fetch_array returns an array with both numeric and string indexing.
// they will all return FALSE when there are no more results in the query.
while( $arr = mysql_fetch_assoc( $query ) )
{
    echo "<tr>";
    // Now, use array indexing.
    echo "<td>" . $arr[ "lastName" ] . "</td>";
    echo "<td>" . $arr[ "firstName" ] . "</td>";
    echo "</tr>";
}

Это очень редкое обстоятельство, что mysql_result на самом деле лучший вариант - обычно этолучше просто заполнить пару массивов в PHP и покончить с БД.

0 голосов
/ 17 июля 2011

В любом случае, повторять HTML - плохая практика.Более корректный вывод может выглядеть следующим образом:

...
while($i < $num) :?>
    <tr>
      <td><?php echo mysql_result($qPhysician,$i,"lastName"); ?></td>
      <td><?php echo mysql_result($qPhysician,$i,"firstName") ?></td>
    </tr>
<?php $i++; endwhile;
...

Обратите внимание, что вы тоже неправильно закрыли HTML.

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