MySQL - Problemas con codigo php mysql_num_rows()

 
Vista:
sin imagen de perfil

Problemas con codigo php mysql_num_rows()

Publicado por sebastian (1 intervención) el 08/05/2017 15:54:32
Buenos dias,

Estoy desarrollando una aplicacion php y me estoy volviendo loco con el codigo

cuando busco un dato en la bd para verificar su existencia, me arroja

Warning: mysql_num_rows() expects parameter 1 to be resource, null given in C:\xampp2\htdocs\pvgaby\listado.php on line 139

la sentencia sql :

1
2
$resultado=("SELECT listado.listado_id, lista.lista_descripcion, productos.producto_id,productos.producto_codigo, productos.producto_descripcion, listado.listado_precio, listado.listado_obs FROM productos INNER JOIN (lista INNER JOIN listado ON lista.lista_id = listado.lista_id) ON productos.producto_id = listado.producto_id WHERE lista_id='$lista' and producto_id='$producto' and listado_precio='$precio'") or die (mysql_error());
mysql_query($resultado);

las variables que paso a la sentencia, son correctas ya que las veo a traves de:

1
2
3
4
5
echo '	<div class="alert alert-info" align="center">
		button type="button" class="close" data-dismiss="alert">×</button>
										<strong>
			lista "'.$lista.'". producto "'.$producto.'" . precio "'.$precio.'"	. obs "'.$obs.'"
		</strong></div>'

como server uso Xampp version

xampp-win32-5.6.8-0-VC11-installer

ayuda plis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Problemas con codigo php mysql_num_rows()

Publicado por leonardo_josue (414 intervenciones) el 08/05/2017 17:36:56
Hola Sebastián:

Lamentablemente no tengo experiencia en PHP,, peor veo dos problemas en la consulta SQL que pueden hacer que esté fallando:

1. En los JOIN's, no son necesarios los paréntesis ni hacer JOIN's parciales, simplemente cambias el ordene en que los estás realizando.
2. en la sección WHERE, sólo estás poniendo los nombres de los campos pero no la tabla en donde están, lo cual te generaría errores de ambigüedad, ya que según lo que pones, el campo lista_id está tanto en tu tabla LISTA como en tu tabla LISTADO y el campo producto_id está tanto en tu tabla PRODUCTOS como en tu tabla LISTADO.

De tal suerte, que tu consulta podría quedar así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
  listado.listado_id,
  lista.lista_descripcion,
  productos.producto_id,
  productos.producto_codigo,
  productos.producto_descripcion,
  listado.listado_precio,
  listado.listado_obs
FROM
  productos
INNER JOIN listado  ON productos.producto_id = listado.producto_id
INNER JOIN lista    ON lista.lista_id = listado.lista_id
WHERE
  lista.lista_id='$lista'
  and productos.producto_id='$producto'
  and listado.listado_precio='$precio'

Prueba ejecutar esta consulta directamente en una consola de MySQL o en el WORKBENCH poniendo valores en lugar de variables y checa que te regrese el resultado esperado.

Finalmente, no supongas que tus variables están bien, te sugiero que armes tu consulta SQL en una variable temporal y que la imprimas en pantalla antes de tratar de ejecutarla, para ver exactamente lo que estás tratando de ejecutar. y haz lo mismo, ejecutala primero en una consola de MySQL o en el Workbench para descartar cualquier problema.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar