Foros del Web » Programando para Internet » PHP »

Elegir entre varias tablas

Estas en el tema de Elegir entre varias tablas en el foro de PHP en Foros del Web. Saludos! Tengo un dolor en la cabeza, llevo varios dias buscando por esta gran comunidad , pero no encuentro nada, asi que he decidido formar ...
  #1 (permalink)  
Antiguo 21/06/2009, 03:28
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Elegir entre varias tablas

Saludos!
Tengo un dolor en la cabeza, llevo varios dias buscando por esta gran comunidad, pero no encuentro nada, asi que he decidido formar parte de ella, a ver si alguien puede ayudarme con este dolor:
Tengo una base de datos con 3 tablas, una de ellas contiene el nombre de las otras dos, y con el contenido de esta tabla lleno un select, me guardo en una variable el valor seleccionado en el select, y esa variable lo utilizo para acceder a una de las otras 2 tablas, y tengo esta linea:
Código PHP:
$registros=mysql_query("select codigo,producto,descripcion from $_REQUEST[marcas]",$conexion) or die("Problemas en el select:".mysql_error()); 
$_REQUEST[marcas] es la variable que contiene la eleccion del select, y marcas es el nombre del select
Que me da el siguiente error:

Problemas en el select:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
  #2 (permalink)  
Antiguo 21/06/2009, 03:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Elegir entre varias tablas

