Foros del Web » Programando para Internet » PHP »

Combo para consultas sql con php

Estas en el tema de Combo para consultas sql con php en el foro de PHP en Foros del Web. Hola, tengo una duda y nosé muy bien como resolver el problema. Quiero hacer un sistema de busqueda con las siguientes etiquetas HTML: 1 combobox ...
  #1 (permalink)  
Antiguo 26/05/2009, 13:11
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Combo para consultas sql con php

Hola, tengo una duda y nosé muy bien como resolver el problema. Quiero hacer un sistema de busqueda con las siguientes etiquetas HTML: 1 combobox, 1textbox, un enlace.

Imaginemos que en el combo seleccionamos un "item", quiero que este se guarde en una variable $tabla. Nos dará la referencia de en que tabla haremos la consulta.

Por otro lado en el text introducimos el texto a buscar que se almacena en la variable $textointroducido, y entonces pulsamos en el enlace para realizar la busqueda, sobre la tabla que hemos seleccionado anteriormente en el combo.

Os pongo mis códigos html.
El combo que estoy usando.
Código HTML:
 <form name="form1" id="form1"> 
                          <select name="buscador" size="1" class="buscador">
                            <option selected="selected">TITULO </option>
                            <option>AUTOR</option>
                            <option>ISBN</option>
                            <option>EDITORIAL</option>
                          </select>
                        </form> 
Otro form donde tengo el textbox
Código HTML:
<form name='form2' id='form2' action='".$_SERVER['PHPSELF']."' method='post'>
<input name='campobusca' type='text' class='buscador' id='campobusca' size='20' />
          </form> 
Y aqui el enlace que quiero que funcione como un boton, en este caso es una imagen.
Código HTML:
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('buscaa','','img/lupa_n2.jpg',1)"><img src="img/lupa_n0.jpg" name="buscaa" width="30" height="21" border="0" id="buscaa" /></a> 
La consulta q quiero q se realice seria algo asi, seguramente esté mal escrita...

$result=mssql_query("select Nombre from $tabla where Nombre like '%$textointroducido%' ",$link);


Saludos y Gracias.
  #2 (permalink)  
Antiguo 26/05/2009, 13:31
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: Combo para consultas sql con php

El problema que veo aqui es que usas diferentes forms y si estas enviando a la pagina de busqueda con un submit (ya sea por boton o por instruccion) solo podras pasar un solo formulario.

Puedes visualizarlo de esta manera,
por cada form que creas, es como definir un cajon en donde vas a pasarle a servidor todo lo que se encuentre dentro de este, asi que si tienes mas de 1 form solo se podra enviar lo que esta dentro del form que envies.

La solucion solo define un form que contenga todos los inputs, selects y demas controles que necesites
__________________
No todo lo que se hace en segundo plano es AJAX
  #3 (permalink)  
Antiguo 26/05/2009, 13:36
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Combo para consultas sql con php

OK, entiendo el problema, pero es que estas etiquetas estan situadas en diferentes sitios de una tabla. ¿Habría problema si coloco todo bajo un mismo form aunque esten etiquetas de tablas por medio?

Me explico

Código HTML:
<form name="form1" id="form1"> 
                          <select name="buscador" size="1" class="buscador">
                            <option selected="selected">TITULO </option>
                            <option>AUTOR</option>
                            <option>ISBN</option>
                            <option>EDITORIAL</option>
                          </select>
                        </td>
                    </tr>
                    <tr> 
                      <td> 
<input name='campobusca' type='text' class='buscador' id='campobusca' size='20' />
</td>
<td width="30"><a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('buscaa','','img/lupa_n2.jpg',1)"><img src="img/lupa_n0.jpg" name="buscaa" width="30" height="21" border="0" id="buscaa" /></a></td>
</form> 
Y como podria solucionar lo de hacer la consulta pulsando en el enlace, Gracias
  #4 (permalink)  
Antiguo 27/05/2009, 00:25
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Combo para consultas sql con php

Une los dos form en uno solo y el link si lo quieres aparte puedes hacerlo pero sabes que tienes que hacer una funcion que diga en algun momento submit al form. Ahora cuando vayas a buscar segun lo que entendi, es que en el query vas a escribir así

SELECT * FROM $tabla WHERE Nombre like '%$textointroducido%';

exactamente como tu lo escribiste pero une los dos form en uno.


Me dejas saber
  #5 (permalink)  
Antiguo 27/05/2009, 05:07
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Respuesta: Combo para consultas sql con php

