Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/12/2004, 14:23
Avatar de ibme74
ibme74
 
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 1 mes
Puntos: 0
problema con checkbox y consulta a Base de datos

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?