jamon33
Usuario Novato
Usuario Novato

Muy buenas. Me estoy volviendo loco para conseguir que me funcione un buscador que debe tomar los valores de un form select para mostrar los resultados de la búsqueda de la base de datos en pantalla.

Por favor ayuda, estoy más perdido que un gramo de silicona en el cuerpo de Belén Esteban.

Creo que el problema está en la parte WHERE (categoria = '$categoria') AND (provincia = '$provincia') pero no se como resolverlo.

El Código es este:

PRIMERO EL FORMULARIO DEL BUSCADOR

<select name = "categoria" >
<option selected value= "vestidos">Vestidos de Novia </option>
<option value="peinados">Peinados de novia </option>
<option value="belleza">Belleza </option>
</select>
<SELECT name = "provincia" >
<option selected value="profesional/index.php?bodas,a,coru,a&categ=83">Acoruña
<option value="alava">Álava
<option value="albacete">Albacete
<option value="alicante">Alicante
<option value="almeria">Almería
<option value="asturias">Asturias
<option value="avila">Ávila
<option value="badajoz">Badajoz
</SELECT>
<input type="submit" name="enviar" value="Enviar:" /></th>

AHORA EL CÓDIGO PHP QUE CONSULTA LA BASE DE DATOS

<?
$categoria=$_POST[categoria];
$provincia=$_POST[provincia];
include "conecta_bbdd.php";
//Ejecutamos la sentencia SQL
$result=mysql_query("SELECT * FROM qlweb_sites WHERE (categoria = '$categoria') AND (provincia = '$provincia') ORDER BY link_type DESC");
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{

AHORA MUESTRO EN PANTALLA EL RESULTADO

//inicio del bucle
echo '<table border="1" cellspacing="0" cellpadding="0" width="500" bgcolor="#FEF4F1">';
echo '<tbody>' ;
echo '<tr>' ;
echo '<td rowspan="2" align="right" valign="top"><img src="http://planeatuboda.net/imagenes/ico-ramo.png" alt="" /></td>' ;
echo '<td width="98%" align="left" valign="top">' ;
echo '<div><a href="'.$row["url"].'"><strong>'.$row["title"].'</strong></a></div></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td align="left" valign="top">' ;
echo '<div>' .$row["poblacion"]. '(' .$row["provincia"]. ')</div></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td colspan="4">' ;
echo '<div>' ;
echo '<table cellspacing="2" cellpadding="0" align="left">' ;
echo '<tbody>' ;
echo '<tr>' ;
echo '<td colspan="2" align="left" valign="middle">' ;
echo '<div><a href="'.$row["url"].'"><img src="'.$row["foto"].'" alt="logo" width="105" height="85" /></a></div></td>' ;
echo '</tr>' ;
echo '</tbody>' ;
echo '</table>' ;
echo '</div>' ;
echo '<div align="left" style="font-size: 10px;">'.$row["description"].'<a href="'.$row["url"].'"><img src="vermasrojo.jpg" alt="ver mas" width="80" height="18" /></a></div></td>' ;
echo '</tr>' ;
echo '</tbody>' ;
echo '</table>' ;
echo '<br />' ;
//fin del bucle
}
mysql_free_result($result)
?>

POR FAVOR AYUDA. SOCORRO!!!

GRACIAS!!!

Avatar Image
@man / @woman
@man / @woman

Prueba el SELECT sin los paréntesis ().

jamon33
Usuario Novato
Usuario Novato

Muchas gracias por responder. Lo he probado y no es eso. De hecho si quito los paréntesis me da error. Tal y como está no me da error, pero tampoco me muestra los resultados de la consulta.

¿Alguna otra idea?. Muchas gracias,

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por jamon33

Muchas gracias por responder. Lo he probado y no es eso. De hecho si quito los paréntesis me da error. Tal y como está no me da error, pero tampoco me muestra los resultados de la consulta.

¿Alguna otra idea?. Muchas gracias,

¿ que error da sin paréntesis?

jamon33
Usuario Novato
Usuario Novato
Escrito originalmente por GestionXls
Escrito originalmente por jamon33

Muchas gracias por responder. Lo he probado y no es eso. De hecho si quito los paréntesis me da error. Tal y como está no me da error, pero tampoco me muestra los resultados de la consulta.

¿Alguna otra idea?. Muchas gracias,

¿ que error da sin paréntesis?

Parse error: syntax error, unexpected ‘”‘ in /home/miusuario/public_html/wp-content/plugins/php-execution-plugin/include s/class.php_execution.php(273) : eval()’d code on line 219

Este es el error. Si le pongo paréntesis, no hace nada pero no da error. Al menos muestra todo el resto de la página.

