Foros del Web » Programando para Internet » PHP »

MySQL query y PHP function. return no me funciona

Estas en el tema de MySQL query y PHP function. return no me funciona en el foro de PHP en Foros del Web. Tengo un problema que hace un par de horas no lo puedo reparar. Tengo 2 tablas users y orders. En orders tengo un foreign key ...
  #1 (permalink)  
Antiguo 05/12/2011, 19:34
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
MySQL query y PHP function. return no me funciona

Tengo un problema que hace un par de horas no lo puedo reparar. Tengo 2 tablas users y orders. En orders tengo un foreign key users_id.

Tengo este SQL query que lo que hace es contar si hay alguna orden de un usuario en particular. Estoy tratando de devolver 0 si no hay records y devolver 1 si es que encuentra un record.

Pero algo estoy haciendo mal con el return, porque la verdad no se como devolver de la funcion el resultado del query.

La verdad no se si usar mysqli_result o usar mysqli_num_row en este caso..

Siempre me devuelve el texto "Hay 1 record" pero en realidad no hay ningun record...Osea hace return "false"


Código PHP:
if (isset($_POST['insert_data'])){


function 
check_order_quantity() {
global 
$db;
$query "select count(orders_id) from orders where user_id in (select user_id from users where name='lisandro')";
$result mysqli_query($db$query) or die (mysqli_error());
if (
mysqli_num_rows($result)==0) { return true;} else {return false;}

}


if (
check_order_quantity()==true){
echo 
" No hay records";

} elseif (
check_order_quantity()==false) { echo " Hay 1 record"; }


Tambien probe con esto y no funciona...
Código PHP:
...{
$result mysqli_query($db$query) or die (mysqli_error());
if (
mysql_result($result0)==0) {return true;} else {return false;}


Última edición por eybel; 05/12/2011 a las 19:49
  #2 (permalink)  
Antiguo 05/12/2011, 21:10
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: MySQL query y PHP function. return no me funciona

al revés
if (mysqli_num_rows($result)==0) { return false;} else {return true;}
__________________
la la la
  #3 (permalink)  
Antiguo 05/12/2011, 21:32
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: MySQL query y PHP function. return no me funciona

para que cambiarlo al revés? igual probe y no funciona
  #4 (permalink)  
Antiguo 05/12/2011, 21:34
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: MySQL query y PHP function. return no me funciona

if (mysqli_num_rows($result)==0) { return true;} else {return false;}

ahí dice que si es 0 retorne Verdadero, no tendría que ser al revés ?
__________________
la la la
  #5 (permalink)  
Antiguo 05/12/2011, 21:39
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: MySQL query y PHP function. return no me funciona

depende de como sea interpretado. si lees el if ==true no hay records. osea es true que no hay records .. el problema viene por otro lado. Creo que viene por la forma en que devuelte los resultados del query.. No se si usar mysqli_num_rows o mysqli_result..
  #6 (permalink)  
Antiguo 05/12/2011, 21:43
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: MySQL query y PHP function. return no me funciona

fijate que te imprime en pantalla mysqli_num_rows($result) para ver si hay algo
__________________
la la la
  #7 (permalink)  
Antiguo 05/12/2011, 21:45
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: MySQL query y PHP function. return no me funciona

Lo edit porque me parece que te confundi:

Código PHP:
function check_order_quantity() {
global 
$name;
global 
$db;
$query "select count(orders_id) from orders where user_id in (select user_id from users where name='lisandro')";
$result mysqli_query($db$query) or die (mysqli_error());
return (
mysqli_num_rows($result));

Eso me devuelve 1 el tema es que corro el query en my mysql y me da 0...

Entonces estoy pensando que al ser "SELECT COUNT" va a devolver el total de ese query, osea va a devolver algo, osea va a devolver un record.. Y lo que estoy analizando es si devuelve o no records, pero al poner SELECT COUNT" siempre me va a devolver algo. Quiero usar este metodo, no lo quiero cambiar al SELECT COUNT, pero como hago para acceder al field este que me devuelve?? osea devuelve 1 record con valor 0..

En vez de usar mysqli_num_row que es 1, cual puedo usar? mysqli_result??

Última edición por eybel; 05/12/2011 a las 21:57
  #8 (permalink)  
Antiguo 05/12/2011, 22:23
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 1 mes
Puntos: 16
Respuesta: MySQL query y PHP function. return no me funciona

Lo hice funcionar:

Estaba comparando todo el array del query con 0. Entonces accedi al primer field, ya que me query devuelve un campo "count(orders_id)" = 0. Lo accedi con mysqli_fetch_row

y fetch[0] y ahi lo comparo y me funciona.

Pense que mysqli_result, podia funcionar pero me parece que no.

Gracias igualmente!!


Código PHP:
function check_order_quantity() {
global 
$name;
global 
$db;
$query "select count(orders_id) from orders where user_id in (select user_id from users where name='".$name."')";
$result mysqli_query($db$query) or die (mysqli_error());
$fetchmysqli_fetch_row($result);
return (
$fetch[0]);


Etiquetas: function, mysql, query, return, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.