2012-03-28 10 views
0

私が望む情報を持ってテーブルを構築しようとしましたが、今は私が揺れることができないという警告で苦労しています。MySQLの警告私は動揺することはできません

警告:mysqli_fetch_array()は、パラメータ1は、ライン30たTIDに/customers/8/2/e/eldberg.com/httpd.www/tabell15.php に示すブール値をmysqli_resultされることを期待:Lokal:

これは、カレンダーやディスプレイ、今日の予約からの予約を読み出すことです:$data = mysqli_query($dbc, $query);リターンでのごmysqli_queryコール偽が、意味sがありますので、これが起こる

<!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

それが生成するかを確認するmysqli_queryする権利呼び出しの後http://php.net/manual/en/mysqli.error.phpを試してみてください。問題の詳細を調べるには、次の手順を実行します。

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

希望します。

+0

これはmysqli_error()とmysql_error()とは異なり、$ link/$ dbcパラメータはオプションではありません。 – VolkerK

+1

ありがとうございました。それは簡単ではありませんが、私たちはすべてどこかで始めなければなりません。 – Rutan

0

あなたの質問に間違いがあります。

問題はmysqlは結果の偽isteadを返すことである

0

room_id後、末尾のカンマを取り除く:START_TIME、room_id、「BY

ORDERを、

0

あなたはORDER BY句でroom_id後に誤ったカンマを持って
述べたように。適切なエラー処理が必要となる前に、適切なエラー処理が必要です。例:

// 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を参照してください)が、エラーの検索に役立ちます。