Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/08/2009, 14:18
Avatar de PacoRuiz
PacoRuiz
 
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años, 9 meses
Puntos: 3
arrays pasados por post

estoy hecho un lío, a ver. He visto este código en un tutorial para pasar arrays por post:

Código:
 <html>
<head>
    <title>Array en Forma :: PHP</title>
<head>
<body>
 <br />
<b>Selecciona tus postres favoritos:</b><br /><br />
<form method="post" action="<?= $_SERVER['PHP_SELF'] ?>">
<input name="postre[]" type="checkbox" value="Helado de Vainilla">Helado de vanilla<br />
<input name="postre[]" type="checkbox" value="Pastel de Chocolate">Pastel de Chocolate<br />
<input name="postre[]" type="checkbox" value="Pay de elote">Pay de elote<br />
<input name="postre[]" type="checkbox" value="Bubulubu">Bubulubu<br />
<input name="postre[]" type="checkbox" value="Duraznos en almibar">Duraznos en almibar<br />
<input name="postre[]" type="checkbox" value="Fresas con crema">Fresas con crema<br />
<input name="send" type="submit" id="send" value="Enviar!">
</form>

<?php
if (isset($_POST['postre']))
{
   $postre = $_POST['postre'];
   $n        = count($postre);
   $i        = 0;

   echo "Tus postres favoritos son: rn" .
        "<ol>";
   while ($i < $n)
   {
      echo "<li>{$postre[$i]}</li> rn";
      $i++;
   }
   echo "</ol>";
}
?>

</body>
</html>
Yo quiero hacer algo similar para rellenar una tabla mediante un formulario. Por ahora estoy intentando llenar sólo el primer campo aunque el formulario recoja más datos. Este es mi código:

Código:
<?php

if (isset($_POST['dato'])){
    echo "me ha llegado <br> ";
      
}
    else{
     echo "no me ha llegado";   
    }
$link=mysql_connect("localhost","root","");
mysql_select_db(dbimagenes,$link);
$repetido=mysql_query("select count(*) from autores where nick=POST['nick']");
if ($repetido){
    echo "ya está en uso";
    echo "<form action ='formregistro.html'><BR>";
    echo"<input type='submit' value='ACEPTAR'><br>";
}
else{
    $datos=$POST['dato'];
    echo $datos[0];
    mysql_query("Insert into autores(nick) VALUES('$datos[0]')",$link);
    echo "registrado corréctamente";
    
    echo "<form action ='opciones.php'><BR>";
    echo"<input type='submit' value='ACEPTAR'><br>";
    }
?>
</html>
Y este es el código del formulario

Código:
<html>
<form action= "registro.php" method= "POST">
Usuario: <input type ="text" name ="dato[]"><br>
Contraseña: <input type= "text" name="dato[]"><br>
Nombre: <input type= "text" name="dato[]"><br>
Apellidos: <input type= "text" name="dato[]"><br>
Centro: <input type= "text" name="dato[]"><br>
Provincia: <input type= "text" name="dato[]"><br>
Población: <input type= "text" name="dato[]"><br>
Número de colegiado: <input type= "text" name=""dato[]"><br> 
<input type ="submit" value ="LOG IN">
</form>
</html>
Si no pongo un array sino que pongo variables normales, funciona, pero de este modo me dice lo siguiente:

me ha llegado
registrado corréctamente

Es decir, no me escribe el nombre del usuario. Tampoco me actualiza la base de datos. Yo no veo diferencia con el código del tutorial. He probado a sustituir el 0 por un $i para ponerlo igual que el del tutorial y nada.