Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Insertar Array en tabla MySql??

Estas en el tema de Insertar Array en tabla MySql?? en el foro de Mysql en Foros del Web. Hola. Estoy realizando un registro en base a varios option, cuyo numero es variable, primero obtengo el numero de options que despliego con una consulta ...
  #1 (permalink)  
Antiguo 19/03/2011, 19:28
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Insertar Array en tabla MySql??

Hola. Estoy realizando un registro en base a varios option, cuyo numero es variable, primero obtengo el numero de options que despliego con una consulta a la base de datos, esto ya lo realiza bien:

Código PHP:
                  while($row mysql_fetch_array($consulta)) 
                   {
                           
printf("<tr>
                            <td>&nbsp;%s&nbsp;</td>
                            <td>
                            <input type=\"hidden\" name=num_preg[] value=\"%d\">
                            <select name=pr[]>
                              <option>0</option>
                              <option>1</option>
                              <option>2</option>
                              <option>3</option>
                              <option>4</option>
                              <option>5</option>
                              <option>6</option>
                              <option>7</option>
                              <option>8</option>
                              <option>9</option>
                              <option>10</option>
                            </select></td>                
                        </tr>"
$row["preguntas"],$row["PID"]);
                   } 
                   
mysql_free_result($consulta); 
Pero después intento que cada "num_preg" me lo relacione con cada "pr", para insertarlo en otra tabla de la base de datos con el siguente código:

Código PHP:
            $pr=$_POST['pr'];
            
$num_preg=$_POST['num_preg'];
            include(
"conexion.php"); 
            if (
$pr)
                {
                foreach (
$pr as $t)
                    {
                    
$sql"INSERT INTO tabla_destino (fecha, num_p, preg) 
                                        VALUES(CURDATE(), '$num_preg', '$t');"
;                 
                    } 
Pero solo me arroja bien el valor de fecha, y el último guardado en "pr"... ya he buscado mucho y no logro dar con lo que estoy haciendo mal, soy algo nuevo en esto, y supongo que la solucion es bien simple, pero no logro verla ....

Cualquier pista es bien recibida, gracias!!
  #2 (permalink)  
Antiguo 21/03/2011, 03:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Insertar Array en tabla MySql??

Yo lo haria así:

Código PHP:
Ver original
  1. //genero un iterador para diferenciar identificadores
  2. $i=0;
  3. while($row = mysql_fetch_array($consulta))
  4.    {
  5.     echo "<tr>".
  6.             "<td>&nbsp;".$row["preguntas"]."&nbsp;</td>".
  7.             "<td>".
  8.             "<input type='hidden' name='num_preg".$i."' id='num_preg".$i."' value='".$row["PID"]."'>".
  9.             "<select name='pr".$row["PID"]."' id='pr".$row["PID"]."'>".
  10.             "<option>0</option>".
  11.             "<option>1</option>".
  12.             "<option>2</option>".
  13.             "<option>3</option>".
  14.             "<option>4</option>".
  15.             "<option>5</option>".
  16.             "<option>6</option>".
  17.             "<option>7</option>".
  18.             "<option>8</option>".
  19.             "<option>9</option>".
  20.             "<option>10</option>".
  21.             "</select></td>".                
  22.             "</tr>";
  23.             $i++;
  24.     }
  25. //guardo el numero total de preguntas
  26.     echo     "<input type='hidden' name='num_pregtas'  id='num_pregtas' value='".mysql_num_rows($consulta)."'>";
  27.  mysql_free_result($consulta);


Al recuperar el formulario

Código PHP:
Ver original
  1. include("conexion.php");
  2. $num_pregtas=$_POST['num_pregtas'];
  3. $sql= "INSERT INTO tabla_destino (fecha, num_p, preg) VALUES";
  4. for ($i=0;$i<$num_pregtas;$i++){
  5.       if($i!=0) $sql.=","
  6.      $num_preg=$_POST['num_preg'.$i];
  7.      $pr=$_POST['pr'.$num_preg];
  8.      if(!is_null($pr)) $sql.="(CURDATE(), '".$num_preg."', '".$pr."')";                
  9. }  
  10.      $sql.=";";

La idea es que el INSERT INTO quede con el formato

INSERT INTO tabla_destino (fecha, num_p, preg) VALUES
(XXX,YYY,ZZZ),(xxx,yyy,zzz),...

Por cierto lo que preguntas es PHP no MySql pregunta en el foro adecuado y quizas conseguiras mejores respuestas...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 21/03/2011 a las 05:57

Etiquetas: php, tablas
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 00:45.