Varias consultas a MySQL con PHP
Tengo un fichero index.php con el que hago alguna consulta hacia mysql. Esto funciona correctamente. Ahora le he añadido links para que me consulte a otro fichero php y segun el caso, me haga una consulta o otra. Los links los hago asi:
<code><a href="lib/consultas.php?accion=A">link1</a><br>
<a href="lib/consultas.php?accion=B">link2</a><br></code>
...entonces, he creado otro fichero llamado consultas.php en el que he insertado lo siguiente (con un case):
<code>$conexion = mysql_connect("localhost", "user", "pass");
mysql_select_db("jiradb", $conexion);
if($accion!=''){
switch($accion)
{
case 'A':
$queEmp = "select * from membershipbase where user_name like 'gbosch'";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
echo Usuario: "<strong>".$rowEmp['USER_NAME']."</strong><br>";
echo Grupo: "<strong>".$rowEmp['GROUP_NAME']."</strong><br>";
break;
case 'B':
$queEmp = "select * from membershipbase where user_name like 'jcodina'";
$resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
echo Usuario: "<strong>".$rowEmp['USER_NAME']."</strong><br>";
echo Grupo: "<strong>".$rowEmp['GROUP_NAME']."</strong><br>";
break;
}
}
</code>
Porque no me muestra nada???
musikboy
No se ve el código.
guif
editado!
he tenido que quitar la parte de delante y de detras del PHP:
<php>
musikboy
Mmm... de entrada el case sería así no?
case 'A':
case 'B':
guif
corregido pero no me muestra nada... Si ejecuto igualmente el fichero consulta.php tampoc me muestra nada.
musikboy
En el código que has pegado falta una llave que cierra al final, no sé si es que no la has pegado o que realmente te falta esa llave.
guif
si esta, si.
musikboy
Y supongo que ese script está recogiendo correctamente por get la variable accion aunque no pongas $_GET['accion']
guif
comor??
Yo solo llamo a la pagina poniendo un link hacia:
consultas.php?accion=X
Lo que comentas donde tendria que ir?
dagi3d
cuando dices que no te muestra nada, te refieres a que ni siquiera te pinta los strongs y brs? si el problema es que no te salga ningún registro, ten en cuenta que en ningún momento estás inicializando la variable $rowEmp. te falta la parte de sacar la fila a partir del resultado:
$rowEmp = mysql_fetch_row($resEmp);
x8
Se refiere a que debería haber algo así antes del código que has puesto:
$accion = $_GET['accion'];
Yo añadiría al final del switch un 'echo $accion', para comprobar que estás recogiendo el valor correctamente..
Suerte!
guif
bueno, tal como me comentáis, he puesto $accion = $_GET['accion'];
justo después de <?php y al final he puesto echo $accion.
Continua sin salir nada. La pagina en blanco.
x8
Yo creo que te están saltando errores pero el php.ini está configurado para que no los muestre.
Si no lo tienes hecho yo instalaría en tu máquina apache y php con el php.ini configurado para que muestre todos los errores, estoy casi seguro de que te va a salir un chorizo de errores bonico :-)
x8
Para ir probando, prueba a poner el echo justo después del
$accion = $_GET['accion'];
si se te muestra (debe) querrá decir que en el switch tienes algún error gordo por lo que deja de leer lo que hay debajo..
guif
pfff.... bueno, de hecho estoy trabajando con apache, y PHP funciona correctamente.
He puesto en el consultas.php:
$accion = $_GET['accion'];
echo $accion
Continua apareciendo la pagina en blanco. Si abro consultas.php mediante un link tipo consultas.php?accion=A me tendría que aparecer la letra A? Pues no. no aparece...
x8
Sí que debería. Algo no funciona bien guif..
Y lo que te dije del php.ini es una opción para decir que si te sale un error te lo pinte en pantalla pero esta suele estar desactivada para no dar pistas de tu código a cualquiera que entre al sitio web.
De todas maneras el que no te pinte el echo de
$accion = $_GET['accion'];
echo $accion
me parece totalmente anormal, ¿lo tienes puesto lo primero de todo? y aunque no lo hayas puesto aquí, ¿el echo $accion acaba con ; y verdad?
guif
ostia! era el ;!!!!
Bueno, ahora si me aparecen las letras. Lo que no me hace es el CASE.
Solo me aparecen las letras si elimino el contenido del case y la conexion hacia mysql.
x8
Pues entonces ya lo tienes, te ocurre lo que te estaba diciendo más arriba.
Tienes errores en el switch y esto hace que deje de leer el código, y no te aparece nada cuando da error porque tienes configurado el php.ini para que no te muestre errores. Lo suyo es que tengas tu propio servidor montado en tu máquina configurado para que te muestre todos los errores para depurarlo bien y que en el servidor lo tengas puesto para que no muestre errores aunque los haya..
Ya te queda menos :-)
guif
ya esta!!!!
posteo la solución por si a alguien le puede servir. En el fichero consultas.php tal cual:
$conexion = mysql_connect("localhost", "usuario", "contraseña");
mysql_select_db("mi_BBDD", $conexion);
if (isset($_GET['accion'])){
switch ($_GET['accion']){
case 'A':
...la consulta y la impresión en pantalla...
}
}
break;
case 'B':
...la consulta y la impresión en pantalla...
}
}
case 'C':
...la consulta y la impresión en pantalla...
}
}
break;
}
}
gracias por todo!