Hola a todos.
 
Estoy haciendo pruebas con la faq nº 93 de cluster, para pasar un array de
codigos seleccionados con checkbox a una consulta SQL, pero me he encontrado con el siguiente problema:
me pasa el array de codigos correctamente, pero si el codigo empieza por 
0 ó contiene una letra no lo tiene en cuenta en la consulta.
 
Este es el código:
 
<? 
// Realizar la conexión a la BD .. Seleccionar la BD a usar. 
   $host = "xxxxx";
   $user = "xxxx";
   $password = "xxxxx";
   $dbdat = "xxxxx";
   $link = mysql_connect ($host,$user,$password);
   $query = "SELECT * FROM referen ORDER BY codigo";
// Ejecutar la consulta para obtener los datos de la BD.  
   $result=mysql_db_query($dbdat,$query,$link);
// Se inicial el formulario 
echo "<form action=\"procesar.php\" method=\"post\"> \n"; 
 
// Extraemos y componemos los checbox dinámicos de los datos de nuestra tabla de la BD. 
while ($row = mysql_fetch_array($result)){ 
  echo "<input type=\"checkbox\" name=\"seleccion[]\" value=\"".$row['codigo']."\">$row[codigo]-$row[nombre]<br/>";
} 
 
// Cerramos el formulario y ponemos nuestro botón de Submit. 
echo "<input type=\"submit\" name=\"Submit\" value=\"Enviar\">"; 
echo "</form>"; 
?> 
 
y este el código de procesar.php
 
<? 
// Generamos una lista de los ID's (campo value= ..) que tenemos en nuestro array. 
   if (is_array($_POST['seleccion'])){ 
	$lista=implode(',',$_POST['seleccion']); 
	} else{ 
	$lista=$_POST['seleccion']; 
	} 
 
   echo ".$lista.";
   $host = "xxxxx";
   $user = "xxxxxx";
   $password = "xxxxxxxx";
   $dbdat = "xxxxxxxxxxx";
   $link = mysql_connect ($host,$user,$password);
 
   $query = "SELECT * FROM referen WHERE codigo IN(".$lista.")";
 
   $result=mysql_db_query($dbdat,$query,$link);
 
 while ($row = mysql_fetch_array($result)) 
{ 
 
echo "<br/>.$row[nombre].<br/>";
}
mysql_close();
?>
 
¿por que sucede esto? ¿es problema del código php o de mysql? 
   
 



