Foros del Web » Programando para Internet » PHP »

Busqueda en base de datos y mostrar resultados en web (no me salee)

Estas en el tema de Busqueda en base de datos y mostrar resultados en web (no me salee) en el foro de PHP en Foros del Web. buenas, Estso intentando hacer un sistema de busqueda para buscar las descargas que hay en ese momento y por mas que lo miro me y ...
  #1 (permalink)  
Antiguo 29/01/2005, 14:23
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Busqueda Busqueda en base de datos y mostrar resultados en web (no me salee)

buenas,

Estso intentando hacer un sistema de busqueda para buscar las descargas que hay en ese momento y por mas que lo miro me y vuelvo a probar siempre me sale una pantalla totalmente en blanco al darle al boton buscar.

Este es el archivo llamado resultados.php:

Código PHP:
<?php
$tipodebusqueda
=$HTTP_POST_VARS['tipodebusqueda'];
$terminodebusqueda=$HTTP_POST_VARS['terminodebusqueda'];

$terminodebusquedatrim($terminodebusqueda);

if (!
$tipodebusqueda || !$terminodebusqueda);
{
echo 
'No has introducido ningún término de de busqueda. Por favor regresa y prueba otra vez.'
exit;
}

$tipodebusqueda addslashes($tipodebusqueda);
$terminodebusqueda addslashes($terminodebusqueda);

$db mysql_pconnect('localhost''mibasededatos');

if (!
$db)
{
echo 
'Error al conectar con la base de datos. Por favor intentelo de nuevo.';
exit;
}

mysql_selcect_db('downloads');
$query="select * from donloads where ".$tipodebusqueda." like '%".$terminodebusqueda."%'";
$result mysql_query($query);

$num_results mysql_num_rows($result);

echo 
'<p>Numero de sets encontrados: '.$num_results.'</p>;

for ($i=0; $i <$num_results; $i++)
{
$row = mysql_fetch_array($result);
echo '
<p><b>'.($i+1).'Nombre';
echo '
htmlspecialchars(stripslashes($row['nombre']));
echo 
'</b><br />Autor: ';
echo 
stripslashes(&row['autor']);
echo 
'<br />Tamaño: ';
echo 
stripslashes($row['tamaño']);
echo 
'<br />Descripcion: ';
echo 
stripslashes($row['descripcion']);
echo 
'</p>';
}
?>
Y este es el de la pagina donde esta la funcion de buscar:

Código PHP:
<form action="resultados.php" method="post">
  <
table width="700" align="center" cellpadding="3" cellspacing="1" border="0" class="forumline">
    <
tr>
      <
td class="catHead" height="28"><a name="login"></a><span class="cattitle">Buscar Downloads Search 

downloads
</span></td>
    </
tr>
    <
tr>
      <
td class="row1" align="center" valign="middle" height="28"><span class="gensmall">Elejir tipo de busqueda:
        <
select name="tipodebusqueda">
        <
option value="autor">autor</option>
        <
option value="nombre">nombre</option>
        <
option value="tamaño">tamaño</option>
        </
select>
        <
br />
        
Introducir termino de busqueda:
        <
input class="post" type="text" name="terminodebusqueda" size="10" maxlength="32" />
        &
nbsp;&nbsp;&nbsp;
        <
input type="submit" class="mainoption" value="search" />
        </
span> </td>
    </
tr>
  </
table>
</
table>
</
form

hecharme una manita que no se en que he metido la pata, a ver que me contais.

Un saludo.

Última edición por MindPaniC; 29/01/2005 a las 14:36
  #2 (permalink)  
Antiguo 29/01/2005, 14:38
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
Lo primero puede ser que estas realizando la consulta sql dentro de la tabla donloads, pero supongo que deberia ser downloads.

Lo siguiente, es que tenes un error en la linea de numero de resultados, donde te falta cerrar la comilla simple.
Código PHP:
echo '<p>Numero de sets encontrados: '.$num_results.'</p>'
Otra cosa que te puede llegar a pasar, es que cuando el usuario ingresa una busqueda "rara", y no haya resultados dentro de tu BD, el script va a dar error, cuando quiera ejecutar esto:
Código PHP:
$num_results mysql_num_rows($result); 
porque $resulta esta en blanco.

Saludos.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
  #3 (permalink)  
Antiguo 29/01/2005, 14:40
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 14 años
Puntos: 88
a ver, tú tienes esto...

Código PHP:
echo '<p>Numero de sets encontrados: '.$num_results.'</p>; 

for ($i=0; $i <$num_results; $i++) 

$row = mysql_fetch_array($result); 
echo '
<p><b>'.($i+1).'Nombre'; 
echo '
htmlspecialchars(stripslashes($row['nombre'])); 
echo 
'</b><br />Autor: '
echo 
stripslashes(&row['autor']); 
echo 
'<br />Tamaño: '
echo 
stripslashes($row['tamaño']); 
echo 
'<br />Descripcion: '
echo 
stripslashes($row['descripcion']); 
echo 
'</p>'

?> 
prueba cambiandolo por esto...

Código PHP:
echo '<p>Numero de sets encontrados: '.$num_results.'</p>'

for (
$i=0$i <$num_results$i++) 

