Foros del Web » Programando para Internet » PHP »

insertar varias filas todas juntas en DB

Estas en el tema de insertar varias filas todas juntas en DB en el foro de PHP en Foros del Web. Hola! miren estoy haciendo un script del horoscopo, ahora me surgio un problema (aclaro que soy un novaton jeje ) resulta que hice la parte ...
  #1 (permalink)  
Antiguo 19/07/2005, 16:17
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años, 6 meses
Puntos: 0
insertar varias filas todas juntas en DB

Hola! miren estoy haciendo un script del horoscopo, ahora me surgio un problema (aclaro que soy un novaton jeje ) resulta que hice la parte del administrador del script, donde el puede llenar el contenido de cada uno de los signos en un text area, eso lo hice perfecto, el problema viene cuando yo quiero enviar los cambios que efectuo el adminisrtador, donde cuando se envia el formularo con un while tomo los valores de los textareas (aca esta el code)

while(list($key, $value) = each($HTTP_POST_VARS))
$$key=$value;

ahora ya tengo todos los post vars metidos en variables que llevan el nombre del textarea pero ahora se me complica para meter todas las modificaciones en la base de datos, pense en algo como esto:


while(list($key, $value) = each($HTTP_POST_VARS))
$$key=$value;
$resultado = db_query("INSERT INTO cpg132_horoscopo texto ...
pero en algo la estoy pifiando ..
Plis ayuda ..
Saludos
FeDe
  #2 (permalink)  
Antiguo 19/07/2005, 17:04
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 9 meses
Puntos: 0
Algo como:

Código PHP:
foreach($_POST as $key => $value) {

   
$resultado mysql_query("INSERT INTO cpg132_horoscopo values ('$_POST[$key]')")


No está probado.

EDIT: cuidado, porque resultado se te sobreescribe después de cada vuelta del bucle for.

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #3 (permalink)  
Antiguo 19/07/2005, 17:37
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años, 6 meses
Puntos: 0
hola thunder ! gracias por la ayudita ahora .. hay otro problema porque mira, cuando se insertan los datos en la base de datos, no se indica cual es el signo, no se si me explico, mira la base de datos es asi

signo | texto
---------------
Aries | Hoy vas a tener un dia jodido hermano.

Masomenos eso es una representacion media barata de la estructura que tiene la base de datos, ahora el administrador llena todos datos,tiene los 12 signos, en la pagina y envia todo de una, entonces seria algo como esto..

foreach($_POST as $key => $value) {

$resultado = mysql_query("INSERT INTO cpg132_horoscopo text values ('$_POST[$key]') where signo='(SIGNO)' ")

}

Bueno y al final el where es para saber en que signo meto el texto, ahora como se cual es cada signo ? :S
Bueno espero no joderte demasiado
Saludos y gracias por adelantado

Editado: Aver cada ves llego mas lejos pero sigo sin lograr nada ahora modifique el where poniendole la variable key que trae el nombre del signo, porque cada textarea trae el nombre de signo queda algo asi

foreach($_POST as $key => $value)
$resultado = mysql_query("INSERT INTO cpg132_horoscopo (texto) values ('$_POST[$key]') WHERE signo= '$key'");

Pero sigo en nada :( espero alguna ayudita mas como para terminar :)

Última edición por fedexx; 19/07/2005 a las 17:55
  #4 (permalink)  
Antiguo 19/07/2005, 17:53
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 9 meses
Puntos: 0
Probá poniéndole el nombre de cada signo a los campos de texto, con las mayúsculas, acentos, todo. Y hacé:

$resultado = mysql_query("INSERT INTO cpg132_horoscopo values ('$key','$_POST[$key]')")

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #5 (permalink)  
Antiguo 19/07/2005, 18:06
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años, 6 meses
Puntos: 0
Hola thunder mira .. te paso el code completo la ultima linea que me pasaste tampoco funco, te paso el code completo va en realidad no esta completo faltan unas lineas mas arriba que son para los usuarios comunes no para el admin pero no tiene importancia, te paso solo la parte del admin.
Código PHP:
while(list($key, $value) = each($HTTP_GET_VARS))
$$key=$value;


if($signo=="admin"){
  if (USER_IS_ADMIN){
    if($accion=="insertar"){
    foreach($_POST as $key => $value)
    $resultado = mysql_query("INSERT INTO cpg132_horoscopo values ('$key','$_POST[$key]')");
   //$resultado = mysql_query("INSERT INTO cpg132_horoscopo (texto) values ('$_POST[$key]') WHERE signo= '$key'");
    }
    echo "<br><br><form method=\"POST\" action=\"horoscopo.php?signo=admin&accion=insertar\">";
    $resultado=db_query("SELECT * FROM cgp132_horoscopo ");
    while ($resultadito = mysql_fetch_array($resultado)) {
    ?>
 <Table cellspacing="1" cellpadding="0" class="maintable" width="95%">
    <tr>
    <td class="tableh1" align="center" width="100%" colspan="2">
    <h2><?echo $resultadito['signo']; ?></h2>
    </td>
    </tr>
      <td valign="top" class="tablec">
      <img border="0" src="images/<?echo $resultadito['signo']; ?>.jpg" width="155" height="140"></td>
      <td valign="top" class="tableb"><br>
        <textarea rows="7" name="<?echo $resultadito['signo']; ?>" class="textinput" cols="80" ><?echo $resultadito['texto']; ?></textarea>
&nbsp;</td>
    </tr>
  </table><br><br>
  <?
  
}
 echo 
"<input type=\"submit\" value=\"Enviar\" class=\"button\"></form>";
}
}
Ya la verdad que no se que pasa .. tendria que funcionar perfecto
  #6 (permalink)  
Antiguo 19/07/2005, 21:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 670
Antigüedad: 19 años, 9 meses
Puntos: 0
¿Qué error te da? Usá mysql_error() para ver el error devuelto por mysql.

Suerte
Fede
__________________
Federico H. García
Desarrollo Web
www.federicog.com.ar
  #7 (permalink)  
Antiguo 22/07/2005, 17:45
 
Fecha de Ingreso: mayo-2003
Ubicación: Mar del Plata
Mensajes: 373
Antigüedad: 21 años, 6 meses
Puntos: 0
thunder ! ya lo solucione era update ! no insert .. MIL GRACIAS POR TU AYUDA LOKO =MENTE saludos (y)
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 21:19.