Foros del Web » Programando para Internet » PHP »

Consulta sin resultado? No recoge el parametro PHP?

Estas en el tema de Consulta sin resultado? No recoge el parametro PHP? en el foro de PHP en Foros del Web. Hola amigos, estoy programando una web con PHP y estoy experimentando un problema. Realizo una conexión a BD, hasta ahí bien, y luego unas pequeñas ...
  #1 (permalink)  
Antiguo 08/05/2011, 06:34
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación Consulta sin resultado? No recoge el parametro PHP?

Hola amigos, estoy programando una web con PHP y estoy experimentando un problema. Realizo una conexión a BD, hasta ahí bien, y luego unas pequeñas consultas sobre una BD, hasta ahí bien también. Luego pido al usuario que marque un radiobutton cuyo value se pasará a una consulta SQL para filtrar. El problema lo tengo ahí, la consulta devuelve el siguiente fallo:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\pruebasAEW\proyectos2.php on line 124

En la línea 124 del especificado fichero tengo el siguiente código:
Código PHP:
while($filaSinopsis mysql_fetch_array($consultaVideoSeleccionadoMYSQL_BOTH)){
                                    echo 
'- '.$filaSinopsis['sinopsis'].'<br/><br/>';
                                } 
Observo que el fallo podría estar en la consulta, que es la siguiente:
Código PHP:
$consultaVideoSeleccionado mysql_query("SELECT * FROM  `videos` WHERE  `idvideo` =".$videoSeleccionado.";"$conexion); 
La variable $videoSeleccionado la tomo de:
Código PHP:
echo '<input type=radio name=video value='.$filaLista['idvideo'].'><b>'.$filaLista['nomvideo'].'</b><br/>' 
Código PHP:
$videoSeleccionado $_REQUEST['video']; 

Sinceramente no sé dónde estoy fallando. Hice la consulta metiendole un valor a pelo en phpmyadmin y funcionó correctamente. Luego el form donde está el input lo puse en GET para probar, y observo que recoge la variable $idvideo correctamente.

Un saludo, y gracias de antemano.
  #2 (permalink)  
Antiguo 08/05/2011, 06:42
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Buenas,
Prueba sin poner comillas en el nombre de la tabla y campo ysí poniendolas en la condición;

Código PHP:
$consultaVideoSeleccionado mysql_query("SELECT * FROM  videos WHERE  idvideo = '".$videoSeleccionado."'"$conexion); 
saludos,
__________________
Tu álbum de cromos online!!
  #3 (permalink)  
Antiguo 08/05/2011, 08:04
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Hola santris,
Gracias por el interés y la pronta respuesta, tienes + en karma. :)

Por otro lado, tras probar lo sugerido, me sigue mostrando el mismo error en la misma línea. ¿Alguna otra idea?

Muchas gracias!
  #4 (permalink)  
Antiguo 08/05/2011, 08:16
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Usa or die() y muestra el tipo de error con mysql_error() para ver realmente donde te esta produciendo el error

Código PHP:
//Si fuera en la conexión:
mysql_connect(***, ***, ***) or die("Error en la conexion: " mysql_error());

//En la consulta:
mysql_query('aquí tu consulta') or die("No se puede ejecutar la consulta: ".mysql_error()); 
Una vez localizado el motivo del error es más fácil resolverlo.
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #5 (permalink)  
Antiguo 08/05/2011, 08:39
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Hola IEKK,
Gracias por responder, apliqué or die para obtener el error, según el mensaje, se trata de un error de sintaxis en la linea 1 (la única que hay) cerca de las comillas dobles ".

Deduciendo que no son ni las primeras ni las últimas por lógica de PHP, he cambiado las dobles que encapsulan la variable $videoSeleccionado por comillas simples. Ahora mysql no me lanza ningún error, sin embargo el campo aparece vacío, y en la BD el dato figura y debería aparecer.

¿Alguna idea de ésto? Muchas gracias de nuevo.
  #6 (permalink)  
Antiguo 08/05/2011, 08:45
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

¿Esa línea es la de la consulta?

Código PHP:
$consultaVideoSeleccionado mysql_query("SELECT * FROM  videos WHERE  idvideo = '".$videoSeleccionado."'"$conexion); 
Suponiendo que $videoSeleccionado es un número puedes quitar las comillas simples.

Por cierto ¿por qué pones en el mysql_query la conexión?
La conexión a un lado:
Código PHP:
$conexion mysql_connect("***","***","***") or die ("No se ha podido establecer la conexi&oacute;n"); 
mysql_select_db("***",$conexion); 
Y ya despues haces los mysql_query...
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #7 (permalink)  
Antiguo 08/05/2011, 08:58
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Hola IEKK,
De nuevo gracias por tu interés y ayuda.

