Foros del Web » Programando para Internet » PHP »

Ayuda Desesperada

Estas en el tema de Ayuda Desesperada en el foro de PHP en Foros del Web. hOLA llevo dias con un problema en la web ,al hacer una busuqeda basada en X criterios muestra los resultados ordenador por paginas según se ...
  #1 (permalink)  
Antiguo 11/06/2003, 16:25
 
Fecha de Ingreso: junio-2002
Mensajes: 70
Antigüedad: 21 años, 9 meses
Puntos: 0
Ayuda Desesperada

hOLA llevo dias con un problema en la web ,al hacer una busuqeda basada en X criterios muestra los resultados ordenador por paginas según se defina al ahcer la busuqeda, de 5 en 5 de 10 en 10 etc etc pero el problema es que la primera pagina si la muestra pero al darle a "weiter" (Siguiente) me da este error.
You have an error in your SQL syntax near 'and ) and (u.email=i.email) limit 5, 5' at line 1

El codigo es este


Código PHP:
<?
session_register
('$logueado');

if (!
$logueado)
   {
      
header("location: login.php");
   }

include(
"incs/funcs.inc.php");
connect();

/*$query="select * from usuarios as u, images as i where u.id_sexo='$sexo' and u.id_lenguaje='$lenguaje' and u.fuma='$fuma' and u.id_pais='$pais'   and u.id_relacion_buscada='$relacion_buscada'   and (u.edad between $edad1 and $edad2)  and (u.email=i.email) limit $offset, $resultados";
//$query="select * from usuarios, images where (usuarios.email=images.email) limit $offset, $resultados"; //todos
*/
$rusers=mysql_query($query) or die (mysql_error());

//me das las filas de todos los resultados que cumplen la condicion, para que desaparezca la flecha para ir para adelante cuando no hay mas resultados que mostrar
$qcounter="select * from usuarios as u, images as i where u.id_sexo='$sexo' and u.id_lenguaje='$lenguaje' and u.fuma='$fuma' and u.id_pais='$pais'   and u.id_relacion_buscada='$relacion_buscada'  and u.edad between '$edad1' and '$edad2'  and u.email=i.email"; echo $query;
//$qcounter="select * from usuarios, images where (usuarios.email=images.email) limit $offset, $resultados";
$rcounter=mysql_query($qcounter) or die (mysql_error());
$cantidad=mysql_num_rows($rcounter);

?>

<html>
<head>
<title>:: FlirtMonopol ::</title>
<link rel="stylesheet" type="text/css" href="/styles.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#990000" text="#000000" background="img/top1.gif">

<?include ("incs/top.inc.htm")?>

<table width="100%" border="0" align="left" cellpadding="0" cellspacing="0" bordercolor="#FF0000" class="TextNormal">
  <tr>
    <td>&nbsp; </td>
    <td>


