2012-03-28 1 views
0

Я попытался построить таблицу с информацией, которую хотел бы, и теперь я борется с предупреждением, что я не могу поколебать.Предупреждение MySQL Я не могу поколебать

Внимание: mysqli_fetch_array() ожидает параметр 1 будет mysqli_result, логического значения, приведенного в /customers/8/2/e/eldberg.com/httpd.www/tabell15.php на линии 30 Tid: локал:

Это зачитать заказы из календаря и дисплейного сегодняшних заказов:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>Kavalias conferens system</title> 
    <link rel="stylesheet" type="text/css" href="style.css" /> 
</head> 
<body> 
    <h1>Conference bookings</h1> 
    <h2 >todays Conferenses<h2> 
    <hr /> 

<?php 
    // Connect to the database 
    $dbc = mysqli_connect('localhost', 'User', 'Pass', 'DB'); 

    // Retrieve the score data from MySQL 
    $query = "SELECT mrbs_entry.room_id, mrbs_entry.start_time, mrbs_entry.name, mrbs_room.room_name 
    FROM mrbs_entry 
    left outer JOIN mrbs_room on mrbs_entry.room_id = mrbs_room.room_name 
    WHERE mrbs_entry.room_id='Lokal' 
    ORDER BY start_time, room_id, "; 

    $data = mysqli_query($dbc, $query); 


    // Loop through the array of score data, formatting it as HTML 
    echo '<table>'; 
    while ($row = mysqli_fetch_array($data)); { 
    // Display the score data 
    echo '<tr><td class="scoreinfo">'; 
    echo '<span class="Guest">' . $row['name'] . '</span></>'; 
    echo '<strong>Time:</strong> ' . $row['start_time'] . '<br />'; 
    echo '<strong>Location:</strong> ' . $row['Lokal'] . '</td></tr>'; 
    } 
    echo '</table>'; 

    mysqli_close($dbc); 
?> 

</body> 
</html> 
+0

'mysqli_query ($ dbc, $ query);' возвращает false, поэтому запрос не выполнен. Http://php.net/manual/en/mysqli.query.php – dotoree

+0

Что такое выходные данные $ data и mysql_error ($ DBC)? – FilmJ

+0

У вас есть дополнительный ',' в конце вашего запроса $, удалите это – Timm

ответ

1

Проблема заключается в том, что MySQL возвращает ложное istead из результата. Выполните следующие действия, чтобы узнать больше о проблеме:

$data = mysqli_query($dbc, $query) or die(mysql_error()); 

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

+0

Это будет mysqli_error(), и в отличие от mysql_error() параметр $ link/$ dbc не является необязательным. – VolkerK

+1

Спасибо, что каждому телу это нелегко, но мы все должны что-то начать. – Rutan

0

Это происходит потому, что ваш mysqli_query вызов в $data = mysqli_query($dbc, $query); возвращает ложь, то есть там s что-то не так с вашим запросом.

попробовать http://php.net/manual/en/mysqli.error.php сразу после вызова mysqli_query, чтобы увидеть, что он производит

0

Избавиться от Запятой после room_id:

ORDER BY start_time, room_id «;

0

Вы ошибочная запятая после room_id в вашем ORDER BY пункта
Как указано. прежде чем вам понадобится правильная обработка ошибок. Например,

// Connect to the database 
$dbc = mysqli_connect('localhost', 'User', 'Pass', 'DB'); 
if (!$dbc) { 
    die('Connect Error: ' . mysqli_connect_error()); 
} 

// Retrieve the score data from MySQL 
$query = " 
    SELECT 
     mrbs_entry.room_id, mrbs_entry.start_time, mrbs_entry.name, 
     mrbs_room.room_name 
    FROM 
     mrbs_entry 
    LEFT OUTER JOIN 
     mrbs_room 
    ON 
     mrbs_entry.room_id = mrbs_room.room_name 
    WHERE 
     mrbs_entry.room_id='Lokal' 
    ORDER BY 
     start_time, room_id 
"; 

$data = mysqli_query($dbc, $query); 
if (!$data) { 
    echo '<pre>', htmlspecialchars($query), '</pre>'; 
    echo '<pre>', htmlspecialchars(mysqli_error($dbc)), '</pre>'; 
    die; 
} 

, который является слишком частым для производственный код (не печатайте запрос и все сообщение об ошибке только любому произвольному пользователю, см. http://cwe.mitre.org/data/definitions/209.html), но поможет вам найти ошибки.

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