revisa las (') comillas simples en la funcion $_REQUEST['marcas'], puede que sea eso ya que te la lee como un todo
  #3 (permalink)  
Antiguo 21/06/2009, 03:41
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Elegir entre varias tablas

Gracias, pero acabo de probar y me da un sintax error:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/halt/www/esp.php on line 33
  #4 (permalink)  
Antiguo 21/06/2009, 03:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Elegir entre varias tablas

se me ocurrió que podria utilizar una concatenacion en el REQUEST

Código PHP:
$registros=mysql_query("select codigo,producto,descripcion from " .$_REQUEST['marcas']. "",$conexion) or die("Problemas en el select:".mysql_error()); 

Última edición por easy; 21/06/2009 a las 03:51
  #5 (permalink)  
Antiguo 21/06/2009, 03:52
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Elegir entre varias tablas

lo siento sobra una comilla y no consigo colocarlas bien...
He hecho esto para trabajar mejor:
Código PHP:
 $query='select codigo,producto,descripcion from '.$_REQUEST[marcas];
      
$registros=mysql_query($query,$conexion) or die("Problemas en el select:".mysql_error()); 
Tal y como esta ahora da el mismo error
  #6 (permalink)  
Antiguo 21/06/2009, 03:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Elegir entre varias tablas

lo siento revisa mi utlima edicion
Código PHP:
$registros=mysql_query("select codigo,producto,descripcion from " .$_REQUEST['marcas']. "",$conexion) or die("Problemas en el select:".mysql_error()); 
seguro que esta te funciona
  #7 (permalink)  
Antiguo 21/06/2009, 04:00
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Elegir entre varias tablas

si funciona, pero no del todo, porque vuelvo a salir el primer error de todos, es que elegir la tabla si que parece que la elige, porque sale el contenido de la tabla elegida.
Pero cuando quiero seleccionar algo del contenido de la tabla elegida, y le doy al boton que tengo, es cuando sale eso.
Código PHP:
<?
if(!$_POST["val"]){
$conexion=mysql_connect("localhost","root","*"
  or  die(
"Problemas en la conexion");
mysql_select_db("espludeco",$conexion
  or  die(
"Problemas en la selección de la base de datos");
$registros=mysql_query("select codigo,marca from marca",$conexion) or
  die(
"Problemas en el select:".mysql_error());
  
$marcas;
  
?><form action="esp.php" method="post"><?
  
echo '<select name="marcas">';
 
while(
$reg=mysql_fetch_array($registros)){
    echo 
'<option value = "'.$reg['marca'].'"';
     echo 
'>'.$reg['marca'].'</option>';
}
echo 
'</select>';
mysql_close($conexion);

    
?>

<input name="val" type="submit" value="Validar">
</form>
<?
}
if(
$_POST["val"]){
    echo 
"Ha elegido la marca:<br>";
    echo 
$_REQUEST[marcas];
    
$conexion=mysql_connect("localhost","root","*")
      or  die(
"Problemas en la conexion");
    
mysql_select_db("espludeco",$conexion
      or  die(
"Problemas en la selección de la base de datos");
    
$registros=mysql_query("select codigo,producto,descripcion from $_REQUEST[marcas]",$conexion) or
      die(
"Problemas en el select:".mysql_error()); 
      
?>
      <form action="esp.php" method="post">
      <?
      
echo '<select name="'.$_REQUEST[marcas].'">';
     
    while(
$reg=mysql_fetch_array($registros)){
        echo 
'<option value = "'.$reg['producto'].'"';
        echo 
'>'.$reg['producto'].'</option>';
        echo 
'<option value = "'.$reg['descripcion'].'"';
        echo 
'>'.$reg['descripcion'].'</option>';
    }
    echo 
'</select>';
    
mysql_close($conexion);
    
?>
    <input name="desc" type="submit" value="Descripcion">
    </form>
    <?
}
if(
$_POST["desc"]){
    
$conexion=mysql_connect("localhost","root","*")
      or  die(
"Problemas en la conexion");
    
mysql_select_db("espludeco",$conexion
      or  die(
"Problemas en la selección de la base de datos");
    
$registros=mysql_query("select codigo,producto,descripcion from " .$_REQUEST['marcas']. "",$conexion) or die("Problemas en el select:".mysql_error()); 
    while (
$reg=mysql_fetch_array($registros)) {
        
$tabla $_REQUEST[marcas];
        echo 
$tabla;
        if (
$reg['producto'] == $_REQUEST[$tabla]){
            echo 
$reg['descripcion'];
        }
    }
    
mysql_close($conexion);
}

 
?>
  #8 (permalink)  
Antiguo 21/06/2009, 04:04
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Respuesta: Elegir entre varias tablas

revisa las comillas simples que no pones en todos lo $_REQUEST['']
  #9 (permalink)  
Antiguo 21/06/2009, 04:09
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Elegir entre varias tablas

Nose que debo estar haciendo mal, pero acabo de poner las comillas simples a todos los $_REQUEST y nada, el mismo error todo el rato
  #10 (permalink)  
Antiguo 21/06/2009, 04:13
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
revisano bien tu script, has pesto dentro de un $_RQUEST[''] una variable $tabla, si la tienes como variable para que la llamas con un REQUEST???

Código PHP:
if ($reg['producto'] == $_REQUEST[$tabla]){ 
deberia de ser

Código PHP:
if ($reg['producto'] == $tabla){ 

Última edición por GatorV; 21/06/2009 a las 10:16
  #11 (permalink)  
Antiguo 21/06/2009, 04:18
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Elegir entre varias tablas

Porque en un primer momento habia puesto esto:
Código PHP:
$_REQUEST[$_REQUEST[marcas]] 
Para que el valor que me devuelve $_REQUEST[marcas] que es la tabla que se selecciono y que hace de nombre del segundo select. Entonces con esa instruccion quiero que me devuelva lo que ha sido seleccionado del segundo select, y de hay la comparacion, y ya por desesperacion decidi guardar $_REQUEST[marcas] en una variable.
  #12 (permalink)  
Antiguo 21/06/2009, 04:21
 
Fecha de Ingreso: diciembre-2008
Mensajes: 454
Antigüedad: 15 años, 4 meses
Puntos: 2
Cita:
Iniciado por halt Ver Mensaje
Porque en un primer momento habia puesto esto:
Código PHP:
$_REQUEST[$_REQUEST[marcas]] 
Para que el valor que me devuelve $_REQUEST[marcas] que es la tabla que se selecciono y que hace de nombre del segundo select. Entonces con esa instruccion quiero que me devuelva lo que ha sido seleccionado del segundo select, y de hay la comparacion, y ya por desesperacion decidi guardar $_REQUEST[marcas] en una variable.
lo que no entiendo es:

tienes un producto que se llama igual que una tabla??

entra aqui y lo miramos juntos, si quieres!!

Última edición por GatorV; 21/06/2009 a las 10:16
  #13 (permalink)  
Antiguo 21/06/2009, 04:26
Avatar de halt  
Fecha de Ingreso: junio-2009
Ubicación: Barcelona
Mensajes: 27
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Elegir entre varias tablas

no, lo que tengo es una tabla que se llama igual que una marca.
Es decir:
Tabla marca, su contenido es churchill y alco,
y dentro de churchill y alco, tengo el contenido de estas, y el contenido de estas dos tablas es el que quiero seleccionar y por eso consulto
Código PHP:
$_REQUEST[$_REQUEST['marcas'
porque el $_REQUEST['marcas'] tendre o churchill o alco, y entonces si al select le doy de nombre o churchill o alco, puedo rellenar el segundo select segun la eleccion del primero, y ademas con $_REQUEST[$_REQUEST['marcas'], puedo consultar lo que me han seleccionado y hacer la comparacion para mostrar la descripcion del producto.
No se si me he explicado
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 12:22.