Por favor: Ayuda con un INSERT (seguro que es una tonteria)

stool
02 de Abril del 2006
Saludos a todos, tengo un problema con este código pero no se donde, porque no guarda los registros. Me gustaría que le echarais un ojo y me comentaseis. Gracias por todo:

$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$email=$_POST['email'];
$edad=$_POST['edad'];
$numeromovil=$_POST['numeromovil'];
$tipocontrato=$_POST['tipocontrato'];
$operadora=$_POST['operadora'];
$bluetooth=$_POST['bluetooth'];
$modelo=$_POST['modelo'];
$consumo=$_POST['consumo'];
$mp3=$_POST['checkbox'];
$dvd=$_POST['checkbox2'];
$blackberry=$_POST['checkbox3'];
$pda=$_POST['checkbox4'];
$camara=$_POST['checkbox5'];
$portatil=$_POST['checkbox6'];
$conexion=$_POST['checkbox7'];
$movil3g=$_POST['checkbox8'];

if (!$nombre || !$apellidos || !$email || !$numeromovil)
{
echo 'No has introducido todos los datos necesarios '
.'Por favor vuelva al formulario e introduzca los datos requeridos';
exit;
}

if (!get_magic_quotes_gpc())
{
$nombre = addslashes($nombre);
$apellidos = addslashes($apellidos);
$email = addslashes($email);
$edad = addslashes($edad);
$numeromovil = addslashes($numeromovil);
$tipocontrato = addslashes($tipocontrato);
$operadora = addslashes($operadora);
$bluetooth = addslashes($bluetooth);
$modelo = addslashes($modelo);
$consumo = addslashes($consumo);
$mp3 = addslashes($mp3);
$dvd = addslashes($dvd);
$blackberry = addslashes($blackberry);
$pda = addslashes($pda);
$camara = addslashes($camara);
$portatil = addslashes($portatil);
$conexion = addslashes($conexion);
$movil3g = addslashes($movil3g);


}

$db = new mysqli('localhost', 'root');
mysql_select_db('base1', '$db');

$query = "INSERT INTO base1.tabla1(nombre, apellidos, email, edad, numeromovil, tipocontrato, "
$query= " operadora, marca, modelo, bluetooth, consumo, uso, mp3, dvd, blackberry, pda, camara, portatil, "
$query= " conexion, movil3g)"
$query=" values ('".$nombre."', '".$apellidos."', '".$email."', '".$edad."''".$numeromovil."', "
$query= " '".$tipocontrato."', '".$operadora."', '".$marca."', '".$modelo."', '".$bluetooth."', '".$consumo."', "
$query= " '".$uso."', '".$mp3."', '".$dvd."', '".$blackberry."', '".$pda."', '".$camara."', '".$portatil."', '".$conexion."', '".$movil3g."')" ;

$result = mysql_query($query);

mysql_close();

Sandy
02 de Abril del 2006
Si ese es el código, el error está al final cuando le asignas a $query el string de la consulta. Fijate que cada vez le estás asignando un valor nuevo no concatenado el nuevo valor con lo que ya tenias. Es decir que la consulta que estás enviado a la base de datos es:

" \'".$uso."\', \'".$mp3."\', \'".$dvd."\', \'".$blackberry."\', \'".$pda."\', \'".$camara."\', \'".$portatil."\', \'".$conexion."\', \'".$movil3g."\')" ;

Prueba con:
$query = "INSERT INTO base1.tabla1(nombre, apellidos, email, edad, numeromovil, tipocontrato, ";
$query .= " operadora, marca, modelo, bluetooth, consumo, uso, mp3, dvd, blackberry, pda, camara, portatil, ";
$query.= " conexion, movil3g)";
$query.=" values (\'".$nombre."\', \'".$apellidos."\', \'".$email."\', \'".$edad."\'\'".$numeromovil."\', "
$query.= " \'".$tipocontrato."\', \'".$operadora."\', \'".$marca."\', \'".$modelo."\', \'".$bluetooth."\', \'".$consumo."\', "
$query.= " \'".$uso."\', \'".$mp3."\', \'".$dvd."\', \'".$blackberry."\', \'".$pda."\', \'".$camara."\', \'".$portatil."\', \'".$conexion."\', \'".$movil3g."\')" ;

Sandy
02 de Abril del 2006
Si ese es el código, el error está al final cuando le asignas a $query el string de la consulta. Fijate que cada vez le estás asignando un valor nuevo no concatenado el nuevo valor con lo que ya tenias. Prueba con poner .= en lugar de = excepto en la primera asignación