Estuve dandole vueltas a este tema pero no soy capaz de quitar nada en claro así que agradecería que alguno de vosotros me echara una mano.
Voy a explicar lo que quiero conseguir y luego pondré el código que tengo y segurísimo que habrá muchas cosas mal porque a mi lo de programar no se me da muy bien que digamos, así que estad atentos :P
1. Tengo una serie de actos metidos en una tabla en una Base de datos cuyos campos son: ID (autonumerico), nombre, descripción -Es una tabla de actos o actuaciones futuras.
2. Accedo a la base de datos y realizo una consulta para seleccionar todos los registros. Una vez seleccionados los muestro introduciendo los datos directamente en campos <input> para su posterior modificación.
3. Los input evidentemente están introducidos dentro de un formulario.
4. Los datos se muestran en una tabla. Al final de la tabla se encuentra un único botón de submit el cual ejecutará la consulta de modificación de datos. Lo que quiero decir es que quiero modificar varios registros de una sola vez.
5. La primera consulta que hago (selección de datos de la tabla y mostrar) funciona correctamente, se ve todo bien. Una vez modificamos, se recargan los campos de texto con la nueva información y lo único que se me ve es Array Array Array.
6. En fin... ¡socorro!
Ahí os dejo el código:
Código PHP:
<br><form action="modactos.php" name="modificacion" method="post">
<table width="98%" align="center" class="centrado"><tr><td colspan="3">
<h1 class="centrado"> Modificación de actos programados </h1>
<?php
if ($modificar) {
// echo "Oeoeoeoeoeo";
//echo $_POST['idacto'];
foreach ($_POST['idacto'] as $id) {
// echo $id;
$update = "UPDATE agenda SET nombre='". $nombreacto ."', descripcion='". $descripcionacto ."' WHERE ID=$id;";
mysql_query($update, $dbd);
if (mysql_affected_rows()>0) {
echo "";
}
else {
echo "<h2 class='fondorosa letrablanca centrado'> *** Ha ocurrido un error en el servidor durante la actualización de los datos, si crees que es necesario comunícanoslo a [email protected] ***</h2>";
}
}
}
$sql="SELECT * FROM agenda ORDER BY descripcion;";
$resultado=mysql_query($sql, $dbd);
$numero=mysql_num_rows($resultado); //Esta función: mysql_num_rows, nos dice el número de registros que hay en el array resultado.
if (!$resultado)
die ("*** Lo sentimos, pero no hay actos disponibles actualmente ****");
if ($numero == 0)
echo "<p class='fondoamarillo'>Actualmente no existe ningún acto próximo programado. Si quiere poner en nuestro conocimiento algún acto, puede enviarnos un e-mail a [email protected] o pulsar en el mensaje ¡Contacte con nosotros! para que se le abra la opción de enviar mensaje, con todos los datos sobre el mismo: nombre, breve descripción, fecha, hora y lugar de celebración, etc. Gracias por su colaboración.</p>";
?>
</td></tr>
<?php
while($registro = mysql_fetch_array($resultado, MYSQL_ASSOC))
{ ?>
<td width="3%"><input type="hidden" value="<?php echo $registro['ID']?>" name="idacto[]"><img src="../imagenes/gl_lb.gif" alt="actos programados"></td>
<td width="30%" ><input type="text" value="<?php echo $registro['nombre']?>" name="nombreacto[]" class="letrapequeña" size="40"></td>
<td width="67%" ><input type="text" value="<?php echo $registro['descripcion']?>" name="descripcionacto[]" class="letrapequeña" size="90"></td>
</tr>
<?php
}
?>
<tr><td colspan="3" class="derecha"><br><input type="submit" name="modificar" value="Modificar" class="letrapequeña centrado negro"> </td></tr>
</table></form>
<br>