Hola,
Intenta probar si de esta forma te funciona:
Código PHP:
$result = mysql_query("SELECT * FROM datos", $db);
$cant=mysql_num_rows($result);
if ($cant){
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";
$i=0;
while($row = mysql_fetch_array($result)){
// 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> ";
$matriz[$i][0]=$row['fecha'];
$matriz[$i][1]=$row['nombre'];
$matriz[$i][2]=$row['explica'];
$i++;
}
echo "</table> \n";
echo "<input type='submit' value ='Enviar'>";
echo "</form>";
} else {
echo "¡ No se ha encontrado ningún registro !";
}