Pregunta:
Fecha: 03-11-2016 16:07:55
(En Español)
Tengo una tienda online y actualizo el stock capturándolo desde una url que me da el distribuidor. Hasta ahora siempre me ha funcionado con mysql pero se ve que han actualizado el servidor y me encuentro con que tengo que pasar mi pequeño programa a mysqli.
Estoy intentando aprender como pasarlo a esta nueva librería pero estoy muy perdida, les dejo el código a ver si me pueden ayudar ...
el Warning me lo da en esta linea : while($sel_arr=mysqli_fetch_array($sel_query)) {
Les pido por favor puedan darme alguna pista sobre como solucionar el problema, muchas gracias desde ya! Votos: 1 - Respuestas: 2 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
PHP Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in[Resuelta]
Hola buenas noches,Tengo una tienda online y actualizo el stock capturándolo desde una url que me da el distribuidor. Hasta ahora siempre me ha funcionado con mysql pero se ve que han actualizado el servidor y me encuentro con que tengo que pasar mi pequeño programa a mysqli.
Estoy intentando aprender como pasarlo a esta nueva librería pero estoy muy perdida, les dejo el código a ver si me pueden ayudar ...
<?php
$connect = mysqli_connect("localhost","nombre_DB","pass_DB","DB");
$jsondata = file_get_contents('http://dominio.com/disribuidor/stock.php/');
$phpArray = json_decode($jsondata, true);
foreach ($phpArray as $key => $value) {
$sel="SELECT * FROM wp_postmeta WHERE meta_key='_sku' and meta_value='".$key."'";
$sel_query=mysqli_query($connect,$sel);
while($sel_arr=mysqli_fetch_array($sel_query)) {
$updt="UPDATE wp_postmeta SET meta_value='".$value."' WHERE meta_key='_stock' AND post_id=".$sel_arr['post_id'];
$updt_query=mysqli_query($updt);
echo "<br>";
}
}
?>
el Warning me lo da en esta linea : while($sel_arr=mysqli_fetch_array($sel_query)) {
Les pido por favor puedan darme alguna pista sobre como solucionar el problema, muchas gracias desde ya! Votos: 1 - Respuestas: 2 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 03-11-2016 18:39:32 Estimada Sonia,
Saludos desde Guayaquil, Ecuador.
Vi tu código y en la línea 10 debes poner la conexión ...
// linea 10 $updt_query=mysqli_query($connect, $updt); // prueba alli
favor prueba alli y escribe...
Dios te bendiga Votos: 1 - Link respuesta -
Fecha: 03-11-2016 19:05:49 Hola Sonia, hace un tiempo tuve el mismo problema que vos, y aquí documente mi migración: Migrar funciones PHP MySQL (Deprecated) a MySQLi
Al marge de esto, veo que no estaría mal la sección de código que comentas while($sel_arr=mysqli_fetch_array($sel_query)) {, pero puede que el error se este produciendo porque la query no sea correcta: $sel="SELECT * FROM wp_postmeta WHERE meta_key='_sku' and meta_value='".$key."'";
Prueba agregar un echo y exit en la línea 7 de tu código:
echo $sel; exit;
y luego copia la query que se forma y ejecutala en un phpMyAdmin (o el cliente de base de datos que uses), la idea es verificar si tienes o no algun error en la query (por ejemplo, tal vez alguna columna tiene otro nombre). Un error en la query hace que mysqli_query retorne FALSE, por lo que se entendería el mensaje de error que comentas "...boolean given in...", o sea, le estas pasando un boolean (el false) a la función mysqli_fetch_array.
Por otro lado, presta atención a lo que comenta Luigui, es correcto, te esta faltando pasar la conexión a la segunda invocación de mysqli_query (aunque esto no debería ser el causal del error que comentas, ya que se produce antes de llegar al update), si no lo corriges será tu próximo error ;)
Saludos y bienvenida a la comunidad! Votos: 1 - Link respuesta
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
