Estoy haciendo unas practicas en las que genero una agenda telefónica y se me presento un problema les cuento.
Tengo un formulario simple en HTML es el siguiente:
Código HTML:
<form method="post" action="telefonos_proc.php"> <td></td> <td> <input type="text" name="nombre" placeholder="Nombre"></td> <td id="campos2"> <input type="text" name="tel[]" placeholder="Telefono"><span><a href="javascript:agregartels();">+</a></span></td> <td id="campos"><input type="text" name="email[]" placeholder="E-mail"> <span><a href="javascript:agregaremail();">+</a></span></td> <td> <input class='boton' type="submit"></td> </form>
Al enviar este formulario se ejecuta el siguiente código PHP
Código PHP:
<?php
$contador=0;
$bd= new SQLite3('agenda.db');
//Esta parte es para comprobar que no existan teléfonos duplicados, funciona bien cuando envió un solo teléfono aun no lo adapto para recibir varios teléfonos y comprobarlos
$resultado= $bd->query("SELECT * FROM telefonos WHERE telefono='".$_POST['tel']."'");
while($fila=$resultado->fetchArray()){
$contador++;
}
$resultado= $bd->query("SELECT * FROM agencia WHERE nombre='".$_POST['nombre']."'");
while($fila=$resultado->fetchArray()){
$contador++;
}
//En caso de que no exista procedo a ingresar los datos en las distintas tablas de la base de datos
if($contador==0){
//Primero ingreso el nombre para que le asigne un id la BD
$resultado= $bd->query("INSERT INTO agenda VALUES(NULL,'".$_POST['nombre']."')");
//Después consulto el id que se le asigno para relacionarlo con las demás tablas que contienen los teléfonos y los emails
$resultado= $bd->query("SELECT * FROM agenda WHERE nombre='".$_POST['nombre']."'");
$fila2=$resultado->fetchArray();
//AQUI es donde esta el PROBLEMA
for($i=0;$i<=count($_POST['tel']); $i++){
$resultado= $bd->query("INSERT INTO telefonos VALUES(NULL,'".$fila2['id']."','".$_POST['tel'][$i]."','0','0')");
}
//AQUI tambien tengo problemas
for($i=0;$i<=count($_POST['email']); $i++){
$resultado= $bd->query("INSERT INTO emails VALUES(NULL,'".$fila2['id']."','".$_POST['email'][$i]."')");
}
echo'<script type="text/javascript"> window.location="telefonos.php"</script>';
}
else{
echo'El <strong>Nombre</strong> o el <strong>Telefono</strong> ya existen en la base de datos <br><br><a href=telefonos.php><button>Regresar</button></a>';
}
?>
Notice: Array to string conversion in C:\xampp\htdocs\php\telefonos_proc.php on line 4
Notice: Undefined offset: 1 in C:\xampp\htdocs\php\telefonos_proc.php on line 21
Notice: Undefined offset: 1 in C:\xampp\htdocs\php\telefonos_proc.php on line 24
***Entiendo que el primer error lo da porque la parte que comprueba el nombre no esta preparada para recibir un array
- El resultado en la base de datos es el siguiente:
- El nombre se agrega correcto
- El teléfono (independientemente de si agrego uno o varios) se guarda solo el primero y agrega uno mas en blanco
- El mail (independientemente de si agrego uno o varios) se guarda solo el primero y agrega uno mas en blanco
Me pueden tirar un cable de que es lo que estoy haciendo mal. muchas gracias de antemano y bonito día.