Foros del Web » Programando para Internet » PHP »

¿Que tengo mal :S?

Estas en el tema de ¿Que tengo mal :S? en el foro de PHP en Foros del Web. Hola gente! Tengo una tabla con muchos productos, y quiero crear una variable de uno solo, donde la id sea a la que yo quiera, ...
  #1 (permalink)  
Antiguo 02/07/2013, 14:59
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
¿Que tengo mal :S?

Hola gente! Tengo una tabla con muchos productos, y quiero crear una variable de uno solo, donde la id sea a la que yo quiera,

Tengo el codigo asi pero me da el siguiente error:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in.........

Código:
mysql_query("SELECT producto_cantidad FROM negociosinventario WHERE `negocio_id`='$negocioid' ORDER BY RANDOM() LIMIT 1");
Gracias!
  #2 (permalink)  
Antiguo 02/07/2013, 15:03
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: ¿Que tengo mal :S?

Eso debes ponerlo en una variable:

Código PHP:
Ver original
  1. $MQ=mysql_query("SELECT producto_cantidad FROM negociosinventario WHERE `negocio_id`='$negocioid' ORDER BY RANDOM() LIMIT 1");
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 02/07/2013, 15:08
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Cita:
Iniciado por stramin Ver Mensaje
Eso debes ponerlo en una variable:

Código PHP:
Ver original
  1. $MQ=mysql_query("SELECT producto_cantidad FROM negociosinventario WHERE `negocio_id`='$negocioid' ORDER BY RANDOM() LIMIT 1");
Gracias, pero me sigue dando el mismo error.
  #4 (permalink)  
Antiguo 02/07/2013, 15:09
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: ¿Que tengo mal :S?

que error te aparece?
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 02/07/2013, 15:16
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Cita:
Iniciado por stramin Ver Mensaje
que error te aparece?
El mismo, :S
  #6 (permalink)  
Antiguo 02/07/2013, 15:19
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: ¿Que tengo mal :S?

pues, a simple vista se ve bien, publica un fragmento mas largo de tu código :)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #7 (permalink)  
Antiguo 02/07/2013, 15:20
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Creo que no va a salir deformado:
Código:
$sql = mysql_query("SELECT producto_cantidad FROM negociosinventario WHERE `negocio_id`='$negocioid' ORDER BY RANDOM() LIMIT 1"); 
$row = mysql_fetch_array($sql);
$_SESSION['producto_cantidad'] = $row["producto_cantidad"];
$cantidad = $_SESSION['producto_cantidad'];
  #8 (permalink)  
Antiguo 02/07/2013, 15:30
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: ¿Que tengo mal :S?

y antes de eso?

es probable que no tengas la conexion declarada?
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 02/07/2013, 15:33
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Cita:
Iniciado por stramin Ver Mensaje
y antes de eso?

es probable que no tengas la conexion declarada?
El error me sale al poner lo del producto_cantidad aleatorio, por que? :S
como selecciono una columna cualquiera de la tabla producto_cantidad?
  #10 (permalink)  
Antiguo 02/07/2013, 15:40
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: ¿Que tengo mal :S?

Publica el código que tienes más arriba de esas lineas, quiero ver como haces la conexión.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #11 (permalink)  
Antiguo 02/07/2013, 15:48
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Que tengo mal :S?

Al parecer hay un error en la consulta, hay que usar mysql_error() para saber de qué se trata.
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 02/07/2013, 16:02
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Cita:
Iniciado por stramin Ver Mensaje
Publica el código que tienes más arriba de esas lineas, quiero ver como haces la conexión.
Con un include:

Código:
 <?php 
    session_start(); 
    include('../acceso_db.php'); 
?>
 
 <?php
