2014-04-09 2 views
0
<html> 
<head> 
    <meta http-equiv = "content-type" content = "text/html; charset = utf-8" /> 
    <title>Using file functions PHP</title> 
</head> 
<body> 
<h1>Web Development - Lab05</h1> 
<?php 
    require_once("settings.php"); 
    $dbconnect = @mysqli_connect($host, $user, $pswd, $dbnm); 
    if($dbconnect->connect_errno >0) 
    { 
     die('Unable to connecto to database [' . $db->connect_error . ']'); 
    } 

    $queryResult = "SELECT car_id, make, model, price FROM cars"; 

    echo "<table width='100%' border='1'>"; 
    echo "<tr><th>ID</th><th>Make</th><th>Model</th><th>Price</th></tr>"; 

    //initiate array 
    $displayrow= mysqli_fetch_array($queryResult); 

    //initiate while loop to iterate through table 
    while($displayrow) 
    { 
     echo "<tr>"; 
     echo "<td>" . $row['ID'] . "</td>"; 
     echo "<td>" . $row['Make'] . "</td>"; 
     echo "<td>" . $row['Model'] . "</td>"; 
     echo "<td>" . $row['Price'] . "</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
    mysqli_close($dbconnect); 
?> 
</body> 
</html> 

Это делает мою голову, я не могу понять, почему она не отображает фактические данные, кроме заголовка таблицы. Независимо от того, что я использовал. Я пробовал mysqli_fetch_array, mysqli_fetch_row, mysqli_fetch_assoc, но ничего не работает.PHP - SQL select Отображение данных

Помощь и объяснение, почему оно не показывало данные были бы оценены :)

+1

Вы можете получить доступ к данным с coresponding имя столбца. Измените '$ row ['ID']' на '$ row ['car_id']'. и другие. – Jeribo

ответ

0

Пожалуйста, точность названий поля в Query (car_id, сделать ...)

while($displayrow= mysql_fetch_assoc($queryResult)) 
{ 
echo "<tr>"; 
    echo "<td>" . $displayrow['car_id'] . "</td>"; 
    echo "<td>" . $displayrow['make'] . "</td>"; 
    echo "<td>" . $displayrow['model'] . "</td>"; 
    echo "<td>" . $displayrow['price'] . "</td>"; 
    echo "</tr>"; 
} 
3

Первое: Вы не выполняете запрос, вы только ввод текста запроса в переменной. Вам нужно использовать mysqli_query.

Второй: Вы должны добавить mysqli_fetch_array в цикл.

Например:

while($displayrow = mysqli_fetch_array($queryResult)) 
{ 

} 

В противном случае вы только получаете первую строку.

В-третьих: Клавиши массива чувствительны к регистру. Нет $row['ID'], как указал Джерибо, это $row['car_id'] как указано в вашем запросе. $row['Make'] - это не то же самое, что и $row['make'].

+0

http://codular.com/php-mysqli имеет очень хорошее руководство по этому вопросу! –

0

Если вы хотите запросить вне вас все равно придется установить его в петле:

$result = $db->query($queryResult) 

while($row = $result ->fetch_assoc()){ 
... 
} 

хороший учебник показано здесь: http://codular.com/php-mysqli

0

$ строка должна быть инициализирована так, почему не вы пытаетесь:

while($row = mysqli_fetch_array($queryResult)) 
{ 
    .... 
} 
0

вы должны получить результат установлен первым, а затем попытаться забирающий массив из результата набор

<?php 
    require_once("settings.php"); 
    $dbconnect = @mysqli_connect($host, $user, $pswd, $dbnm); 
    if($dbconnect->connect_errno >0) 
    { 
     die('Unable to connecto to database [' . $db->connect_error . ']'); 
    } 

    $query = "SELECT car_id, make, model, price FROM cars"; 
    $resultSet=mysqli_query($dbconnect,$query) 
    echo "<table width='100%' border='1'>"; 
    echo "<tr><th>ID</th><th>Make</th><th>Model</th><th>Price</th></tr>"; 

    //initiate array 
    $displayrow= mysqli_fetch_array($resultSet); 

    //initiate while loop to iterate through table 
    while($displayrow) 
    { 
     echo "<tr>"; 
     echo "<td>" . $row['ID'] . "</td>"; 
     echo "<td>" . $row['Make'] . "</td>"; 
     echo "<td>" . $row['Model'] . "</td>"; 
     echo "<td>" . $row['Price'] . "</td>"; 
     echo "</tr>"; 
    } 
    echo "</table>"; 
    mysqli_close($dbconnect); 
?> 

http://www.w3schools.com/php/func_mysqli_fetch_array.asp

Смежные вопросы