Hola, Estoy haciendo un formulario que recoge los datos de una tabla en MySql y si muestro los datos se ven, pero si los muestro en el formulario solo me muestra la primera palabra. A ver si alguien me puede ayudar.
Este es el código:
<?php
$db = mysql_connect("localhost", "root");
if(!$db)
{
echo 'Error: No se pudo conectar con la base de datos. Por favor, inténtalo de nuevo.';
exit;
}
mysql_select_db("xml", $db);
$result = mysql_query("SELECT * FROM datos", $db);
//FUNCIONA Y MUESTRA LOS DATOS COMPLETOS
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
echo "<tr><td>Fecha</td><td>Nombre</td><td>Explicación</td></tr> \n";
do {
echo "<tr><td>".$row["fecha"]."</td><td>".$row["nombre"]."</td><td>".$row["explica"]."</td></tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
$result = mysql_query("SELECT * FROM datos", $db);
if ($row = mysql_fetch_array($result))
{
echo "<form action='grabaxml.php' method='post'>";
echo "<table width='600' border = '1'> \n";
echo "<tr><td>Fecha</td><td>Nombre</td><td>Explicación</td></tr> \n";
do {
// SOLO MUESTRA LA PRIMERA PALABRA DE CADA CAMPO Y HE PROBADO STRIPSLASHES
echo "<tr><td><input maxlength='30' type='text' value=".$row['fecha'].
"</td><td><input type='text' value=".$row['nombre'].
"</td><td><input type='text' value=".$row['explica'].
"</td></tr> ";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
echo "<input type='submit' value ='Enviar'>";
echo "</form>";
} else {
echo "¡ No se ha encontrado ningún registro !";
}
Por otro lado quería guardar los campos del formulario en un array, tal vez podría usar algo así:
echo "<tr><td><input maxlength='30' type='text' name=matriz[$i][0] value=".$row['fecha'] --> se supone que la i aumenta con el bucle y solo para el primer campo luego para los otros dos campos nombre y explica [$i][1] y [$i][2]
Gracias y saludos.