Foros del Web » Programando para Internet » PHP »

Generar query

Estas en el tema de Generar query en el foro de PHP en Foros del Web. :séveR led onieR le seded sodulaS ... molestando de nuevo... Tengo un formulario con varios campos para realizar busquedas, el objetivo es: 1.- Analizar qué ...
  #1 (permalink)  
Antiguo 03/08/2004, 18:01
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
Mensaje Generar query

:séveR led onieR le seded sodulaS

... molestando de nuevo... Tengo un formulario con varios campos para realizar busquedas, el objetivo es:

1.- Analizar qué valores se insertaron.
2.- Crear query para realizar la busqueda con los valores insertados.
3.- Realizar la busqueda....

... Se me ocurrió hacer esto...

<html>
<head>
<title></title>
</head>

<body>
<?php
//Cheka si no están vacios los campos
if((!empty($_POST['camp1']))||(!empty($_POST['camp2']))||(!empty($_POST['camp3']))||(!empty($_POST['camp4']))||(!empty($_POST['camp5']))||(!empty($_POST['camp6'])))
{
// Si existe al menos un valor se le asigna a una variable
if($_POST['camp1']!=false)
{
$camp1=$_POST['camp1'];
//Meto pedaso de la query en un array
$busca[]=" AND 'camp1' LIKE '%$camp1%'";
}
if($_POST['camp2']!=false)
{
$camp2=$_POST['camp2'];
$busca[]=" AND 'camp2' LIKE '%$camp2%'";
}
// Y así con todos los campos...
//Luego...

$elemBusc=count($busca);
echo "SELECT * FROM archivos WHERE 1";
$i=0;
while($i<$elemBusc)
{
echo $busca[$i];
$i++;
}
}
else
{
echo "NO SE DIERON CRITERIOS DE BUSQUEDA V&Aacute;LIDOS";
}

?>
</body>
</html>

Y en pantalla imprime la query necesaria... ¿PERO PA' QUÉ DEMONIOS QUIERO QUE LA IMPRIMA EN PANTALLA???? ... la imprimí para ver cómo iba funcionando el asunto... pero yo no quiero imprimirla... quiero crear la query para después realizar la busqueda con esta.... ...

ACLARO QUE SOY MUY NOVATO!!!!

-------
jam1138
"No hay opiniones estúpidas, solo estúpidos que opinan"
  #2 (permalink)  
Antiguo 03/08/2004, 19:38
 
Fecha de Ingreso: julio-2004
Ubicación: Puerto Vallarta, Jalisco, Mexico
Mensajes: 186
Antigüedad: 19 años, 8 meses
Puntos: 0
lo que pasa es que no estas pasando el query a MySQL

necesitas pasar ese query para que se ejecute, lee un poco mas sobre MySQL

http://www.php.net/manual/en/ref.mysql.php

te dejo un ejemplo que encontre en esa misma liga
Código PHP:
<?php
/* Connecting, selecting database */
$link mysql_connect("mysql_host""mysql_user""mysql_password")
   or die(
"Could not connect : " mysql_error());
echo 
"Connected successfully";
mysql_select_db("my_database") or die("Could not select database");

/* Performing SQL query */
$query "SELECT * FROM my_table";
$result mysql_query($query) or die("Query failed : " mysql_error());

/* Printing results in HTML */
echo "<table>\n";
while (
$line mysql_fetch_array($resultMYSQL_ASSOC)) {
   echo 
"\t<tr>\n";
   foreach (
$line as $col_value) {
       echo 
"\t\t<td>$col_value</td>\n";
   }
   echo 
"\t</tr>\n";
}
echo 
"</table>\n";

/* Free resultset */
mysql_free_result($result);

/* Closing connection */
mysql_close($link);
?>
si puedes ver, hay una variable llamada $query, si pasas el query que generas a esta variable, la podrias ejecutar.

algo asi

$elemBusc=count($busca);
$query = "SELECT * FROM archivos WHERE 1 ";
$i=0;
while($i<$elemBusc)
{
$query .= $busca[$i];
$i++;
}

ahora $query contiene el SQL query a ejecutar con el codigo que te puse.

Suerte
__________________
Shanti Castillo G.
  #3 (permalink)  
Antiguo 04/08/2004, 02:12
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 7 meses
Puntos: 102
.... ... pero si probé eso y no me resultaba.... ... . ...
anyway... de maravilla... gracias por la ayuda... de verdad mil gracias.
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 17:46.