Muchas gracias

Avatar Image
@man / @woman
@man / @woman

Estás intentando hacer correr un script personalizado dentro de un sistema de wordpress sin tener en cuenta cuestiones de integración.

Primero asegúrate de que funcione 'solo', luego tratas los problemas de integración (si es que se dan).

En otras palabras: en el script incluye el formulario y la consulta que muestra los resultados en pantalla. Allí depuras errores, y luego integras.

jamon33
Usuario Novato
Usuario Novato

Ok. tienes razón. Ya lo he hecho. Pero el resultado es el mismo. Si quito las comillas ahora me sale esto:

Parse error: syntax error, unexpected '"' in /home/jamon33/public_html/busca-provincia-categoria.php on line 221

La línea 221 es precisamente esta:

$result=mysql_query "SELECT * FROM qlweb_sites WHERE (categoria = '$categoria') AND (provincia = '$provincia') ORDER BY link_type DESC";

Y si le pongo las comillas la página se muestra perfectamente salvo por el listado de la base de datos.

Es curioso porque en otra consulta similar pero de un solo select, me va bien. Este es el código de un solo select que funciona perfecto tanto dentro de Wordpress como desde fuera como ahora siguiendo tu consejo estoy haciendo.

<?
include "conecta_bbdd.php";
//Ejecutamos la sentencia SQL
$result=mysql_query("SELECT * FROM qlweb_sites WHERE provincia = 'Madrid' ORDER BY link_type DESC");
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
AQUI MOSTRAMOS LOS RESULTADOS EN EL FORMATO DESEADO
//fin del bucle
}
mysql_free_result($result)
?>

Con esta consulta el formulario de un solo select funciona perfecto.

Alguna otra idea para resolver mi problema.

Muchas gracias por tu interés. Eres un fenómeno.

jamon33
Usuario Novato
Usuario Novato
Escrito originalmente por GestionXls

Estás intentando hacer correr un script personalizado dentro de un sistema de wordpress sin tener en cuenta cuestiones de integración.

Primero asegúrate de que funcione 'solo', luego tratas los problemas de integración (si es que se dan).

En otras palabras: en el script incluye el formulario y la consulta que muestra los resultados en pantalla. Allí depuras errores, y luego integras.

Ok. tienes razón. Ya lo he hecho. Pero el resultado es el mismo. Si quito las comillas ahora me sale esto:

Parse error: syntax error, unexpected '"' in /home/jamon33/public_html/busca-provincia-categoria.php on line 221

La línea 221 es precisamente esta:

$result=mysql_query "SELECT * FROM qlweb_sites WHERE (categoria = '$categoria') AND (provincia = '$provincia') ORDER BY link_type DESC";

Y si le pongo las comillas la página se muestra perfectamente salvo por el listado de la base de datos.

Es curioso porque en otra consulta similar pero de un solo select, me va bien. Este es el código de un solo select que funciona perfecto tanto dentro de Wordpress como desde fuera como ahora siguiendo tu consejo estoy haciendo.

<?
include "conecta_bbdd.php";
//Ejecutamos la sentencia SQL
$result=mysql_query("SELECT * FROM qlweb_sites WHERE provincia = 'Madrid' ORDER BY link_type DESC");
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
AQUI MOSTRAMOS LOS RESULTADOS EN EL FORMATO DESEADO
//fin del bucle
}
mysql_free_result($result)
?>

Con esta consulta el formulario de un solo select funciona perfecto.

Alguna otra idea para resolver mi problema.

Muchas gracias por tu interés. Eres un fenómeno.

Avatar Image
@man / @woman
@man / @woman
Escrito originalmente por jamon33

$result=mysql_query "SELECT * FROM qlweb_sites WHERE (categoria = '$categoria' AND provincia = '$provincia') ORDER BY link_type DESC";

Intenta esta (espero que no sea cosa de duendes :D ).

Si no funciona, me comienza a surgir como posible causa que sean los apóstrofes o comillas los que estén provocando el error (es decir: revisar la configuración de PHP / MySql).

jamon33
Usuario Novato
Usuario Novato
Escrito originalmente por GestionXls
Escrito originalmente por jamon33

$result=mysql_query "SELECT * FROM qlweb_sites WHERE (categoria = '$categoria' AND provincia = '$provincia') ORDER BY link_type DESC";

Intenta esta (espero que no sea cosa de duendes :D ).

Si no funciona, me comienza a surgir como posible causa que sean los apóstrofes o comillas los que estén provocando el error (es decir: revisar la configuración de PHP / MySql).

Pues serán los duendes...que raro.

