Como hago con un formulario en PHP

Disculpa que te moleste, iré al grano, conseguí un formulario dinámico que me agrega o elimina filas de una tabla según lo desee, el problema está en que no se como hacer para que todos los datos que ingresé se guarden en una tabla mysql que tengo, hice un formulario estático y si me ingresa los valores, debido a que en el insert value le he puesto las variables una por una es decir INSERT INTO tabla VALUES (1,2,3), (4,5,6) etc., la cosa es que al tener un formulario dinámico creado con jquery esto no se puede hacer debido a que mis inputs solo tienen un nombre y a la hora de enviar los datos solamente me ingresa la ultima fila, este es mi formulario "precio.php"

<form id="form1" name="form1" method="post" action="cprecio.php">
 <input type="text" name="id" value="" hidden="hidden">
 <select name="articulo"><option value="0">Seleccione Artículo</option>
 <?php
while($row=mysql_fetch_array($sql))
{
 echo "<option value='".$row['id_arti']."'>".$row['descripcion_arti']," / ", $row['categoria']."</option>";
 }
?>
</select>
 <table border="1" cellspacing="0" cellpadding="0" id="tabla">
 <th>Tipo Precio</th>
 <th>Precio</th>
 <th></th>
 <th>Borrar</th>
 <tr>
 <td><input type="text" name="tprecio[]"></td>
 <td><input type="text" name="precio[]"></td>
 <td><a href="#"><img src="../png/cancelar.png" width="20" height="20"></a></td>//esta borra la fila
 </tr>
</table>
<input type="button" value="+" id="addrow">//esta agraga una fila
<input id="sub" type="submit" value="ENVIAR">
</form>

he estado intentando con este pero solo me imprime el primer resultado "cprecio.php"

<?php require('../Connections/conecta.php');
$id=""; 
$tp=$_POST['tprecio'];
$p=$_POST['precio'];
$art=$_POST['articulo'];
$values = array();
//$i = 0;
$cu=count($tp);
for($i = 0; $i <($cu); ++$i)
 //foreach ($valores as $k => $v)
 {
$values[] = sprintf('(\'%s\', \'%s\', \'%s\', \'%s\')',$id, $tp[$i], $p[$i], $art);
$i++;
 //echo $tp;
 print_r($values);
 //}//echo $p;
 //$insert="INSERT INTO arti_precios VALUES('$values')";
 //$rs=mysql_query($insert,$cn) or die ('hay un problema'.mysql_info());
 }
//echo 'si se pudo ingresar'; 
mysql_close();
?> 

La verdad estoy atrapado no se que mas hacer espero que me puedas ayudar.

1 respuesta

Respuesta
1

El problema es que lo que quieres hacer es guardar como texto algo que te está llegando como array, por ejemplo, de lo que veo en tu formulario tprecio[] y precio[] son las que van a tener varios valores, verdad? Por tanto la forma de recoger todas y guardarlas en la base de datos será así:

foreach($_POST as $tprecio){
$sql = "INSERT INTO tabla (campo) VALUES ($tprecio)";
}

El único problema es que si lo quieres hacer con varios al final del todo, en lugar de meterlos directamente en la base de datos con el foreach, puedes meterlos en un array multidimensional para luego procesarlo todo junto.

Quizás si pudieras pasarme un archivo funcional y una estructura de la tabla de la base de datos que pueda probar te podría echar una mano más a fondo. (Por dropbox en un zip mismo, o por mega)

Un saludo.

Blog de ayuda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas