Ver Mensaje Individual
  #7 (permalink)  
Antiguo 15/11/2014, 12:55
Avatar de Djoaq
Djoaq
 
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: Crear filtro en la misma página

Cita:
Iniciado por maiksix Ver Mensaje
El tipo de dato que se guarda en "seccion" en la BD es varchar, no debería ser eso no?
Muchas gracias
Hola por lo que estoy viendo ese es justo el problema ...

Cuando me refiero a que insertes el texto , me refiero a que copies y peges la consulta en algun gestor de sql , ( a mi me ayuda a depurar..) ..

Mira si imprimes tu query :

Código MySQL:
Ver original
  1. SELECT * FROM Articles WHERE seccion=3 AND estado_noticia = 'Publicado' ORDER BY fecha desc

Este es el resultado , si te fijas el 3 va a pelo sin comillas entonces mysql lo interpreta como numero en vez de string y por eso no te devuelve resultado correcto.

tienes que añadir una comilla encerrando la variable get es decir así :

Código PHP:
Ver original
  1. $consulta = "SELECT *
  2.                         FROM Articles
  3.                         WHERE seccion='".$_GET['secc']."'
  4.                         AND estado_noticia = 'Publicado'
  5.                         ORDER BY fecha desc";
para que la consulta sea :

Código MySQL:
Ver original
  1. SELECT * FROM Articles WHERE seccion='3' AND estado_noticia = 'Publicado' ORDER BY fecha desc
Fijate que ahora el 3 esta encerrado por comillas y mysql lo detecta como string en vez de int.

Por otro lado te dejo un mínimo ejemplo de mysqli .. (muy básico)

Código HTML:
Ver original
  1. <form action="mas_noticias.php" type="get">
  2.  
  3. <b>Sección</b>: <select name="secc">
  4. <option value="1">1</option>
  5. <option value="2">2</option>
  6. <option value="3">3</option>
  7. <option value="4">4</option>
  8.  
  9. <input id="botonInput" type="submit" value="Aplicar filtro"></input>
  10. </form>
  11. <table style="background: #C5C5C5; width:664px; height:669px; margin-left:38px; margin-top:30px; border:black 1px solid; float:left;">
  12.                         <tr style="height:10px;">
  13.                                                 </tr>
  14.                                                 <tr>
  15.                                                 <tr style= "margin-top:20px;">
Código PHP:
Ver original
  1. <?php
  2.                         ##primero comprobamos que exista la peticion
  3.                         if (isset($_GET['secc'])) {
  4.                             ##minimamente limpiamos peticion para evitar inyec. sql
  5.                             $valor = htmlentities($_GET['secc']);
  6.                             $con = mysqli_connect("host","user","contra","bd") or die("Error " . mysqli_error($con));
  7.                             $consulta = "SELECT *
  8.                             FROM Articles
  9.                             WHERE seccion='".$valor."'
  10.                             AND estado_noticia = 'Publicado'
  11.                             ORDER BY fecha desc";
  12.                             $result = mysqli_query($con,$consulta);
  13.                             while($row = mysqli_fetch_array($result)){
  14.                                                     $variable = explode ('/',$row['fecha']);
  15.                                                     echo "<tr style='margin-top:-30px;'> ";
  16.                             $foto = $row['timestamp']."_".$row['imagen1'];
  17.                             echo "<td><font color='black'><a style='text-decoration:none;' href='noticias?idNoticia=".$row['id']."'><img style='width:50px; height:32px; margin-left:10px;border:black 1px solid;margin-top:-55px;' src='ImagenesNoticias/".$foto."'/></a> </font></td>";
  18.                             echo "<td><font color='black'><p style='margin-letf:-90px;margin-top:-50px;'><a style='text-decoration:none;' href='noticias?idNoticia=".$row['id']."'><i>$variable[2]/</i></p></a> </font></td>";
  19.                             echo "<td><font color='black'><p style='margin-letf:-100px;margin-top:-50px; float:left;'><a style='text-decoration:none;' href='noticias?idNoticia=".$row['id']."'><i>$variable[1]/</i></p></a> </font></td>";
  20.                             echo "<td><font color='black'><p style='margin-letf:-150px;margin-top:-50px;float:left;'><a style='text-decoration:none;' href='noticias?idNoticia=".$row['id']."'><i>$variable[0]</i></p></a> </font></td>";
  21.                                                     echo "<td><font color='black'><a style='text-decoration:none;' href='noticias?idNoticia=".$row['id']."'><p style= 'width:280px; margin-top:0px;margin-top:-50px;'><b>".$row['titulo']."</p></b>";
  22.                             echo "</a> </font></td></tr>";
  23.                             }
  24.                         }
  25.  
  26.                        
  27.                         ?>
Código HTML:
Ver original
  1. </tr>
  2.                                                 </tr>
  3.                     </table>

Saludos Vecino! :D