2016-12-05 9 views
2

以前私は自分のホスティングからPHPファイルを使用していましたが、クライアント(GoDaddy)に移動したときに問題が発生しました。PHP print_r num_rows => 9、空白のページ

私は2つの入力がある - 自動車と教育(私はより多くを持っているのが、この質問のために、私は一例として2を使用)

私自身には、両方の入力が問題なく出力を印刷します。しかし、GoDaddyでは教育だけがアウトプットを生み出し、自動車は空白のページを生み出す。だから私はこのコードを追加:入力車載用

echo '<pre>'; 
print_r($res); 
echo '</pre>'; 

、私が得た:入力Edicationについては

<pre>mysqli_result Object 
(
    [current_field] => 0 
    [field_count] => 1 
    [lengths] => 
    [num_rows] => 9 
    [type] => 0 
) 
</pre> 

を、私が得た:

を:私がこれまで行ってきた何

<pre>mysqli_result Object 
(
    [current_field] => 0 
    [field_count] => 1 
    [lengths] => 
    [num_rows] => 4 
    [type] => 0 
) 
</pre> 

[{"subcategory":"Adult & Continuing Education"},{"subcategory":"Early Childhood Education"},{"subcategory":"Educational Resources"},{"subcategory":"Other Educational"}] 

  1. クエリを確認してください。問題ありません。問合せは、phpmyadminのに
  2. 増やしメモリ制限を希望する結果を返す - 完了が、PHPの設定では、まだ後でも、私はその出力/ num個の行と他の入力を持つ専用IISアプリケーションプール
  3. をリフレッシュデフォルトとして記載9以上が、それは

問題なく結果を返すPHPコード:

<?php 

    if($_SERVER['REQUEST_METHOD']=='GET') { 
     require_once('dbConnect.php'); 
     $category = $_GET['category']; 

     $sql = "SELECT subcategory FROM wg_categories WHERE category = '$category'"; 
     $res = mysqli_query($con,$sql); 

     $result = array(); 
     while($row = mysqli_fetch_array($res)){ 
      array_push($result, 
       array('subcategory'=>$row[0] 
      )); 
     } 
     echo json_encode($result); 
     mysqli_close($con); 
    } 
?> 

はsomethiがあります私は逃した?

のerror_reporting - E_ALL はdisplay_errors - あるいはlog_errorsに -

+1

可能な重複は(http://stackoverflow.com/questions/1475297/phps-white-screen-of-death) – Chris

+4

このコードは、SQLインジェクションのせいです。ちょうどFYI –

+0

私が見るものから、すべてが大丈夫です。何かがありません。入力と出力を処理するファイル全体を貼り付けることができますか? –

答えて

0

上php.net、多分$row[0]で問題を確認した後。最初に返された要素が$row[1];で、MySQLの行IDと一致する可能性があるからです。だから、どこに存在しないかもしれない要素にアクセスしているため、ブレークが起こっているのかもしれません。

http://php.net/manual/en/function.array.php

また、MySQLは、配列を返す方法で問題になることがあります。下のリンクを参考にして、MySQLiドライバが配列を返すか、配列の配列として返すか、問題の原因となる連想配列として返します。

http://php.net/manual/en/mysqli-result.fetch-assoc.php

あなたは連想として行を実行する必要があります。したがって、実際の列名を使用します。 id、firstname、lastnameなどと同じです。IE、$row['id'];

try catchブロックを追加してから、実際に返されているものやその特定の時刻に見えるものを表示することもできます。何が起こっているのか分かったら、それを取り除いてください。[死のPHPの白い画面]の

http://php.net/manual/en/language.exceptions.php

+0

これを '$ row [1]'に変更してエラーが発生しました500 – August

+1

try '$ result [] = $ row;' –

+0

私は、PHPのMySQLiアドオンを使用して、結合の可能性とより良い例の問題を含める答えを更新しました。 – Caperneoignis