$yo = $_SESSION['usuario_nombre'];
$negocioid = $_SESSION['usuario_negocio_id'];
// Quitar timer trabajo
mysql_query("UPDATE `usuarios` SET `timertrabajo`='0' WHERE `usuario_nombre`='$yo'");
// Añadir productos al local trabajado
$sql = mysql_query("SELECT producto_cantidad FROM negociosinventario WHERE `negocio_id`='$negocioid' ORDER BY RANDOM() LIMIT 1"); 
$row = mysql_fetch_array($sql);
$_SESSION['producto_cantidad'] = $row["producto_cantidad"];
$cantidad = $_SESSION['producto_cantidad'];
  #13 (permalink)  
Antiguo 03/07/2013, 03:14
Avatar de exatienda  
Fecha de Ingreso: julio-2013
Ubicación: Manresa, Barcelona
Mensajes: 227
Antigüedad: 10 años, 9 meses
Puntos: 21
Respuesta: ¿Que tengo mal :S?

Comprueba además que en el servidor tengas habilitadas las variables de sesión; un dia me volví loco por esto...
__________________
cajas rack tpvs | impresoras
  #14 (permalink)  
Antiguo 03/07/2013, 05:13
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Cita:
Iniciado por exatienda Ver Mensaje
Comprueba además que en el servidor tengas habilitadas las variables de sesión; un dia me volví loco por esto...
El probleme tiene que estar en lo del orden aleatorio, no se por que falla :S
  #15 (permalink)  
Antiguo 03/07/2013, 05:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿Que tengo mal :S?

La verdad, ¿De dónde sacaste que se escribe RANDOM()?
Cita:
RAND(), RAND(N)

Retorna un valor aleatorio en coma flotante del rango de 0 a 1.0. Si se especifica un argumento entero N, es usa como semilla, que produce una secuencia repetible.
Código MySQL:
Ver original
  1. mysql> SELECT RAND();
  2.         -> 0.9233482386203
  3. mysql> SELECT RAND(20);
  4.         -> 0.15888261251047
  5. mysql> SELECT RAND();
  6.         -> 0.63553050033332
  7. mysql> SELECT RAND();
  8.         -> 0.70100469486881
  9. mysql> SELECT RAND(20);
  10.         -> 0.15888261251047
Puede usar esta función para recibir registros de forma aleatoria como se muestra aquí:
Código MySQL:
Ver original
  1. mysql> SELECT * FROM tbl_name ORDER BY RAND();

ORDER BY RAND() combinado con LIMIT es útil para seleccionar una muestra aleatoria de una conjunto de registros:
Código MySQL:
Ver original
  1. mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d
  2.     -> ORDER BY RAND() LIMIT 1000;

Tenga en cuenta que RAND() en una cláusula WHERE se re-evalúa cada vez que se ejecuta el WHERE.

RAND() no pretende ser un generador de números aleatorios perfecto, pero es una forma rápida de generar números aleatorios ad hoc portable entre plataformas para la misma versión de MySQL.
Ver el manual, siempre es la mejor opción.
Especialmente, porque SQL no es PHP.

http://dev.mysql.com/doc/refman/5.0/...functions.html

Consejo de desarrollo: Nunca embebas una consulta de SQL en PHP sin antes probarla directamente en el DBMS.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #16 (permalink)  
Antiguo 03/07/2013, 06:29
 
Fecha de Ingreso: enero-2008
Mensajes: 80
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: ¿Que tengo mal :S?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
La verdad, ¿De dónde sacaste que se escribe RANDOM()?


Ver el manual, siempre es la mejor opción.
Especialmente, porque SQL no es PHP.

http://dev.mysql.com/doc/refman/5.0/...functions.html

Consejo de desarrollo: Nunca embebas una consulta de SQL en PHP sin antes probarla directamente en el DBMS.
Ole! No me habia dado cuenta de las dos letras que sobraban, a partir de ahora voy a probar siempre las consultas de sql antes, he aprendido la leccion, porque me estaba volviendo loco con este problema.
Gracias!
  #17 (permalink)  
Antiguo 03/07/2013, 07:05
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: ¿Que tengo mal :S?



__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, select, tabla
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 22:16.