• Viernes 8 de Noviembre de 2024, 21:52

Autor Tema:  Select * From -variablephp-  (Leído 1875 veces)

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Select * From -variablephp-
« en: Miércoles 17 de Enero de 2007, 13:53 »
0
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
  1.  
  2.  
  3.   <?php echo("
  4. <div id=capainicio>
  5. <table cellspacing=\"0\" cellpadding=\"5\" border=\"0\">
  6. <tr>
  7.     <td>Elige la categoría que quieres ver:</td>
  8.     <td>
  9.   <select size=\"1\" name=\"tablas\" onChange=\"javascript:expandir_formulario()\">");
  10.  
  11.  
  12.   //Esta función devuelve los campos de la DB
  13.           $result = mysql_listtables ($db);
  14.           $i = 0;
  15.           while ($i < mysql_num_rows ($result)) {
  16.           $tb_names[$i] = mysql_tablename ($result, $i);
  17.           //echo $tb_names[$i] . "<br>";
  18.           echo("<option value=\"".$i."\">".$tb_names[$i]."</option>");
  19.           $i++;
  20.           }
  21.   echo("</select></td></tr></table></div>");?>
  22.  
  23. <?php //muestra los resultados del campo seleccionado?>
  24. <?php
  25.   $sql_string_aplicaciones= "SELECT * FROM ¿¿¿COMO LE PASO LA VARIABLE???";
  26.   $sql_aplicaciones=@mysql_query($sql_string_aplicaciones,$conexion);
  27.     if (!$sql_aplicaciones)
  28.     echo ("error en consulta");
  29.   $nrows_aplicaciones=@mysql_num_rows($sql_aplicaciones);
  30.   echo "
  31.     <div id=capafinal>
  32.     <table cellspacing=\"0\" cellpadding=\"5\" border=\"1\">";
  33.     for ($e=0;$e<$nrows_aplicaciones;$e++)
  34.     {
  35.     $row=@mysql_fetch_row($sql_aplicaciones);
  36.     echo "<tr>";
  37.     echo "<td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td><td>".$row[3]."</td>";
  38.     echo "</tr>";
  39.     }
  40.   echo "</table></div>";
  41.   ?>
  42.  

perdonad si es una pregunta muy ingenua...
y gracias por vuestro tiempo


Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Select * From -variablephp-
« Respuesta #1 en: Miércoles 17 de Enero de 2007, 15:49 »
0
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'];


Saludos.
Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Select * From -variablephp-
« Respuesta #2 en: Miércoles 17 de Enero de 2007, 16:44 »
0
gracias, eso estaba haciendo, pero me da un error en la consulta porque no llega a hacer la mysql_query....


Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Select * From -variablephp-
« Respuesta #3 en: Jueves 18 de Enero de 2007, 15:10 »
0
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
  1. $consulta= 'aplicaciones';
  2.  
y luego le paso la variable en
Código: Text
  1. $sql_string_aplicaciones="SELECT * FROM ".$consulta;
  2.  
Lo reconoce, lo que no consigo es que "lea" el nombre de la tabla que saco con
Código: Text
  1.      $tb_names[$i]  
  2.  
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Select * From -variablephp-
« Respuesta #4 en: Jueves 18 de Enero de 2007, 18:28 »
0
Cita de: "Kyrylys"
pero solo me admite el paso de la variable si la he declarado por ejemplo

si declaro:
Código: Text
  1. $consulta= 'aplicaciones';
  2.  
y luego le paso la variable en
Código: Text
  1. $sql_string_aplicaciones="SELECT * FROM ".$consulta;
  2.  
Lo reconoce, lo que no consigo es que "lea" el nombre de la tabla que saco con
Código: Text
  1.      $tb_names[$i]  
  2.  
para que sea una "función" automatizada.
Claro si no,
Código: Text
  1.  
  2. $sql_string_aplicaciones="SELECT * FROM ".$consulta;
  3.  
  4.  
sería igual a:
Código: Text
  1.  
  2. SELECT * FROM
  3.  
  4.  
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
  1.  
  2. $consulta=$_GET['consulta'];
  3.  
  4.  

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
  1.  
  2. http://localhost/cons.php?consulta=aplicaciones
  3.  
  4.  

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.
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Select * From -variablephp-
« Respuesta #5 en: Jueves 18 de Enero de 2007, 18:59 »
0
no, no me entiendes... lo que quiero hacer es que coja $tb_names[$i] que es el nombre de la tabla y cuando este seleccionado en el select del formulario que haga la query respecto al $tb_names[$i] que le acabas de pasar en vez de declarar "manualmente" $aplicacion='aplicaciones'; o $aplicacion='noticias';


