2013-07-06 2 views
-3

Это ошибка, которую я получаю. пожалуйста, помогите с кодом. Внимание: mysqli_fetch_array() ожидает параметр 1 будет mysqli_result, логическое значение дано в C: \ XAMPP \ HTDOCS \ \ test.php проверка на линии 28Получение mysqli fetch array error

Внимание: mysqli_fetch_array() ожидает параметр 1 будет mysqli_result, логическое значение, данное в C: \ xampp \ htdocs \ check \ test.php в строке 33

<?php 

    $hostname='localhost'; 
    $user='root'; 
    $password=''; 

    $connect=mysqli_connect($hostname,$user,$password,'a_railway'); 

    if(!$connect) 
    { 
     die('Could not connect'); 
     } 

    $rs="central"; 
    $rd="central"; 
    $s="Kurla"; 
    $d="Dadar"; 

    $dist=call_dist($rs,$rd,$s,$d,$connect); 
    echo $dist; 

    function call_dist($rs,$rd,$s,$d,$connect) 
    { 
     $src_dist="SELECT Distance FROM $rs WHERE Station=$s "; 
     $dest_dist="SELECT Distance FROM $rs WHERE Station=$d "; 

     $res1=mysqli_query($connect,$src_dist); 
     $src_res = mysqli_fetch_array($res1); 
     $s_dist=$src_res['Distance']; 

     $res2=mysqli_query($connect,$dest_dist); 
     $dest_res = mysqli_fetch_array($res2); 
     $d_dist=$dest_res['Distance']; 

     $dist=abs($s_dist-$d_dist); 
     return $dist; 
    } 
    ?> 
+1

проверить идентификатор ресурса после выполнения запроса, будь то mysqli_num_rows ($ res1)> 0, если true, то только выборка array –

+1

Ваши переменные 'Station' являются строками и должны быть одинарными в запросе' Station = '$ s' '. Вы должны протестировать ошибку, прежде чем пытаться получить строки, и если эти vars '$ s, $ d' в конечном итоге будут поступать от ввода пользователя, рассмотрите [используя подготовленные заявления] (http://php.net/manual/en /mysqli.prepare.php). –

+0

yup .. это была проблема .. он работал нормально.! Спасибо. :) –

ответ

-1

Попробуйте это. Boolean был указан, потому что ваш запрос не удался. Он должен работать, но я не уверен, что ваши переменные содержат.

function call_dist($rs,$rd,$s,$d,$connect) 
     { 
      $src_dist="SELECT `Distance` FROM `$rs` WHERE `Station` = '$s' "; 
      $dest_dist="SELECT `Distance` FROM `$rs` WHERE `Station` = '$d' "; 

      $res1=mysqli_query($connect,$src_dist); 
      $src_res = mysqli_fetch_array($res1); 
      $s_dist=$src_res['Distance']; 

      $res2=mysqli_query($connect,$dest_dist); 
      $dest_res = mysqli_fetch_array($res2); 
      $d_dist=$dest_res['Distance']; 

      $dist=abs($s_dist-$d_dist); 
      return $dist; 
     } 
+0

Спасибо .. это сработало ..! : D Можете ли вы рассказать мне, что все нужно указывать в sql-запросе? –

+1

Если вы передаете что-то еще, чем номера для запроса, это должно быть между '' '' 'или' '' '. –

+0

-1. Если вы передаете что-то еще, чем номера для запроса, это должно быть между «» или «**» и сбежать эти кавычки. –

0

Изменение:

$src_dist="SELECT Distance FROM $rs WHERE Station=$s "; 
$dest_dist="SELECT Distance FROM $rs WHERE Station=$d "; 

To:

$src_dist = "SELECT Distance FROM $rs WHERE Station = '" . mysqli_real_escape_string ($connect, $s) . "'"; 
$dest_dist = "SELECT Distance FROM $rs WHERE Station = '" . mysqli_real_escape_string ($connect, $d) . "'"; 

Вы должны указать строковые значения.

+1

mysql_ * функция для mysqli? – hjpotter92

+0

Хороший улов, я его изменил –

+0

Все еще непригодным для использования. Почему бы не ответить только в теме, о которой вы знаете? –

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

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