Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/08/2010, 16:27
Avatar de Jask
Jask
 
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años, 1 mes
Puntos: 15
Insertar campos en la BD (no es tan fácil como parece XD)

Muy buenas, que tal ?
Bueno, os explico a grosso modo mi problema.

Estoy creando un plugin para wordpres denominado listas. Está formado por categorías (las crea el usuario) y dentro de esa categoría las listas que se quieran crear. Por ejemplo: "El mejor futbolistas del mundo" y al meter ahí aparece Cristiano Ronaldo, Iniesta, Messi, Etc etc. con la opción de votar.
Vale hasta ahí bien.
El problema lo tengo a la hora de crear la lista. Lo tengo ordenador de tal forma.
Por un lado se crea la categoría y por otro se crea la lista.
En la primera ventana me da la opción de elegir la categoría donde quiero la lista y ponerle una descripción y un nombre a esa lista. Al darle a continuar me sale una pantalla que me dice que cuantas opciones para esa lista quiero crear (es un input en el cual se le pone un número). Vale, pongámosle un 5. Al darle a siguiente me salen 5 cajas, número 1, 2,3.. etc con sus correspondiente Nombre: ... Imagen: (porque van a tener su propia imagen, pero no viene mucho al cuento).
Como me rallé tanto con el nombre de los inputs para subirlo a la BD lo que hice fue ponerle el mismo nombre a cada uno:

Código HTML:
Ver original
  1. <input name="listaName<?php echo $cajaListas; ?>" type="text" size="30" />

Al ponerle el nombre a cada una, lógicamente no podía hacer un INSERT para cada campo, lo que hice fue hacer un, con lo siguiente:

Código HTML:
Ver original
  1. $cajaListas = 1;
  2.                     while($cajaListas <= $_REQUEST['numOpcLista']){
  3.                         ?>
  4.                        
  5.                         <div class="whileLista">
  6.                    
  7.                         <table width="450" border="0">
  8.                           <tr>
  9.                             <td width="15%" rowspan="2" class="colorfondonumero"><?php echo $cajaListas; ?></td>
  10.                             <td width="22%" align="right">Nombre</td>
  11.                             <td width="4%">&nbsp;</td>
  12.                             <td width="59%"><input name="listaName<?php echo $cajaListas; ?>" type="text" size="30" /></td>
  13.                           </tr>
  14.                           <tr>
  15.                             <td align="right">Imagen</td>
  16.                             <td>&nbsp;</td>
  17.                             <td><input name="listaImg<?php echo $cajaListas; ?>" type="text" size="30" /></td>
  18.                           </tr>
  19.                         </table>
  20.                    
  21.                     </div>
  22.                        
  23.                         <?php
  24.                        $cajaListas +=1;
  25.                    }

Lo que hace el WHILE es muy sencillo. El valor que tiene $_REQUEST['numOpcLista'] es el número de opciones que voy a crear para esa lista, y va imprimiendo 1,2,3 en cada INPUT para que el nombre de este quede: listaImg1, listaImg2, listaImg3 y así poder subirlo a la BD, pero ahí está el problema.

No se como puedo hacer para que tome cada nombre listaImg1, listaImg2, listaImg3 y haga un insert, ya que el número en si lo genero con el WHILE. He hecho un apaño haciendo un IF:

Código PHP:
if(isset($_REQUEST['listaName1'])){
                            
                        
$listaName1 $_REQUEST['listaName1'];
$listaImg1 $_REQUEST['listaImg1'];
$sql1 "INSERT INTO wp_lista (lista_nombre, lista_imagen, lista_categoria, lista_nombreunico) VALUES ('$listaName1', '$listaImg1', '$pasarCatFinal', '$pasarDescripFinal' );";
if(
$wpdb->query($sql1)){
echo 
"Se ha subido la primera noticia";
}
                                

Pero lógicamente ese no es el camino, y quiero una forma más sencilla para que me lea los nombres de todos los inputs y los suba a la vez. O eso o cambiar el sistema para crear los NAME de los inputs.

Se que es un poco lioso por eso os pido ayuda, porque me estoy dejando la cabeza y no hay manera de sacarlo adelante.

Espero que me puedan echar un cable :)

Un saludo y muchísimas gracias a todos !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?