Especificar la conexión es opcional en los mysql_query según tengo entendido. En cualquier caso; eliminándolos de la función y eliminando las comillas dobles, me sigue ocurriendo lo mismo, el campo que muestra es vacío.

¿Alguna idea más? Una vez más, gracias.
  #8 (permalink)  
Antiguo 08/05/2011, 09:13
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Lo de la conexion era por ahorrar. Aunque más bien es un método de trabajo, así que no lo tomes muy en cuenta tampoco.

Las comillas que dije que cambiaras eran las simples ya que no eran necesarias si es un número el id, pero no pasa nada.

Haz un echo antes de la consulta de la variable $videoSeleccionado, no vaya ser que esté vacía y ese ea el problema.

Código PHP:
echo 'el valor es:'.$videoSeleccionado
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #9 (permalink)  
Antiguo 08/05/2011, 09:24
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Hola IEKK,
Sí que recoge el valor.
$videoSeleccionado recoge el valor de $_REQUEST['video'] donde video es un radiobutton. He probado tambien si el request está vacio pero no, recoge el valor del radiobutton correctamente.

¿Se te ocurre algo más? Algo tenemos que estar pasando por alto.
Gracias de nuevo, lo aprecio mucho.
  #10 (permalink)  
Antiguo 08/05/2011, 09:35
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Mmmm, pero según dijiste el error estaba en la consulta ¿No?
Si la variable esta bien, y la consulta y conexión son correctas algo no cuadra.

¿Podrías poner exactamente que tienes puesto?
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #11 (permalink)  
Antiguo 08/05/2011, 09:39
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Hola,
Enseguida te pongo el código, pues igual el fallo está en otra parte como bien crees.

Bloque de codigo en encabezado:
Código PHP:
<?php

$conexion 
mysql_connect("localhost""root""") or die("<b>Se ha producido un error de conexion a la base dedatos: </b>".mysql_error());
mysql_select_db("aewbd"$conexion);

$consultaListaVideos mysql_query("SELECT idvideo, nomvideo FROM videos;"$conexion);