<?
if ($cantidad==0)
{
echo 
'<table width="27%" border="0" align="center" cellpadding="0" cellspacing="0" class=TextNormal2>';
echo 
"Zu Ihrer Suchanfrage wurde leider kein Ergebnis gefunden.";
echo 
'</table>';
}
else
{

?>


<?      while ($row=mysql_fetch_array($rusers))
{
?>

        <table width="27%" border="0" align="center" cellpadding="0" cellspacing="0" class=TextNormal>

        <tr>
        <td width="12"><img src="/img/arr_izq.gif" width="12" height="12"></td>
        <td background="/img/arr.gif"><img src="/img/arr.gif" width="3" height="12"></td>
        <td width="12"><img src="/img/arr_der.gif" width="12" height="12"></td>

        <?   if ($chkfoto)
             {
        
?>
      <td width="12"><img src="/img/arr_izq.gif" width="12" height="12"></td>
          <td background="/img/arr.gif"><img src="/img/arr.gif" width="3" height="12"></td>
          <td width="12"><img src="/img/arr_der.gif" width="12" height="12"></td>

        <?
              
}
        
?>
        </tr>


        <tr>
        <td width="12" background="/img/izq.gif"><img src="/img/izq.gif" width="12" height="3"></td>

        <td>
        <?
           
echo '<div align="center">';
           echo 
"Descripcion: ".$row["descrip"];
           
$encriptado bin2hex($row["email"]);
        
?>
          <form action="show_info.php" method="POST">
          <input type="hidden" name="mailcrypted" value="<?echo $encriptado;?>">
          <input type="submit" name="Submit" value="Mehr info">
          </form>
          </div>
          </td>

          <td width="12" background="/img/der.gif"><img src="/img/der.gif" width="12" height="8"></td>

        <?    if ($chkfoto)
              {
        
?>
          <td width="12" background="/img/izq.gif"><img src="/img/izq.gif" width="12" height="3"></td>
          <td>

                 <img src="/users_pics/<?php echo $row["pic_name"];?>">

          </td>
          <td width="12" background="/img/der.gif"><img src="/img/der.gif" width="12" height="8"></td>

        <?
              
}
        
?>
        </tr>


        <tr>
          <td width="12"><img src="/img/aba_izq.gif" width="12" height="12"></td>
          <td background="/img/aba.gif"><img src="/img/aba.gif" width="2" height="12"></td>
          <td width="12"><img src="/img/aba_der.gif" width="12" height="12"></td>

          <?      if ($chkfoto)
                  {
           
?>
      <td width="12"><img src="/img/aba_izq.gif" width="12" height="12"></td>
          <td background="/img/aba.gif"><img src="/img/aba.gif" width="2" height="12"></td>
          <td width="12"><img src="/img/aba_der.gif" width="12" height="12"></td>
          <?
                   
}
          
?>
    </tr>

      </table>

      <?   echo "<br>";
}
      
?>


      <table align="center" bordclass="TextNormal">
        <tr>
          <td>
        <? if (($offset-$resultados)>=0)
        {   
?>
                  <a href="do_search.php?offset=<?
                                          
if ($chkfoto)
                                          echo 
$offset-$resultados.'&chkfoto=1&resultados='.$resultados;
                                          else
                                          echo 
$offset-$resultados.'&resultados='.$resultados;
                                          
?>" class="TextNormal2">Zurück</a>
        <? }  ?>
            </td>

    <td class="TextNormal2">|</td>

        <td>
      <? if (($offset+$resultados)<=$cantidad)
      {
          
?>
             /*   <a href="do_search.php?offset=<?
                                          
if ($chkfoto)
                                          echo 
$offset+$resultados.'&chkfoto=1&resultados='.$resultados;
                                          else
                                          echo 
$offset+$resultados.'&resultados='.$resultados;
                                          
?>" class="TextNormal2">Weiter</a> 
<? }
?>

                                                                                  </td>
        </tr>

        </table>
        </td>
    <td>&nbsp;</td>
    </tr>

    <tr>
    <td width="19%">&nbsp; </td>
    <td width="60%">

    <?
}?>

    <?include ("incs/footer.inc.php")?>
    </td>
    <td width="21%"><div align="center"></div></td>
    </tr>
    </table>


</body>
</html>
__________________
Rob
Queridas Islas cies te estan llenando de fuel , ¡¡¡putos políticos de mierda que me las vais a joder(os quería ver nandando en fuel a todos CABRONES¡¡¡
  #2 (permalink)  
Antiguo 11/06/2003, 17:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Bueno .. tienes ahí la sentencia SQL con LIMIT comentada .. y otra mas abajo .. Aclara que sentencia estás usando.

Ahora, ¿Te acuerdas que te corregí ya una de esas consultas SQL por temas de parentesis y de comillas simples? ..

Código PHP:
$query="select * from usuarios as u, images as i where u.id_sexo='$sexo' and u.id_lenguaje='$lenguaje' and u.fuma='$fuma' and u.id_pais='$pais'   and u.id_relacion_buscada='$relacion_buscada'   and (u.edad between $edad1 and $edad2)  and (u.email=i.email) limit $offset, $resultados"
Te acuerdas? ... de lo que te comenté del between? .. aplicalo ahí .. (si es esa la consulta que te dá problemas? ..)

Cuando pongas código aquí con algún error, por favor deja el código tal cual te ocasiona errores .. no con líneas comentadas o pruebas tuyas por médio .. así lo único que haces es despistar ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 11/06/2003, 18:50
 
Fecha de Ingreso: junio-2002
Mensajes: 70
Antigüedad: 21 años, 9 meses
Puntos: 0
algo debe estar mal aun pues no funciona bien

<?
session_register('$logueado');

if (!$logueado)
{
header("location: login.php");
}

include("incs/funcs.inc.php");
connect();

$query="select * from usuarios as u, images as i where u.id_sexo='$sexo' and u.id_lenguaje='$lenguaje' and u.fuma='$fuma' and u.id_pais='$pais' and u.id_relacion_buscada='$relacion_buscada' and u.edad between '$edad1' and '$edad2' and (u.email=i.email) limit $offset, $resultados";
//$query="select * from usuarios, images where (usuarios.email=images.email) limit $offset, $resultados"; //todos
$rusers=mysql_query($query) or die (mysql_error());

//me das las filas de todos los resultados que cumplen la condicion, para que desaparezca la flecha para ir para adelante cuando no hay mas resultados que mostrar
$qcounter="select * from usuarios as u, images as i where u.id_sexo='$sexo' and u.id_lenguaje='$lenguaje' and u.fuma='$fuma' and u.id_pais='$pais' and u.id_relacion_buscada='$relacion_buscada' and u.edad between '$edad1' and '$edad2' and (u.email=i.email)";
//$qcounter="select * from usuarios, images where (usuarios.email=images.email) limit $offset, $resultados";
$rcounter=mysql_query($qcounter) or die (mysql_error());
$cantidad=mysql_num_rows($rcounter);

?>
__________________
Rob
Queridas Islas cies te estan llenando de fuel , ¡¡¡putos políticos de mierda que me las vais a joder(os quería ver nandando en fuel a todos CABRONES¡¡¡
  #4 (permalink)  
Antiguo 11/06/2003, 19:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 2 meses
Puntos: 129
Cuando digas "no funciona bien" ... debes especificar el ERROR concreto que tengas .. sea de PHP .. de Mysql o de lo que sea ..

Date cuenta q no podemos probar el código pues usas Mysql con tus datos y la estructura de la tabla ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 12/06/2003, 02:49
 
Fecha de Ingreso: junio-2002
Mensajes: 70
Antigüedad: 21 años, 9 meses
Puntos: 0
Error

Hola ,no es que me de ningun error, sencillamente no funciona bien ,pues explico ,hago una busuqeda y me salen X resultados por página ,el problema es que solo muestra los resultados de la 1 página y la 2. En la 2 página solo sale el Boton Atrás ,aun habiendo más resulados no los musetra .
Espero haberme explicado lo mejor posible.

(el cacho de código que creo q falla lo he puesto aqui)

http://www.pastebin.com/12366


Por si alguien quiere ver el problema por si mismo la web es
http://www.flirtmonopol.com

le dais a login y poneis este user y pass
[email protected]
nirvana
luego a "Suchen" BUSCAR y listo
Gracias a todos de antemano
__________________
Rob
Queridas Islas cies te estan llenando de fuel , ¡¡¡putos políticos de mierda que me las vais a joder(os quería ver nandando en fuel a todos CABRONES¡¡¡

Última edición por Rober1978; 12/06/2003 a las 03:16
  #6 (permalink)  
Antiguo 12/06/2003, 04:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,

El codigo que muestras solo son las consultas (que parecen estar bien). La segunda consulta (la de contar las filas) deberia ser igual que la primera pero sin el LIMIT. Por cierto, en el pantallazo de codigo tienes 2 $query, de la cual ejecutas la segunda, que no es la misma que la que ejecutas para contar las filas. Decide cual vas a usar. Imagino que usaras $cantidad para decidir si muestras los enlaces siguiente / anterior, asi que lo mas facil es que pongas un echo $cantidad; para ver si el valor obtenido de la consulta es el esperado.

En fin, decidete que consulta usar, la del where con los campos de busqueda o la el where sin los campos de busqueda, y ponla en las dos mysql_query() (la segunda sin el limit).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 16:16.