Проблема с возвратом строк с использованием PHP

0
<?php

if (isset($_GET['flyerID']))
    $FlyerID = $_GET['flyerID'];

$DBConnect = @mysqli_connect("host", "UN", "pword")

    Or die("<p>Unable to connect to the datbase server.</p>" . "<p>Error Code ".mysqli_connect_errno().": ".mysqli_connect_error()) . "</p>";

$DBName = "agentsleuthdb";

@mysqli_select_db($DBConnect, $DBName)

    Or die("<p>Unable to select the database.</p>" . "<p>Error Code " . mysqli_errno($DBConnect) . ": " . mysqli_error($DBConnect)) ."</p>";

    $TableName = "FEEDBACK";

    $SQLstring = "SELECT * FROM $TableName order by FIRSTNAME";

    $QueryResult = @mysqli_query ($DBConnect, $SQLstring)

    Or die("<p> Unable to exequte Select query.</p>"."<p>Error Code ".mysqli_errno($DBConnect) .": ".mysqli_error

($DBConnect))."</p>";

    if (mysqli_num_rows($QueryResult) == 0){

        exit("<p>There is no feedback</p>");
}

?>


            <table border="1">
                <tr>
                    <th width = "15%">First Name </th>
                    <th width = "15%">Last Name </th>
                    <th width = "15%">Email Addr </th>
                    <th width = "15%">Company </th>
                    <th width = "40%">Feedback </th>

                </tr>


<?php
    $Row = mysqli_fetch_row($QueryResult);

do {
    echo "<tr><td>{$Row[0]}</td>";
    echo "<td>{$Row[1]}</td>";
    echo "<td>{$Row[2]}</td>";
    echo "<td>{$Row[3]}</td>";
    echo "<td>{$Row[4]}</td></tr>";
    $Row = mysqli_fetch_assoc($QueryResult);
} while ($Row);
mysqli_free_result($QueryResult);
mysqli_close($DBConnect);
?>              

Он возвращает только одну строку. Как я могу вернуть все записи?

  • 0
    Почему вы используете mysqli_fetch_row() в одном месте и mysqli_fetch_assoc() в другом? Похоже, вы должны использовать mysqli_fetch_row() во втором случае (внутри цикла do ).
Теги:
arrays
rows

2 ответа

3

Вы пробовали

while ($Row = mysqli_fetch_row($QueryResult))

Описание здесь

или

while ($Row = mysqli_fetch_array($QueryResult, MYSQL_ASSOC))

Описание здесь

Надеюсь, что это поможет.

  • 0
    +1: вот что я собирался предложить.
0

В вашем коде только первый раз, когда вы вызываете mysqli_fetch_row, что делает $Row индексированный массив. Вот почему вы видите вывод при доступе к содержимому $Row с индексом ($Row[0], $Row[1] и т.д.). Впоследствии вы mysqli_fetch_assoc, который превращает $Row в ассоциативный массив, поэтому доступ к $Row с индексом для вашего вывода больше не работает.

Замените цикл do ... while первым циклом while aforloney.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню