Programación Web y Scripting > PHP
Select * From -variablephp-
Kyrylys:
Hola he estado buscando cómo pasar una variable a una búsqueda en php y no he visto nada, podria establecer casos en php segun en parámetro de la tabla en la que hacer la selección, preo si se pudiese pasar la variable directamente a la búsqueda el código quedaría más limpio y además se haría automático, tal y como lo tengo configurado.
lo que estoy haciendo es que muestre todas las tablas en un select dentro de un formulario, y segun la opcion escogida te muestre los campos de la tabla.
--- Código: Text --- <?php echo("<div id=capainicio><table cellspacing=\"0\" cellpadding=\"5\" border=\"0\"><tr> <td>Elige la categoría que quieres ver:</td> <td> <select size=\"1\" name=\"tablas\" onChange=\"javascript:expandir_formulario()\">"); //Esta función devuelve los campos de la DB $result = mysql_listtables ($db); $i = 0; while ($i < mysql_num_rows ($result)) { $tb_names[$i] = mysql_tablename ($result, $i); //echo $tb_names[$i] . "<br>"; echo("<option value=\"".$i."\">".$tb_names[$i]."</option>"); $i++; } echo("</select></td></tr></table></div>");?> <?php //muestra los resultados del campo seleccionado?><?php $sql_string_aplicaciones= "SELECT * FROM ¿¿¿COMO LE PASO LA VARIABLE???"; $sql_aplicaciones=@mysql_query($sql_string_aplicaciones,$conexion); if (!$sql_aplicaciones) echo ("error en consulta"); $nrows_aplicaciones=@mysql_num_rows($sql_aplicaciones); echo " <div id=capafinal> <table cellspacing=\"0\" cellpadding=\"5\" border=\"1\">"; for ($e=0;$e<$nrows_aplicaciones;$e++) { $row=@mysql_fetch_row($sql_aplicaciones); echo "<tr>"; echo "<td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td>"; echo "</tr>"; } echo "</table></div>"; ?>
perdonad si es una pregunta muy ingenua...
y gracias por vuestro tiempo
Altareum:
Por un lado, esta pregunta estaría mejor en el foro de php.... por otro lado, fijate en esta discución, que explique un poco como se se concatenan variables en php.
http://foros.solocodigo.com/index.php?showtopic=22545&hl=
Por último, tendrías que poner el siguiente código para que te funcione:
--- Citar ---$sql_string_aplicaciones= "SELECT * FROM ".$_GET['tablas'];
--- Fin de la cita ---
Saludos.
Altareum.
Kyrylys:
gracias, eso estaba haciendo, pero me da un error en la consulta porque no llega a hacer la mysql_query....
Kyrylys:
Hola de nuevo.
Hoy he estado buscando qué puede estar fallando, he mirado y no sé por que razon no pasa la variable, por lo que he redireccionado el formulario a si mismo a ver si asi hacia caso; pero nada.
la logica y la experiencia dicen que es tal y como Altareum tan amablemente me ha indicado.
pero solo me admite el paso de la variable si la he declarado por ejemplo
si declaro:
--- Código: Text ---$consulta= 'aplicaciones'; y luego le paso la variable en
--- Código: Text ---$sql_string_aplicaciones="SELECT * FROM ".$consulta; Lo reconoce, lo que no consigo es que "lea" el nombre de la tabla que saco con
--- Código: Text --- $tb_names[$i] para que sea una "función" automatizada.
muchas gracias por vuestra ayuda, la verdad esque no me habia metido nunca tan a fondo con php y msql juntos, en php tengo un poco mas de maña (pero poca aun ^^)
estoy tratando de hacer un administrador general para un bd, que lea todo e inserte a medida que va creciendo la base de datos, vamos que me he metido en camisa de once varas XDXD, es muy duro pero reconforta un monton... lo malo es cuando me atasco...
es la 1º vez que lo intento de forma general, pero esque sacar "manualmente" los datos que quieres mostrar me parece como hacer trampas XD, es como cuando empiezas a programar y aun no sabes declarar variables y te dicen que te enseñan a sumar con i=1; j=2; y luego i+j ... cuando lo interesante es que le pases los valores..
ibito:
--- Cita de: "Kyrylys" ---pero solo me admite el paso de la variable si la he declarado por ejemplo
si declaro:
--- Código: Text ---$consulta= 'aplicaciones'; y luego le paso la variable en
--- Código: Text ---$sql_string_aplicaciones="SELECT * FROM ".$consulta; Lo reconoce, lo que no consigo es que "lea" el nombre de la tabla que saco con
--- Código: Text --- $tb_names[$i] para que sea una "función" automatizada.
--- Fin de la cita ---
Claro si no,
--- Código: Text --- $sql_string_aplicaciones="SELECT * FROM ".$consulta; sería igual a:
--- Código: Text --- SELECT * FROM que resultaría en una mala consulta.
Ahora si tu archivo se llamara por ejemplo cons.php
lo que puedes hacer es:
--- Código: Text --- $consulta=$_GET['consulta'];
lo único que necesitarías es pasarle un parametro por método GET de ésta manera, al llamar tu script lo tendrías que hacer así:
--- Código: Text --- http://localhost/cons.php?consulta=aplicaciones
Lee mas sobre los métodos get y post
mas sobre get y post
También puedes buscar en la página oficial de PHP.
Navegación
[#] Página Siguiente
Ir a la versión completa