Lo que me mosquea es que con un solo select va de cine...¿será cosa de PHP? es decir, será que estoy haciendo algo mal para coger las variables $categoría y $provincia?. La línea de la consulta del query la tengo correcta según he comprobrado. Supongo que no me muestra resultados ni da error porque simplemente no recibe los datos de las variables. Gracias otra vez

Avatar Image
@man / @woman
@man / @woman

Si los datos están mal, simplemente no hallaría coindicencia en la consulta y no devolvería nada.

Luego de la consulta, puedes agregar esto:

$result= mysql_query "SELECT * FROM qlweb_sites WHERE (categoria = '$categoria' AND provincia = '$provincia') ORDER BY link_type DESC";

if( $result ){

 // muestras los resultados

}else{

 echo "La consulta no halló coincidencias para [{$categoria}] y [{$provincia}].";

}

(los corchetes son sólo para delimitar los datos dentro del párrafo)

Prueba con datos conocidos (y que sepas que resultado deba devolver).

jamon33
Usuario Novato
Usuario Novato

SOLUCIONADO!!!. FUNCIONA AL 100% e incluso se integra perfectamente con Wordpress.

Lo que me daba más problemas no era la consulta mysql, si no el select en html. Parece ser que la variable no la toma del "name" al igual que hacen otros valores, si no que la toma de la "id". Una vez puesto la "id" en el formulario, todo como la seda.

Muchísimas gracias por todo GestionXls, te has portado como un campeón.

Te debo una.

El código del script completo es este:

<form name="consulta" action="busca-provincia-categoria.php" method="post" enctype="multipart/form-data">
    <select name = "categoria" id="categoria" >
        <option selected value= "vestidos">Vestidos de Novia </option>
        <option value="peinados">Peinados de novia </option>
        <option value="belleza">Belleza </option>
    </select>
    <SELECT name = "provincia"  id="provincia">
          <option selected value="Acoruña">Acoruña
          <option value="Álava">Álava
          <option value="Albacete">Albacete
    </SELECT>
          <input type="submit" name="enviar" value="Enviar:" />  
</FORM>
<?
$categoria= $_POST['categoria'];
$provincia= $_POST['provincia'];
//Conexion con la base
/* conectar a base de datos */
mysql_connect("localhost","usuariobbdd", "passwbbdd") ;
   mysql_select_db("nombrebasedatos");
mysql_query("SET NAMES 'utf8'"); //esto arregla problemas de acentos al conectar la base de datos
//Ejecutamos la sentencia SQL
$result=mysql_query("SELECT * FROM clientes WHERE (categoria = '$categoria') AND (provincia = '$provincia') ORDER BY link_type DESC");
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
//inicio del bucle
echo '<table border="1" cellspacing="0" cellpadding="0" width="500" bgcolor="#FEF4F1">';
echo '<tbody>' ;
echo '<tr>' ;
echo '<td rowspan="2" align="right" valign="top"><img src="http://miweb.com/imagenes/ico-ramo.png" alt="" /></td>' ;
echo '<td width="98%" align="left" valign="top">' ;
echo '<div><a href="'.$row["url"].'"><strong>'.$row["title"].'</strong></a></div></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td align="left" valign="top">' ;
echo '<div>' .$row["poblacion"]. '(' .$row["provincia"]. ')</div></td>' ;
echo '</tr>' ;
echo '<tr>' ;
echo '<td colspan="4">' ;
echo '<div>' ;
echo '<table cellspacing="2" cellpadding="0" align="left">' ;
echo '<tbody>' ;
echo '<tr>' ;
echo '<td colspan="2" align="left" valign="middle">' ;
echo '<div><a href="'.$row["url"].'"><img src="'.$row["foto"].'" alt="logo" width="105" height="85" /></a></div></td>' ;
echo '</tr>' ;
echo '</tbody>' ;
echo '</table>' ;
echo '</div>' ;
echo '<div align="left" style="font-size: 10px;">'.$row["description"].'<a href="'.$row["url"].'"><img src="vermasrojo.jpg" alt="ver mas" width="80" height="18" /></a></div></td>' ;
echo '</tr>' ;
echo '</tbody>' ;
echo '</table>' ;
echo '<br />' ;
//fin del bucle
}
mysql_free_result($result);
?>

ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 17/Jul/2013, 14:46
delarosa88 Josepepe03312kJul/13
Por: User 7815631, el 12/Ago/2011, 16:51
User 7815631 chavp e.aragona GestionXls42kSep/11
Por: , el 12/Oct/2009, 06:46
tHeEkiZdeH NoSetup.org92kOct/09
Por: , el 07/Jul/2009, 16:24
shalock aerialss88 GestionXls63kJul/09
Por: , el 09/Abr/2009, 05:02
GRECOXX NoSetup.org12kApr/09