2015-04-23 2 views
-2
<?php 

    $connection = mysqli_connect("localhost", "gari" , "gari" , "onlinemarket"); 

    $call = "SELECT * FROM products WHERE id ='". 4 ."'"; 
    $result = mysqli_query($connection , $call); 

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

     $call = "UPDATE products SET stock = '". 666 ."' WHERE id ='". 4 ."'"; 
     $result = mysqli_query($connection , $call); 

    } 
    mysqli_close($connection); 
?> 

Реальная проблема заключается в $row = mysqli_fetch_array($result), я получаю это:Ошибка на PHP mysqli_fetch_array()

mysqli_fetch_array() ожидает параметр 1, чтобы быть mysqli_result, булево приведены в C: \ XAMPP \ HTDOCS \ tiendaonline \ php \ prueba.php в строке 12 i dont умеет использовать mysqli_error() для получения ошибки.

Thank you.

+1

положил условие if else для результата $ result, чтобы проверить, выполняется ли ваш запрос или нет. –

ответ

0

Попробуйте это,

<?php 

    $connection = mysqli_connect("localhost", "gari" , "gari" , "onlinemarket"); 

    $call = "SELECT * FROM products WHERE id ='4'"; 
    $result = mysqli_query($connection , $call); 

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

     $call1 = "UPDATE products SET stock = '666' WHERE id ='4'"; 
     $result1 = mysqli_query($connection , $call1); 

    } 
    mysqli_close($connection); 

?> 

Надеется, что это помогает.

+0

проверить отредактированный код! Он отлично работает для меня! –

0

Похож на то, что внутренняя петля заменяет $result. Также цикл while не имеет смысла, если вы не используете $row внутри цикла. Попробуйте следующий код:

<?php 

$connection = mysqli_connect("localhost", "gari" , "gari" , "onlinemarket"); 

$call = "SELECT * FROM products WHERE id ='". 4 ."'"; 
$result = mysqli_query($connection , $call); 

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

$call = "UPDATE products SET stock = '". 666 ."' WHERE id ='". 4 ."'"; 
$resultUpdate = mysqli_query($connection , $call); 

} 
mysqli_close($connection); 
?> 

Если вам просто нужно обновить запись, нет необходимости в выборе запроса, используйте следующий код.

$call = "UPDATE products SET stock = '". 666 ."' WHERE id ='". 4 ."'"; 
$resultUpdate = mysqli_query($connection , $call); 
mysqli_close($connection); 
0

Попробуйте, как это,

$resultUpdate = mysqli_query($connection, $call) 
     or die("Error: " . mysqli_error($connection)); 
0

Внутри цикла в то время, вы Переустановка $ результат и С Внутри цикла вы делаете запрос обновления к БД, то выход будет либо true, либо false. И в следующей итерации цикла mysqli_fetch_array не может найти что-либо, чтобы перебрать. Попробуйте что-нибудь вроде этого:

. 
. 
. 
$result_select = mysqli_query($connection , $call); 
while ($row = mysqli_fetch_array($result)) 
{ 

    $call = "UPDATE products SET stock = '". 666 ."' WHERE id ='". 4 ."'"; 
    $result_update = mysqli_query($connection , $call); 
} 
Смежные вопросы