El último código esta todo en un form, el problema que no creo q se pueda mandar un form con un enlace no? me refiero a este enlace

Código HTML:
<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('buscaa','','img/lupa_n2.jpg',1)"><img src="img/lupa_n0.jpg" name="buscaa" width="30" height="21" border="0" id="buscaa" /></a> 
Para que os hagais una idea mejor os pego una foto del buscador
[IMG]img39.imageshack.us/img39/7439/buscadorn.jpg[/IMG]

a ver si podeis ayudarme, Saludos.

PD: No me deja poner el enlace, pero copiar ese "enlace" en el navegador y podreis verlo.
  #6 (permalink)  
Antiguo 27/05/2009, 10:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Combo para consultas sql con php

<a href="javascript: void(0);" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('buscaa','','img/lupa_n2.jpg',1)" onclick="document.form1.submit();">

le añadi el onclick verifica si te funciona
  #7 (permalink)  
Antiguo 27/05/2009, 12:35
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
De acuerdo Respuesta: Combo para consultas sql con php

Ei tio, gracias estube buscando de todas formas y encontre q justo con ese onclick de javascript se puede hacer. Pero ahora tengo otros problemas, te comento a ver como se podrian solucionar.

Este sería ya el codigo del buscador, y me manda la supuesta tabla q elijo en el combo y por otro lado el texto a buscar que es lo q introduzco en el textbox.

Código HTML:
<form name="form1" id="form1" method="GET" action="consultas.php"> 
                          <select name="tabla" size="1" class="buscador">
                            <option selected="selected">TITULO </option>
                            <option>AUTOR</option>
                            <option>ISBN</option>
                            <option>EDITORIAL</option>
                          </select>
                        </td>
                    </tr>
                    <tr> 
                      <td>
                          <input name='textoabuscar' type='text' class='buscador' id='textoabuscar' size='20' />
                        </form></td>
                      <td width="30"><a href="#" onclick="javascript:document.form1.submit()" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('buscaa','','img/lupa_n2.jpg',1)"><img src="img/lupa_n0.jpg" name="buscaa" width="30" height="21" border="0" id="buscaa" /></a> 
Lo envio todo a consultas.php que es donde estoy trabajando. Se me ocurrió hacer lo siguiente.
Código PHP:
<?php
function consultas($tabla,$textoabuscar) {
switch (
$tabla) {
    case 
TITULO:
        
$result=mssql_query("select * from I_Articulos",$link);
        return 
$result;
        break;
    case 
AUTOR:
        
$result=mssql_query("select * from I_Autores",$link);
        return 
$result;
        break;
    case 
EDITORIAL:
        
$result=mssql_query("select * from I_Fabricantes",$link);
        return 
$result;
        break;
    case 
ISBN:
        
$result=mssql_query("select Nombre,fechaalta,precio from I_Articulos",$link);
        return 
$result;
        break;
}
}
?>
Aun estoy retocando las consultas, pero ahora mi duda es la siguiente :