$row mysql_fetch_array($result); 
echo 
'<p><b>'.($i+1).'. Nombre: '
echo 
htmlspecialchars(stripslashes($row['nombre'])); 
echo 
'</b><br />Autor: '
echo 
stripslashes($row['autor']); 
echo 
'<br />Tamaño: '
echo 
stripslashes($row['tamaño']); 
echo 
'<br />Descripcion: '
echo 
stripslashes($row['descripcion']); 
echo 
'</p>'

?> 
solo cambie unas comillas que tenias demás y otras que faltaban...
  #4 (permalink)  
Antiguo 29/01/2005, 14:55
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
He cambiado lo que me habies puesto y ahora al darle a buscar e introducir un parametro de busqueda correcto me sale la pantalla de resultados perfecta pero me indica que no he introducido término de busqueda..

mmm algun if debe de estar mal, pero cual?
  #5 (permalink)  
Antiguo 29/01/2005, 15:01
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
ahora mismo acabo de solucionar el problema del if (solo me sobraba un puntoy coma) y al ahora el problema que me da es que no puede conectar con la base de datos (Error al conectar con la base de datos. Por favor intentelo de nuevo.)

no se si he puesto bien el script de la conexion con la base de datos, no se mucho sobre como debo conectarme a la base de datos de mi hosting.

¿como lo hago?
  #6 (permalink)  
Antiguo 29/01/2005, 15:49
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 14 años
Puntos: 88
pero es que nosotros no podemos ayudarte con ese tema directamente, ya que no nos sabemos tu contraseña ni tu usaurio (tampoco digo que nos los digas)

mira, ponnos el código que usas para conectarte, de esta manera para que no sepamos tu contraseña ni usuario

$usuario = "usuario";
$pass = "pass";
$basedatos = "basedatos";

mysql_connect($usuario,$pass,$basedatos);

algo asi era si mal no recuerdo...
  #7 (permalink)  
Antiguo 29/01/2005, 16:42
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Solucionado el problema de la coexion a la base de datos, ahora me conecta perfectamente.

pero... al darle a buscar no muestra ningun resultado.

¿por que no muestra ningun resultado?

Un saludo.

poderis probarlo en mi web en la seccion de downloads

Última edición por MindPaniC; 29/01/2005 a las 16:52
  #8 (permalink)  
Antiguo 30/01/2005, 05:58
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Nadie sabe el motivo por el cual no muestra los resultados.

No encuentro el fallo por más que lo estoy mirando.

Un saludo
  #9 (permalink)  
Antiguo 30/01/2005, 06:09
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
Proba con hacer lo siguiente
Código PHP:
$tipodebusqueda=$HTTP_POST_VARS['tipodebusqueda']; 
$terminodebusqueda=$HTTP_POST_VARS['terminodebusqueda']; 
Saludos.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
  #10 (permalink)  
Antiguo 30/01/2005, 06:39
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Sabo esas lineas ya las tenia incluidas en el scrip al comienzo del mismo para crear las dos nombre de variables cortas.

no se cual sera el problema, yo creo que los campos de la base de datos estan correctos, y el scrip tambien parece estarlo... no se cual será la historia que falla.

Un saludo
  #11 (permalink)  
Antiguo 30/01/2005, 10:08
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
La tabla downloads esta en la misma base de datos que los foros, como puedo especificar que busque solo en una determinada tabla?? (en este caso la tabla downloads)

quizas es ese el fallo del script. ¿o al hacer una busqueda en base de datos regoge todos los datos que coninciden con 'autor' 'nombre' 'tamaño'?

A ver si me podeis ayudar.
  #12 (permalink)  
Antiguo 30/01/2005, 10:18
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
Perdon, lo que quise poner fue esto:
Código PHP:
 $tipodebusqueda=$_POST['tipodebusqueda']; 
$terminodebusqueda=$_POST['terminodebusqueda']; 
Suerte.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
  #13 (permalink)  
Antiguo 30/01/2005, 10:26
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
Sabo he probado lo que me acabas de comentar y sigue comportandose de la misma manera, no muestra ningun resultado aunke le introduzcas nombres correctos a las filas de la base de datos y en caso de que no pongas ningun criterio de busqueda muestra correctamente la informacion de que "no has introducido ningun criterio de busqueda.

¿por que narices no muestra ningun resultado?

Un saludo

Última edición por MindPaniC; 30/01/2005 a las 10:28
  #14 (permalink)  
Antiguo 30/01/2005, 10:50
 
Fecha de Ingreso: julio-2003
Ubicación: Parana, ER
Mensajes: 72
Antigüedad: 14 años, 4 meses
Puntos: 0
Estoy sospechando que debes tener desactivadas las alertas del apache, por lo que cuando en vez de mostrarle el error producido, te devuelve la pantalla en blanco, y al error lo guarda en el log de tu panel de administración.

Si tenes el Cpanel o alguno parecido, debes tener la opcion de ver el Apache Log o algo parecido, porque seguramente, algo del script esta fallando.

Saludos.
__________________
Victor Bracco
Programador PHP
Proyectos Freelance
  #15 (permalink)  
Antiguo 30/01/2005, 11:26
MindPaniC
Invitado
 
Mensajes: n/a
Puntos:
la verdad es que eso aun se como mirarlo por que mi web esta alojada en un hosting y en el panel de control del alojamiento no hay nada relacionado con los logs, solo lo tipico (estadisticas, cuentas de correo...etc) y phpmyadmin.

si algo falla en el script debe de estar donde debe hacer los echo y pintar en pantalla los resultados.

¿el script es correcto o hay algun fallo q no hemos encontrado?

a ver si hay suerte.
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.