En principio no va a ningun documento a no ser que luego le des a insertar que esa es otra historia, y si, luego se que le tengo que pasar la variable como has dicho con main.php?consulta=$_GET['tablas'], pero esque lo quiero hacer automatico y no se deja.. :(

de todas formas gracias por contestar y por los enlaces -voy a mirarlos ahora-


ibito

  • Miembro HIPER activo
  • ****
  • Mensajes: 549
  • Nacionalidad: mx
  • Se mas de C++ que lo que se de ese CSS
    • Ver Perfil
    • http://www.ibquezada.com
Re: Select * From -variablephp-
« Respuesta #6 en: Jueves 18 de Enero de 2007, 19:39 »
0
Entonces no te entendí... y de hecho no te he vuelto a entender, mejor dime lo que quieres hacer (pero sin código).

Bien, lo que yo medio entendí, es que quieres que con un select (combo) se seleccione la tabla... ¿no?
______________________________________
www.hazjuegos.com Una comunidad dedicada al desarrollo de videojuegos.

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Select * From -variablephp-
« Respuesta #7 en: Viernes 19 de Enero de 2007, 11:12 »
0
exactamente, eso es ^^


Altareum

  • Miembro MUY activo
  • ***
  • Mensajes: 327
    • Ver Perfil
    • http://www.avian.com.ar
Re: Select * From -variablephp-
« Respuesta #8 en: Viernes 19 de Enero de 2007, 15:31 »
0
Prueba con lo siguiente:

Citar
<?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=\"".$tb_names[$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 ".$_GET['tablas'];
 $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>";
 ?>


Altareum.
El postre!, el postre!, el postre!, el postre!, el postre!, el postre!.....
 | Klinka | Kiree | Avian |

Kyrylys

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Select * From -variablephp-
« Respuesta #9 en: Jueves 25 de Enero de 2007, 20:32 »
0
creo que lo que me fallaba era el seteo de la variabe
Código: Text
  1.  
  2. if(isset(&#036;_GET[&#34;tablas&#34;]))
  3.   &#036;tablas=&#036;_GET[&#34;tablas&#34;];
  4.        
  5.  
  6.  

ahora lo he cambiado el diseño y consigo que lea mediante link la tabla que le paso.
lo hace de forma automática.

el siguiente paso es hacer un ABM (alta/baja/modificacion) para ello tengo tres botones -uno para cada accion- la cosa es que cuando pulse uno me lleve a la pagina del action y segun el tipo de accion qeu sea mediante  switch y case haga insert, delete o update.

cómo le digo qué accion tiene que realizar?

he seteado accion de la misma forma que tablas, pero a diferencia de esta no logro que pase al otro lado.

para que pase tengo esto
Código: Text
  1.     echo(&#34;&#60;form name=&#092;&#34;gestor&#092;&#34; method=&#092;&#34;POST&#092;&#34; action=&#092;&#34;gestor.php?tablas=&#34;.&#036;_GET[&#34;tablas&#34;].&#34;&#34;);
  2.      if (isset(&#036;accion)){
  3.          echo(&#34;&accion=&#34;.&#036;accion.&#34;&#34;);
  4.         }
  5.     echo(&#34;&#092;&#34;&#62;&#34;);
  6.  
y en la parte final en los botones...
Código: Text
  1. &#60;tr align=&#092;&#34;center&#092;&#34;&#62;
  2.         &#60;td&#62;&#60;input type=&#092;&#34;button&#092;&#34; name=&#092;&#34;Insertar&#092;&#34;  value=&#092;&#34;Insertar&#092;&#34; id=&#092;&#34;Insertar&#092;&#34;onClick=&#092;&#34;submit();&#092;&#34;&#62;&#60;/td&#62;
  3.         &#60;td&#62;&#60;input type=&#092;&#34;button&#092;&#34; name=&#092;&#34;Modificar&#092;&#34; value=&#092;&#34;Modificar&#092;&#34; id=&#092;&#34;Modificar&#092;&#34; onClick=&#092;&#34;submit();&#092;&#34;&#62;&#60;/td&#62;
  4.         &#60;td&#62;&#60;input type=&#092;&#34;button&#092;&#34; name=&#092;&#34;Borrar&#092;&#34; value=&#092;&#34;Borrar&#092;&#34; id=&#092;&#34;Borrar&#092;&#34; onClick=&#092;&#34;submit();&#092;&#34;&#62;&#60;/td&#62;
  5.       &#60;/tr&#62;
  6.  
.. no se si deberia hacer un seteo o como decirle que coja el value....
con tablas lo coge automaticamente, y la verdad me desconcierta un poco el hecho de que php coja las cosas solo, estoy habituada a lenguajes en los que tienes que definir y setear cada variable, ademas el php puede llamar de forma diferente a las variables ($variable, $_GET["variable"], y $_REQUEST["variable"])

tal vez deberia mirarme mas la teoria...sorry, pero me entero mejor "chapuceando" con código -además es más divertido ^^-

bueno si me pueden ayudar estupendo!!! si no por lo menos me ha servido para desahogarme un poco XDXDXDXDX

Saludos!!