Foros del Web » Programando para Internet » PHP »

problema con funcion LIKE

Estas en el tema de problema con funcion LIKE en el foro de PHP en Foros del Web. Buenas estimados compañeros, me ha surgido el siguiente problema que no he podido resolver y es el siguiente tengo una tabla llamada series y en ...
  #1 (permalink)  
Antiguo 03/02/2012, 21:17
Avatar de mazaku  
Fecha de Ingreso: septiembre-2009
Ubicación: Veracruz
Mensajes: 104
Antigüedad: 14 años, 7 meses
Puntos: 0
Pregunta problema con funcion LIKE

Buenas estimados compañeros, me ha surgido el siguiente problema que no he podido resolver y es el siguiente tengo una tabla llamada series y en ella un campo llamado genero y en el campo genero guardo informacion que paso por medio de un checkbox y en el campo genero esta guardado algo asi

Código:
id/nombre/genero

25/naruto/Accion Aventura Ninjas....etc 
30/bleach/Accion Comedia Fantasia...etc
entonces tengo este codigo para mostrar registros de 50 en 50 pero cuando quiero mostrar las series con determinado genero me marca error. Pongo el like asi
Código:
SELECT * FROM serie WHERE genero LIKE '$genero' ORDER BY s_nombre DESC limit $inicio,50",
generos.php
Código PHP:
<?php
session_start
(); // incio de uso de sesiones. 
$genero $_GET['genero']; // Esto recoje los datos de la variable id en la url.
/// Necesario cada vez que se lean
include ('config.php');
if (isset(
$_REQUEST['sec']))
  
$inicio=$_REQUEST['sec'];
else
  
$inicio=0;
  
?>
<table width='100%'>
<tr><td height="30" background="images/bg_menus.jpg" valign="middle"><img src="images/flechas.gif" width="15" height="15">  <b><font color="#ffffff">Capitulos Recientes</font></b><br></td></tr>
<tr class="even"> 
              <td><b><div class="izq">Capitulo</div><div class="cen"><font color="#000000">   Scanlator</font></div><div class="der">Vistas</div></b></td>
                          </tr>
<?php

$registros
=mysql_query("SELECT * FROM serie WHERE genero LIKE '$genero' ORDER BY s_nombre DESC limit $inicio,50",  
           
$db_link) or
  die(
"Problemas en el select:".mysql_error());
$impresos=0;
while (
$reg=mysql_fetch_array($registros))
{
$impresos++;
  if (
$colorfila==0){
       
$color'#E8F8FF';
       
$colorfila=1;
    }else{
       
$color='#ffffff';
       
$colorfila=0;
    }
    
  echo 
"<tr bgcolor='".$color."'><td><div class='izq'><a href='index.php?sec=ver&id=".$reg['c_id']."'><img src='images/leer_ico.gif' border='0'> ".$reg['s_serie']." <b>".$reg['c_capitulo']." ".$reg['c_calidad']."<img src='images/icono_comentarios.gif' border='0'></b></a></div>"?>
  <?php 
    $genero  
"".$reg['genero']."";
    
$generos explode(" "$genero);
foreach (
$generos as $selec_genero) {
    echo 
"<div class='cen'><em><a href='index.php?sec=generos&genero=$selec_genero'>$selec_genero - </a></em></div>";
    }
?>
  <?php 
    
echo"
  <div class='der'><b>ver</b></div></td></tr>"
;
  }
mysql_close($db_link);
if (
$inicio==0)
  echo 
"<tr><td>";
else
{
  
$anterior=$inicio-50;
  echo 
"<tr><td><a class='boton' href=\"index.php?sec=$anterior\">Anteriores</a> ";
}
if (
$impresos==50)
{
  
$proximo=$inicio+50;
  echo 
" | <a class='boton' href=\"index.php?sec=$proximo\">Siguiente</a></td></tr>";
}
else
  echo 
"</td></tr>";
?>
</table>
</body>
</html>

me marca el siguiente error
Código:
Problemas en el select:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'generos,50' at line 1
Se los agradeceria mucho si pudieran ayudarme en este problema, gracias
  #2 (permalink)  
Antiguo 03/02/2012, 21:23
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: problema con funcion LIKE

El problema viene desde aquí:

Código PHP:
Ver original
  1. $_REQUEST['sec'])

$inicio tiene como valor "generos"

por algún motivo en vez de enviar un número está enviado el string "generos".

Verifica imprimiendo $_REQUEST['sec']) antes del condicional.

Revisa esa parte o coloca el código para poderla revisar mejor.

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 04/02/2012, 06:05
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: problema con funcion LIKE

como ya te dijeron arriba.. el problema es que LIMIT espera un dato tipo numerico para decir cuantos resultados traera LIMIT 50.. o cuantos resultados traera y a partir de que fila mostrara LIMIT 50, 3 (50 resultados desde la fila numero 3).

Corrige el valor que recibes en $inicio y de seguro funcionara.. para ello haz un ECHO de $inicio y verifica que valor trae.. si te trae un STRING esta mal.. corrige eso desde el formulario de origen
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: funcion, html, mysql, registro, sql, tabla, variables
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 04:21.