Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como insertar arreglos en una base de datos ?

Estas en el tema de Como insertar arreglos en una base de datos ? en el foro de PHP en Foros del Web. Hola amigo tengo un arreglo que recoge informaciones duplicando el input bueno esto es lo que tengo y me imprime bien los datos me lo ...
  #1 (permalink)  
Antiguo 26/05/2016, 00:16
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Como insertar arreglos en una base de datos ?

Hola amigo tengo un arreglo que recoge informaciones duplicando el input
bueno esto es lo que tengo y me imprime bien los datos

me lo paso un amigo

Código PHP:
Ver original
  1. <?php
  2. for($i=0;$i<count($_POST['materiales']);$i++){
  3.     $materiales = $_POST['materiales'][$i];
  4.     echo "<pre>";
  5. var_dump($materiales);
  6. }


pero quiero insertar esto en una base de datos

encontre este codigo por hay por que el bucle for no lo entiendo del todo esto es lo que modifique pero no me graba nada en la base de datos

Código PHP:
Ver original
  1. //en este caso asigno los elementos del arreglo que se llama tienda a la variable lista
  2.  $lista=implode(',',$_POST['materiales']);
  3.  echo $lista;
  4.  
  5. //esta linea cuenta cuantos elementos tiene nuestro arreglo
  6.  $count = count($lista);
  7.  
  8.  // Aqui va a insertar un insert por cada uno de los elementos contados anteriormente
  9.  for($j = 0; $j < $count; $j++)
  10.  {
  11.  
  12. //traigo los elementos de la lista y se los asigno a la variable idtienda
  13.  $idtienda = $_POST['materiales'][$j];
  14.  
  15. //este es solo para que imprima el que trae
  16.  echo $idtienda."";
  17.  
  18.  //consulta mysql que insertara una vez por cada elemento
  19. require("../conexion/conexionmsqli.php");
  20.  $query1 = mysql_query( "INSERT INTO base ( info ) VALUES ( '$idtienda')" );
pero vi que con esto imprime los datos que quiero

Código PHP:
Ver original
  1. $lista=implode(',',$_POST['materiales']);
  2.  echo $lista;
en toces no puedo meter datos en la base de datos hasta hice intentos sin la variable poniendo un valor string y nada estoy muy cansando so las 2 30 am parece que mi cerebro no da mas

que creen que estoy haciendo mal
  #2 (permalink)  
Antiguo 26/05/2016, 00:29
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como insertar arreglos en una base de datos ?

ya descubri la consulta me hacia falta llamar la conexión
Código PHP:
Ver original
  1. require("../conexion/conexionmsqli.php");

pero tengo un erro de parámetro estoy tan casado que no lo veo

Warning: mysql_query() expects parameter 1 to be string, object given in C:\xampp\htdocs\roomvs\boton\datos.php on line 26

suele pasar cuando algo esta mal escrito repcto a al consulta pero no lo veo

mi base de datos

Código MySQL:
Ver original
  1. CREATE TABLE `aa` (
  2.  `info` varchar(12) COLLATE utf8_spanish_ci NOT NULL
  3. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci

mi consulta
Código PHP:
Ver original
  1. $query1 = mysql_query($conexion,  "INSERT INTO aa (info) VALUES ('$lista')" );
  #3 (permalink)  
Antiguo 26/05/2016, 00:38
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 21 años
Puntos: 154
Respuesta: Como insertar arreglos en una base de datos ?

Hola wilson_romero,

Antes de nada ¿estás usando mysql o mysqli? Si es la primera, debes colocar como primer parámetro la consulta y si es la segunda, debes cambiar mysql_query por mysqli_query.

Espero que te sirva...
  #4 (permalink)  
Antiguo 26/05/2016, 00:45
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como insertar arreglos en una base de datos ?

ok listo me funciono olvido usar la consulta con msqli aveces la pongo con msql
bueno con este código puede resolver para insertar los datos duplicado

Código PHP:
Ver original
  1. $lista=implode(',',$_POST['materiales']);
  2.  echo $lista;
  #5 (permalink)  
Antiguo 26/05/2016, 10:56
 
Fecha de Ingreso: diciembre-2015
Mensajes: 369
Antigüedad: 8 años, 10 meses
Puntos: 4
Respuesta: Como insertar arreglos en una base de datos ?

Resolvi todo el problema voy aponer el codigo por si alguien lo necesita

código HTML con un script para que corra el jquery

Código HTML:
Ver original
  1. <title>Timersys </title>
  2. <script type="text/javascript" src="jquery-1.11.3.min.js"></script>
  3. <script type="text/javascript" src="jquery.addfield.js"></script>
  4. $(function(){
  5.    
  6. });
  7.  
  8. </head>
  9. <link href="estilo.css" rel="stylesheet" type="text/css" />
  10. <div id="stylized" class="myform" style="margin:20px auto;">
  11.  
  12. <!--FROMULARIO -->
  13. <form id="form" name="form" method="post" action="datos.php">
  14. <div id="material_comprado"  > </div>  
  15. <h1>Compra de material</h1>
  16. <p>Si es necesario a&ntilde;ade el material a comprar</p>
  17. <div id="div_1">
  18. <label>Material de compra
  19. <span class="small">A&ntilde;ade los materiales</span>
  20.     <input  type="text"  name="materiales[]"  style="width:200px;" /><span style="float:left;padding: 8px 0px 8px 8px;">Cantidad:</span>
  21.     <input type="text" name="cantidadmateriales[]"  style="width:40px;" /><input class="bt_plus" id="1" type="button" value="+" /><div class="error_form"></div>
  22. </div>
  23. <button type="submit" class="boton">Save</button>
  24. <div class="spacer"></div>
  25. </form>
tiene que bajar este archivo de jquery para que corra el jquery esta anesado enel html jquery file


codigo script
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.     //ACA le asigno el evento click a cada boton de la clase bt_plus y llamo a la funcion addField
  3.         $(".bt_plus").each(function (el){
  4.             $(this).bind("click",addField);
  5.                                      });
  6.                             });
  7.  
  8.  
  9. function addField(){
  10. // ID del elemento div quitandole la palabra "div_" de delante. Pasi asi poder aumentar el número. Esta parte no es necesaria pero yo la utilizaba ya que cada campo de mi formulario tenia un autosuggest , así que dejo como seria por si a alguien le hace falta.
  11.  
  12. var clickID = parseInt($(this).parent('div').attr('id').replace('div_',''));
  13.  
  14. // Genero el nuevo numero id
  15. var newID = (clickID+1);
  16.  
  17. // Creo un clon del elemento div que contiene los campos de texto
  18. $newClone = $('#div_'+clickID).clone(true);
  19.  
  20. //Le asigno el nuevo numero id
  21. $newClone.attr("id",'div_'+newID);
  22.  
  23. //Asigno nuevo id al primer campo input dentro del div y le borro cualquier valor que tenga asi no copia lo ultimo que hayas escrito.(igual que antes no es necesario tener un id)
  24. $newClone.children("input").eq(0).attr("id",'materiales'+newID).val('');
  25.  
  26. //Borro el valor del segundo campo input(este caso es el campo de cantidad)
  27. $newClone.children("input").eq(1).val('');
  28.  
  29. //Asigno nuevo id al boton
  30. $newClone.children("input").eq(2).attr("id",newID)
  31.  
  32. //Inserto el div clonado y modificado despues del div original
  33. $newClone.insertAfter($('#div_'+clickID));
  34.  
  35. //Cambio el signo "+" por el signo "-" y le quito el evento addfield
  36. $("#"+clickID).val('-').unbind("click",addField);
  37.  
  38. //Ahora le asigno el evento delRow para que borre la fial en caso de hacer click
  39. $("#"+clickID).bind("click",delRow);                   
  40.                        
  41. }
  42.  
  43.  
  44. function delRow() {
  45. // Funcion que destruye el elemento actual una vez echo el click
  46. $(this).parent('div').remove();
  47.  
  48. }

archivo PHP
Código PHP:
Ver original
  1. $lista=implode(' A ',$_POST['materiales']);
  2.  echo $lista;
  3.  
  4. require("../conexion/conexionmsqli.php");
  5.  //consulta mysql que insertara una vez por cada elemento
  6.  $query1 = mysqli_query($conexion,"INSERT INTO bd  VALUES ('$lista')");

si lo quieren insertar los datos por separado este es el código

Código PHP:
Ver original
  1. for($i=0;$i<count($_POST['materiales']);$i++){
  2.     $materiales = $_POST['materiales'][$i];
  3.     echo "<pre>";
  4.  
  5. $inser = $materiales;
  6. echo $inser;
  7. include '../conexion/conexionmsqli.php';
  8. mysqli_query($conexion, "INSERT INTO a (info) VALUES ('$inser')");
  9. }

Última edición por wilson_romero; 26/05/2016 a las 21:28

Etiquetas: arreglos, mysql, variable
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




La zona horaria es GMT -6. Ahora son las 21:33.