Foros del Web » Programando para Internet » PHP »

Poner sentencia de forma correcta...

Estas en el tema de Poner sentencia de forma correcta... en el foro de PHP en Foros del Web. Hola amigos, por aqui nuevamente con un cachito (problemita)... Bueno... tengo un formulario que funciona con js. se trata de apretar un boton y de ...
  #1 (permalink)  
Antiguo 14/07/2011, 22:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 162
Antigüedad: 10 años, 10 meses
Puntos: 11
Poner sentencia de forma correcta...

Hola amigos, por aqui nuevamente con un cachito (problemita)...

Bueno... tengo un formulario que funciona con js. se trata de apretar un boton y de este modo añadir nuevos campos... el formulario es el que sigue...


Código PHP:
    <form name="frm_multiple" method="post" action="procesar.php">
    <
ol id="emails">
        <
li>
        <
input type="text" size="20" name="email[]" /><a href="javascript:agregar();">Agregar</a>
        </
li>
        <
ul id="campos"><!-- aqui se crean los CAMPOS --></ul>
    </
ol>
    
    <
p align="center"><input type="submit" name="Send" value="Send" /></p>
    </
form
como ven este formulario me envía a procesar.php en el cual quisiera poner la sentencia para poder guardar los datos ingresados en los campos...

Código PHP:
<?php
$emails
=$_POST['email'];
for (
$i=0$i<=count($emails); $i++) {    
    echo 
$emails[$i].'<br>';
    
//// aqui va la sentencia.... 
}
?>
Bueno he intentado poner sentencias como esta, primero probando solo con un campo...

Código PHP:
$insertSQL="INSERT INTO conceptos (id_factura) VALUES ('$id_factura')";
mysql_select_db($database_my$my);
$Result1 mysql_query($insertSQL$my) or die(mysql_error()); 
desde luego pongo también la conexion.

les cuento que puse id_factura a llenar ya que es un campo foraneo en la tabla y no puede quedar vacio... la tabla es innodb

Les pido su ayuda para poder realizar como corresponde el insert por favor... insertar los registros en mysql

Saludos.
  #2 (permalink)  
Antiguo 14/07/2011, 22:52
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 11 años, 1 mes
Puntos: 1532
Respuesta: Poner sentencia de forma correcta...

lo que necesitas forma parte de los tutoriales más básicos de programación PHP+MySQL, consulta un manual, lo que necesitas no está más allá de lógica y concatenar cadenas.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 14/07/2011, 23:06
 
Fecha de Ingreso: octubre-2008
Mensajes: 162
Antigüedad: 10 años, 10 meses
Puntos: 11
Respuesta: Poner sentencia de forma correcta...

Ok amigo, lo tengo claro.. mira, he hecho varias pruebas pero o se por que me sale un error y aun asi me guarda en la tabla... este es el error.... estoy buscando comillas de mas o de menos pero no logro darme cuenta....

Código PHP:
Cannot add or update a child rowa foreign key constraint fails (`basedatos/tabla`, CONSTRAINT `tabla_ibfk_1FOREIGN KEY (`id_factura`) REFERENCES `factura` (`id_factura`)) 
saludos y gracias....
  #4 (permalink)  
Antiguo 15/07/2011, 00:03
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 10 años, 4 meses
Puntos: 322
Respuesta: Poner sentencia de forma correcta...

Eso es problema de claves foráneas.

Puedes mostrarnos la estructura de tu tabla?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 15/07/2011, 00:36
 
Fecha de Ingreso: octubre-2008
Mensajes: 162
Antigüedad: 10 años, 10 meses
Puntos: 11
Respuesta: Poner sentencia de forma correcta...

Gracias Sourcegeek no era la clave foranea ya que al insertar por phpmyadmin u otro insert funcionaba bién, el problema finalmente era que estaba poniendo un post en el value... no debía ir... gracias...

quisiera si pedirles si me ayudan a ponerle mas celdas a fila, dos o tres....

segñun yo es poner mas insert con otro nombre y dejandole el corchete pero no me funcionó... al pasar a la otra página me muestra siempre los valores de la primera celda.... pero voy a seguir viendo... dejo el codigo si es que alguien me ayuda antes que yo lo descubra,, jeje.

Código PHP:
<script type="text/javascript">
emails=0;
function 
agregar() {
    
emails=emails+1;
    $(
"#campos").append('<li class="email'+emails+'"><input type="text" name="email[]" size="25" />&nbsp;&nbsp;<a href="#" onclick="javascript:borrar('+emails+');">Borrar</a></li>');
}
function 
borrar(cual) {
    $(
"li.email"+cual).remove();
    return 
false;
}
</script>
</head>
<body>

    <form name="frm_multiple" method="post" action="procesar.php">
    <ol id="emails">
        <li>
        <input type="text" size="20" name="email[]" /><a href="javascript:agregar();">Agregar</a>
        </li>
        <ul id="campos"><!-- aqui se crean los CAMPOS --></ul>
    </ol>
    
    <p align="center"><input type="submit" name="Send" value="Send" /></p>
    </form>
</body>
</html> 

antes de enviar a la base de datos y solo por ahora muestro si funciona o no con

Código PHP:
<?php
$emails
=$_POST['email'];
for (
$i=0$i<=count($emails); $i++) {    
    echo 
$emails[$i].'<br>';
}
?>
gracias amigos, saludos.
  #6 (permalink)  
Antiguo 15/07/2011, 04:40
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 11 años, 6 meses
Puntos: 253
Respuesta: Poner sentencia de forma correcta...

Si no he entendido mal, lo que pasa es que aunque añadas más inputs para los mails, siempre te rescata únicamente el primero, cierto? Si es así, pasa el código de la función agregar(), para ver cómo construyes dichos inputs.

Un saludo.
  #7 (permalink)  
Antiguo 16/07/2011, 00:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 162
Antigüedad: 10 años, 10 meses
Puntos: 11
Respuesta: Poner sentencia de forma correcta...

Disculpa, no tuve tiempo de conectarme antes.... te dejo a continuación el códugo de la función...

gracias.

Código PHP:
<script type="text/javascript"
emails=0
function 
agregar() { 
    
emails=emails+1
    $(
"#campos").append('<li class="email'+emails+'"><input type="text" name="email[]" size="25" />&nbsp;&nbsp;<a href="#" onclick="javascript:borrar('+emails+');">Borrar</a></li>'); 

function 
borrar(cual) { 
    $(
"li.email"+cual).remove(); 
    return 
false

</script> 
  #8 (permalink)  
Antiguo 16/07/2011, 00:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 162
Antigüedad: 10 años, 10 meses
Puntos: 11
Respuesta: Poner sentencia de forma correcta...

Vuelvo a escribir por que después de una prueba me funcionó... diganme si está bién que la deje asi...

como es un array dejé solo el input con nombre email con corchetes los demás inputs sin ellos...

ahora en la sentencia puse de esta forma.

Código PHP:
INSERT INTO tabla (cantidad,id_facturaVALUES ('' '".$_POST['cantidad']."','$emails[$i]'"; 
así me funcionó... estará bién que lo haga asi?

saludos.

Etiquetas: mysql, registro, sentencia, tabla, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:25.