2017-07-02 13 views
1

私のDBに照会する小さなスクリプトがあります。&は、Googleのグラフを作成します。は、パラメータ1がmysqli_resultエラーメッセージであることを予期しています。

正常に動作していますが、問題はありません。ただし、エラーログには異なるストーリーが表示されます。私は、以下の取得:

エラーログ mysqli_fetch_arrayを()パラメータ1がnull、mysqli_resultライン186

コードの行とに/var/www/html/header.phpに与えられることを期待しエラー:

ここにスクリプトがあります。これは186行目です: "while($ row = mysqli_fetch_array($ exec)){" - これは約半分のところです。

フルスクリプト

<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
    google.load("visualization", "1", {packages:["corechart"]}); 
    google.setOnLoadCallback(drawChart); 
    function drawChart() { 
    var data = google.visualization.arrayToDataTable([ 

     ['Date', 'Total Orders'], 
    <?php 
       $memberid = getLoggedMemberID(); 
    $query = "SELECT date as complain_Date1, IFNULL(sum(count),0) as count 
    FROM (
    SELECT Date_Closed as complain_Date1, count(id) as count 
    FROM Complaints 
    INNER JOIN membership_userrecords ON Complaints.id = 
    membership_userrecords.pkValue 
    where membership_userrecords.memberID = '$memberid' AND 
    membership_userrecords.tableName='Complaints' AND Date_Closed IS NOT 
    NULL 
    GROUP BY Date_Closed 
    ) AS t 
    RIGHT JOIN dates ON t.complain_Date1 = dates.date 
    Where date between DATE_SUB(NOW(), INTERVAL 30 DAY) and CURRENT_DATE() 
    GROUP BY date 
    ORDER BY date asc"; 

    $exec = mysqli_query($conn,$query); 
    while($row = mysqli_fetch_array($exec)){ 

    echo "['".$row['complain_Date1']."',".$row['count']."],"; 
    } 
?> 

]); 

var options = { 
       'chartArea': {'width': '85%', 'height': '70%'}, 
legend: {position: 'none'}, 
colors: ['#2ab77e'], 

    is3D: true, 
backgroundColor: { fill:'transparent' } 

}; 
var chart = new google.visualization.AreaChart(document.getElementById("complaints")); 
chart.draw(data, options); 
} 
</script> 

は、誰もが私の問題がここにあるものaviseことはできますか?

私はここで解決策を試してみました:

error mysqli_fetch_array() expects parameter 1 to be mysqli_result, string given

しかし、それはちょうど私のページ全体が白行かせるので、そこ

+0

は、いくつかのデバッグを実行してください助けが必要な場合は、私に教えてください。私はそれが戻ってきていると推測しています。これをテストして、クエリを実行できるかどうかを判断できますが、その理由を試してみることができます。可能な戻り値をhttp://php.net/manual/en/mysqli.query.phpから確認してください – TimBrownlaw

+0

クエリをコピーしてデータベースに実行してください。おそらくクエリにエラーがあります –

+0

クエリは完全に動作し、チャート期待どおりにレンダリングします。私はただエラーを修正しようとしていました。エラーは機能に影響しません:) – Kieran

答えて

0

while($row = mysqli_fetch_array($exec)){ 

を交換し、エラーがなければなりません

while($row = mysqli_fetch_array($exec, MYSQLI_ASSOC)){ 

を参照してください。詳細

のためのhttps://www.tutorialspoint.com/php/mysql_select_php.htmを使用すると、さらに$幹部上のvar_dumpまたはますprint_rを行う...

+0

ありがとうございます。残念ながら、この行は、チャートがまったく動作しなくなっているようです。ログにエラーがあることを完全に懸念していました。変更を行うときに、 "軸#0のデータ列は文字列ではありません"というエラーが表示されます。これが何であるか知っていますか? – Kieran

+0

申し訳ございません、MYSQLI_ASSOC –

関連する問題