$consultaVideoSeleccionado0 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado1 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"$conexion) or die("No se puede ejecutar la consulta: ".mysql_error()); 
$consultaVideoSeleccionado2 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado3 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado4 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado5 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado6 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado7 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado8 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado9 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado10 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado11 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
$consultaVideoSeleccionado12 mysql_query("SELECT * FROM videos WHERE idvideo = '$videoSeleccionado';"); //".$videoSeleccionado."
?>
Bloque de código en el cuerpo:
Código HTML:
<table border="0" style="width:100%;">
                     <tr>
                     	<td colspan="2">
                        		<?php
								if(isset($videoSeleccionado)){
									while($filaVideo = mysql_fetch_array($consultaVideoSeleccionado12, MYSQL_BOTH)){
										echo '<h3>'.$filaVideo['nomvideo'].'</h3>';
									}
								}else{
									echo "<h3>Elige un vídeo de la lista</h3>";
								}
							?>
                        </td>
                     </tr>
                     <tr>
                     	<td>
                        	<?php
								if(isset($videoSeleccionado)){
									while($filaCodigo = mysql_fetch_array($consultaVideoSeleccionado0, MYSQL_BOTH)){
										echo $filaCodigo['htmlvideo'];
									}
								}else{
									echo "No ha seleccionado ningún vídeo.<br/><br/>";
								}
							?>
                        </td>
                        <td rowspan="3" class="descripcion_pryectos" style="border-left: 1px solid #333;">
                        	<form action="proyectos2.php" method="post">
								<?php
                                    while($filaLista = mysql_fetch_array($consultaListaVideos, MYSQL_BOTH)){
                                        echo '<input type=radio name=video value='.$filaLista['idvideo'].'><b>'.$filaLista['nomvideo'].'</b><br/>';
                                    }
                                ?>
                                <br />
                                <input class="link2" type="submit" value="Ver vídeo seleccionado" />
                                
                                <?php
									$videoSeleccionado = $_REQUEST['video'];
									echo "SELECT * FROM  videos WHERE  idvideo = $videoSeleccionado;";
								?>
                                
                            </form>
                        </td>
                     </tr>
                     <tr>
                     <td style="border-top: 1px solid #333;">
                     	<h4>Ficha técnica</h4>
                       <p>
                       	 <b>Sinopsis/Descripción:</b><br />
                         <?php
							 if(isset($videoSeleccionado)){
								while($filaSinopsis = mysql_fetch_array($consultaVideoSeleccionado1, MYSQL_BOTH)){
									echo '- '.$filaSinopsis['sinopsis'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
						?>
                       </p>
                       <p>
                       		<b>Dirección:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaDireccion = mysql_fetch_array($consultaVideoSeleccionado2, MYSQL_BOTH)){
									echo '- '.$filaDireccion['direccion'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
						?>
                       </p>
                       <p>
                       		<b>Guión:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaGuion = mysql_fetch_array($consultaVideoSeleccionado3, MYSQL_BOTH)){
									echo '- '.$filaGuion['guion'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
						?>
                       </p>
                       <p>
                       		<b>Edición:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaEdicion = mysql_fetch_array($consultaVideoSeleccionado4, MYSQL_BOTH)){
									echo '- '.$filaEdicion['edicion'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>Cámara:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaCamara = mysql_fetch_array($consultaVideoSeleccionado5, MYSQL_BOTH)){
									echo '- '.$filaCamara['camara'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>Musica:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaMusica = mysql_fetch_array($consultaVideoSeleccionado6, MYSQL_BOTH)){
									echo '- '.$filaMusica['musica'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>Reparto:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaReparto = mysql_fetch_array($consultaVideoSeleccionado7, MYSQL_BOTH)){
									echo '- '.$filaReparto['reparto'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>País:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaPais = mysql_fetch_array($consultaVideoSeleccionado8, MYSQL_BOTH)){
									echo '- '.$filaPais['pais'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>Año:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaAno = mysql_fetch_array($consultaVideoSeleccionado9, MYSQL_BOTH)){
									echo '- '.$filaAno['ano'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>Duración:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaDuracion = mysql_fetch_array($consultaVideoSeleccionado10, MYSQL_BOTH)){
									echo '- '.$filaDuracion['duracion'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                       <p>
                       		<b>Presupuesto:</b><br />
                            <?php
							 if(isset($videoSeleccionado)){
								while($filaPresupuesto = mysql_fetch_array($consultaVideoSeleccionado11, MYSQL_BOTH)){
									echo '- '.$filaPresupuesto['presupuesto'].'<br/><br/>';
								}
							 }else{
								echo " --- ";
							 }
							?>
                       </p>
                     </td>
                    </tr>
                    </table> 
Lo único "raro" que he visto al programarlo, es que necesito demasiadas consultas iguales para varios resultados que dependen de la misma... ¿podría haber algo ahí?

En cualquier caso, muchísimas gracias.


P.D.: Ahora he de salir, volveré en cerca de 2 horas, si hay alguna respuesta, entonces probaré y responderé qué tal. Mil gracias.
  #12 (permalink)  
Antiguo 08/05/2011, 09:56
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 13 años, 8 meses
Puntos: 202
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

¿Para que tantas consultas idénticas?
No tengo claro porque haces eso así, pero estoy al 100% seguro que es innecesario y desde luego está mal planteado.
Deja una consulta, pone el or die y el mysql_error y ya después vemos donde está el error, porque si no, no hay forma.

Yo también mejor descanso ya xD
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #13 (permalink)  
Antiguo 08/05/2011, 12:55
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Hola de nuevo,
lo de las consultas sé que se tiene que poder hacer de una forma más optima (todavía no sé demasiado PHP...). Por otro lado ya probé de poner el or die() con mysql_error() y no devuelve ningún error. Todo se ejecuta bien pero no me devuelve nada la consulta.

De nuevo gracias, seguiré probando.


P.D.: Al final la consulta queda así:
Código PHP:
$consultaVideoSeleccionado mysql_query("SELECT * FROM `videos` WHERE `idvideo` = '$videoSeleccionado';"$conexion) or die("Se ha producido un error interno. Codigo del error: ".mysql_error()); 
Pero el resultado sigue siendo el mismo. No salta el error, por lo que la sintaxis está bien, sin embargo sigue sin mostrar nada.

P.P.D.: ¿Podría tener el problema los bucles que empleo para mostrar la información? Lo hago de la siguiente manera:
Código HTML:
<p>
                       	 <b>Sinopsis/Descripción:</b><br />
                         <?php
							 
								while($filaSinopsis = mysql_fetch_array($consultaVideoSeleccionado, MYSQL_BOTH)){
									echo '- '.$filaSinopsis['sinopsis'].'<br/><br/>';
								}
								
						?>
                       </p>
                       <p>
                       		<b>Dirección:</b><br />
                            <?php

								while($filaDireccion = mysql_fetch_array($consultaVideoSeleccionado, MYSQL_BOTH)){
									echo '- '.$filaDireccion['direccion'].'<br/><br/>';
								}

						?>
                       </p> 
Y así con todos los datos a mostrar de la tabla.

Última edición por AkiraKazama; 08/05/2011 a las 13:27 Razón: Información ampliada y actualizada.
  #14 (permalink)  
Antiguo 09/05/2011, 13:19
Avatar de AkiraKazama  
Fecha de Ingreso: mayo-2009
Mensajes: 40
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Consulta sin resultado? No recoge el parametro PHP?

Repost por si alguien puede echarme un poquito de luz, pues el problema persiste. Gracias y disculpen las molestias.

Etiquetas: mysql_query(), parametros, variables, order-by
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 17:22.