Foros del Web » Programando para Internet » PHP »

ayuda con recoger info de un array para generar una consulta de mysql

Estas en el tema de ayuda con recoger info de un array para generar una consulta de mysql en el foro de PHP en Foros del Web. tengo un formulario para buscar proveedores. con un select dinamico que me recoge los nombres de los proveedores de la base de datos hasta aqui ...
  #1 (permalink)  
Antiguo 04/07/2010, 08:46
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
ayuda con recoger info de un array para generar una consulta de mysql

tengo un formulario para buscar proveedores. con un select dinamico que me recoge los nombres de los proveedores de la base de datos hasta aqui bien. pero no se como hacer para cuando se pulsa en enviar me recoga el nombre del proveedor y me muestre todos los datos de ese proveedor.

Es decir que con if (isset($_POST["enviar"])) me recoge los datos del formu pero luego como recoger el valor del select y hacer la consulta a mysql...por más que pienso no se como hacerlo....

el codigo es este:

Código:
<div id=capaexpansion2>
<form name=f1  method="post" action="" onSubmit="revisar(this);">

<ul>
<li>Selecciona un proveedor :
Código PHP:
<?php //la sintaxis de sql varia de como estes conectándote a la base de datos $conexionmysql_connect("localhost""root"""); mysql_select_db("abcerotica"$conexion); $SQL "SELECT nombre FROM proveedor ORDER BY nombre ASC"; $RES mysql_query($SQL,$conexion); //abres el select echo "<select name='proveedor' id='proveedor'><option value=''>Seleccione un Proveedor</option>"; while($row mysql_fetch_row($RES)){     //por cada proveedor que encuentre lo muestra en la lista desplegable     echo "<option value='"$row[0] ."'>"$row[0] . "</option>";      } //cierras el select echo "</select>"?>
</li> <li><input type="submit" name="enviar" value="Enviar" id="boton"> </li> </ul> </form>
Código PHP:
<?php if (isset($_POST["enviar"])) {
    
    
$datoproveedor=
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);

$SQL "SELECT * FROM proveedor";
$RES mysql_query($SQL,$conexion);
    
    
/*como tengo que recoger el valor del array $row[0] (del select) para pedir la consulta a mysql?? */
    
    
    
    
    
}
?>
</div>
  #2 (permalink)  
Antiguo 04/07/2010, 08:48
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: ayuda con recoger info de un array para generar una consulta de mysql

Código PHP:
<?php
//la sintaxis de sql varia de como estes conectándote a la base de datos
$conexionmysql_connect("localhost""root""");

mysql_select_db("abcerotica"$conexion);
$SQL "SELECT nombre FROM proveedor ORDER BY nombre ASC";
$RES mysql_query($SQL,$conexion);

//abres el select
echo "<select name='proveedor' id='proveedor'><option value=''>Seleccione un Proveedor</option>";

while(
$row mysql_fetch_row($RES)){
    
//por cada proveedor que encuentre lo muestra en la lista desplegable
    
echo "<option value='"$row[0] ."'>"$row[0] . "</option>";
    
}
//cierras el select
echo "</select>"
?>

ke no se ke hecho ke no se ve bien este trozo de codigo lo pego otra vez...
  #3 (permalink)  
Antiguo 04/07/2010, 09:20
Avatar de funkii  
Fecha de Ingreso: junio-2010
Mensajes: 64
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: ayuda con recoger info de un array para generar una consulta de mysql

con un $_POST['proveedor'] no tendria que funcionar?
  #4 (permalink)  
Antiguo 04/07/2010, 09:23
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: ayuda con recoger info de un array para generar una consulta de mysql

si pero como enlazo el post[proveedor] del select con la base de datos para extraer solo todos los datos de ese proveedor!!
  #5 (permalink)  
Antiguo 04/07/2010, 09:25
Avatar de SymarCs  
Fecha de Ingreso: abril-2010
Mensajes: 67
Antigüedad: 14 años
Puntos: 1
Respuesta: ayuda con recoger info de un array para generar una consulta de mysql

Haber, por lo que entendi tienes un combo (select) que lo llenas dinamicamente con los nombres de los provedores (de la BD), despues debes hacer la consulta y para eso necesitas el valor del combo (select).

Si es eso, para recoger el dato del select, lo haces con el nombre del select, como cualquier otro elemento del formulario (input por ejemplo con un $_POST o $_GET. En tu caso seria algo como:

Código PHP:
<?php
//Asi es para el boton enviar
if(isset($_POST['enviar'])){
  
//Recoges todos los demas datos del formulario
  //Y para recoger el valor del select, lo haces asi:
  
$nombreProvedor $_POST['provedor'];//POST['provedor'] por que asi se llama tu select
  
  //Haces la consulta dinamica, buscas por el nombre
  
$sql2 "select los_campos_que_necesitas from nombre_tabla where nombre like '%".$nombreProvedor."%'";
  
//Muestras la informacion que quieres de ese provedor
}
?>
Aun que si buscas por el nombre, puedo haber vario provedores con el mismo nombre seria mejor que lo buscaras con mas datos o simplemente con su clave primaria.

Para la busqueda de cadenas revisa este link
http://dev.mysql.com/doc/refman/5.0/...functions.html

Saludos, espero te sirva.
  #6 (permalink)  
Antiguo 04/07/2010, 11:22
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: ayuda con recoger info de un array para generar una consulta de mysql

gracias por la ayuda ahora tengo asi el codigo pero me da un error:

Código PHP:
<?php if (isset($_POST["enviar"])) {
    
    
$dato=$_POST['proveedor'];
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    
        
$SQL "select * from proveedor where nombre like '%".$dato."%'";
        
$RES mysql_query($SQL,$conexion);
        
    while (
$filamysql_fetch_assoc($SQL)){
            
            echo 
"<b>Nombre:</b>" .$fila["nombre"];
            echo 
"<br><b>email:</b>" .$fila["email"];
            echo 
"<br><b>telefono:</b>" .$fila["telefono"];
            echo 
"<br><b>comentarios:</b>" .$fila["comentarios"];
            
            echo 
"<p>";
        }
        
        
        
        
    }

?>
error ke me da:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in G:\wamp\www\abcerotica\seccionproveedor.php
  #7 (permalink)  
Antiguo 05/07/2010, 08:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 4
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con recoger info de un array para generar una consulta de mysql

Rufus, prueba a sustituir:

while ($fila= mysql_fetch_assoc($SQL))


...por:

while ($fila= mysql_fetch_assoc($RES))

Saludos.
  #8 (permalink)  
Antiguo 06/07/2010, 02:34
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
gracias por responder , ya no me da error pero no muestra nada. los echo "..." no funcionan!! sera que ago mal la consulta con e like .$dato????

no no no. si funciona lo que pasa es que tengo un menu dinamico con javascript que me oculta o muestra capas con los diferentes formularios, y tengo que activar el menu correspondiente otra vez para ver los resultados.. ahora tendre que preguntar en el foro javascript este fallo como solucionarlo.

:)

Última edición por GatorV; 06/07/2010 a las 09:35

Etiquetas: info, mysql, recoger
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 18:52.