2016-12-05 6 views
2

Раньше я использовал PHP-файл с моего собственного хостинга, но проблема возникла, когда я перешел на мой клиент (GoDaddy).PHP print_r num_rows => 9, но пустая страница

У меня есть два входа - Автомобили и образование (у меня есть больше, но на этот вопрос, я просто использовать два в качестве примера)

В моем собственном, как вход напечатает выход без проблем. Но в GoDaddy только образование может производить продукцию, а Automotive - пустую страницу. Так что я добавить этот код:

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

Для входа Automotive, я получил:

<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. Увеличение - Done, но в настройке PHP, до сих пор указано, как по умолчанию, даже после обновления Выделенный пул приложений IIS
  3. У меня есть другой вход с его выходных/Num строк более чем 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); 
    } 
?> 

есть сома что я пропустил?

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. Так что, возможно, там, где происходит перерыв, потому что он обращается к элементу, который может не существовать.

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'];$row['table_name'];

Возможно, вы также захотите добавить блок try catch, а затем var dumping, чтобы увидеть, что на самом деле возвращается или что все выглядит в это конкретное время. Затем удалите его, как только вы выяснили, что происходит не так.

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

+0

Я изменил его на '$ row [1]' и получил ошибку 500 – August

+1

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

+0

Я обновил ответ, чтобы включить проблему с потенциалом для ассоциативного и лучшего примера с использованием дополнения MySQLi для PHP. – Caperneoignis

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

  • Нет связанных вопросов^_^