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?