1. ¿Estaría bien este codigo de recogida de datos.?
2. ¿Como podria hacer para volcar el contenido en un marco que esta dentro del index.php? En principio con meterlo en una tabla me llega, y se como se hace el proceso. Sería algo asi, iniciando la tabla antes en html, logicamente.
Código PHP:
while($row mssql_fetch_array($result)) {
echo 
"<tr>";
echo 
"<td>&nbsp;".$row[0]."</td>";
echo 
"<td>&nbsp;".$row[1]."</td>";
echo 
"<td>&nbsp;".$row[2]."</td>";
echo 
"</tr>"
Pero exactamente nose muy bien donde tengo q meterlo. Muchas gracias abimaelrc estoy aprendiendo un montón contigo.

Saludos!!
  #8 (permalink)  
Antiguo 27/05/2009, 14:49
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Combo para consultas sql con php

No entendi bien. Tu quieres colocarlo dentro de una variable y luego llamarla o tu quieres insertarla directamente con echo en algun lado?
  #9 (permalink)  
Antiguo 27/05/2009, 15:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
Me explico, lo del buscador esta dentro de un index.php , este mismo tiene un marco dentro, que es donde quiero mostrar el resultado de la consulta, estoy leyendome cosas a ver si soy capaz de hacerlo. Te paso el enlace de mi web y = asi lo entiendes mejor www.librariacartabon.com

Por cierto, muchas gracias por tu tiempo y tu dedicación.

Última edición por GatorV; 27/05/2009 a las 18:55
  #10 (permalink)  
Antiguo 27/05/2009, 16:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Combo para consultas sql con php

Si estas haciendo el codigo de PHP antes del HTML tienes que colocar la información en una variable ahora si estas insertando el PHP dentro del HTML lo que tienes que usar es el echo Ejemplo


Con variable

Código PHP:
<?php
$table 
"";
while(
$row mssql_fetch_array($result)) { 
  
$table .= "<tr>"
  
$table .="<td>&nbsp;".$row[0]."</td>"
  
$table .="<td>&nbsp;".$row[1]."</td>"
  
$table .="<td>&nbsp;".$row[2]."</td>"
  
$table .="</tr>";
}
?>

<HTML>
<BODY>
<table>
<?php echo $table?>
</table>
</BODY>
</HTML>



Directamente

Código PHP:
<HTML>
<BODY>
<table>
<?php
$table 
"";
while(
$row mssql_fetch_array($result)) { 
  echo 
"<tr>"
  echo 
"<td>&nbsp;".$row[0]."</td>"
  echo 
"<td>&nbsp;".$row[1]."</td>"
  echo 
"<td>&nbsp;".$row[2]."</td>"
  echo 
"</tr>";
}
?>
</table>
</BODY>
</HTML>

Tu escoges como hacerlo
  #11 (permalink)  
Antiguo 27/05/2009, 17:06
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Combo para consultas sql con php

Estoy insertando codigo php sobre el html, el problema que tengo es que nosé muy bien que variables pasar y tampoco sé muy bien cual es la manera correcta de pasarlas. A ver por pasos si me explico mejor...

El usuario elije ISBN, TITULO o EDITORIAL y luego introduce un texto a buscar, según cual elija pues al darle al enlace, mandará en el GET una opcion + el texto a buscar. Todo esto pasa en el index. Este formulario envia los datos a consultas.php que más o menos es lo que estoy desarrollando ahi arriba. Aqui recibo como parámetros 2 cosas: lo q escribe en el text y la opcion elegida, y quiero devolver la consulta e insertala en la pagina en el marco.

Entonces en consultas.php solo hago el control de que consulta se va a realizar a la base de datos, y que devuelva un $result para luego cubrir en el marco de la pagina los resultados.

A lo mejor me estoy complicando la vida, no sé muy bien.... Igual no es el método más sencillo para mi nivel de php. He programado en otros lenguajes como Visual, C, C++ y algo de java... Y ando un poco liado, la verdad.

Agradeceria cualquier comentario que me pueda indicar que pasos seguir, y mucho mas si me poneis código para estudiarlo e insertarlo, el problema tb reside en que nose donde tengo q meterle mano al marco para volcar ahi la consulta realizada en forma de una tabla por ejemplo.

Gracias de antemano.
  #12 (permalink)  
Antiguo 27/05/2009, 17:33
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Combo para consultas sql con php

Ok ahora si te entendi todo. Dame un tiempo en lo que te hago el codigo para que pudas buscar en la base de datos. Si es posible dame la estructura de la tabla en la base de datos yo hago el resto.
  #13 (permalink)  
Antiguo 28/05/2009, 05:48
 
Fecha de Ingreso: febrero-2009
Mensajes: 48
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Combo para consultas sql con php

Te comento la bd, los verialID siempre son la clave principal de la tabla.

I_Articulos: verialID (Clave principal), Barras, Nombre, PrecioIVA, Peso, ID_Fabricante.

I_Autores: verialID, ID_Articulo(relacionado con I_Articulos/verialID), Nombre, Apellidos.

Esto viene siendo la Editorial
I_Fabricantes: verialID, Nombre.

Si necesitas algo más, hazmelo saber. Gracias.
  #14 (permalink)  
Antiguo 17/06/2009, 14:14
 
Fecha de Ingreso: mayo-2009
Ubicación: Santiago
Mensajes: 8
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Combo para consultas sql con php

hola.. a todos

bueno mi duda es la siguiente, lo que pasa es que quiero hacer un buscador pero con un ConboBox, que traiga los datos de la tabla los carge y cuando pinche un campo por ejemplo si son codigos que se me muestre toda la informacion de ese codigo, pero desde un combobox, porque ya lo tengo hecho con una caja de texto, pero no cacho como hacer con un combobox.

seria de mucha ayuda que me solucionen el problema porque es Urgente.

de ante mano muchas 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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 12:36.