Mostrar registros en Mysql

He tenido que cambiarme a marchas forzadas a php y mysql, y no sé mucho de momento, pero esto me corre mucha prisa.
Tengo la página "elegir.php" donde he incluido este código para recuperar los nombres de deportistas de la tabla "resultados":
<?
$conn = mysql_connect(xxx.com','xxxx','xxx');
mysql_select_db('xxxx,$conn);
$query = 'SELECT * FROM resultados GROUP BY Nombre ORDER BY Nombre ASC';
$result = mysql_query($query,$conn);
echo '<select name="select">';
while($row = mysql_fetch_array($result)){
echo '<option value="'.$row['ID'].'">'.$row['Nombre'].'</option>';
}
echo '</select>';
?>
<form method="post" action="ver.php">
<input type="submit" value="VER" name="enviar">
</form>
Y ahora necesito que en la página "ver.php" se muestren en una tabla todos los resultados de cada deportista, incluyendo algo así como:
<table><tr>
<td>Nombre</td>
<td>Puesto</td>
<td>Sede</td>
<td>FechaPrueba</td>
</tr></table>
Estoy estudiando php y mysql a marchas forzadas, pero necesito esto muy urgente.
1

1 respuesta

Respuesta
1
<%=Texto%>
No te preocupes, no es una perdida de tiempo.
Ya he visto el fallo. Cuando declaras un formulario html, todo lo que haya dentro de las etiquetas <form> y </form> se declaran como variables para php. Pero si están fuera de esas etiquetas no.
Por tanto, el código del formulario inicial te debería quedar así:
<form method="post" action="ver.php">
<?
$conn = mysql_connect(xxx.com','xxxx','xxx');
mysql_select_db('xxxx,$conn);
$query = 'SELECT * FROM resultados GROUP BY Nombre ORDER BY Nombre ASC';
$result = mysql_query($query,$conn);
echo '<select name="select">';
while($row = mysql_fetch_array($result)){
echo '<option value="'.$row['ID'].'">'.$row['Nombre'].'</option>';
}
echo '</select>';
?>
<input type="submit" value="VER" name="enviar">
</form>
Pruébalo y me cuentas :)
Presiento que te estoy haciendo perder el tiempo, lo siento.
Veamos, el echo query me da lo siguiente:
SELECT * FROM resultados WHERE ID-SALTADOR=""
y el echo mysql_error() me dice:
Fatal error: Call to undefined function: () in /home/www/saltos.cogia.net/bd/resultados.php on line 44
Por si quieres verlo tú mismo, la página de acceso principal es:
http://saltos.cogia.net/bd/saltadores.php
y la de resultados:
http://saltos.cogia.net/bd/resultados.php
Gracias por todo.
Intentando ayudarte un poco ( por que casi lo tienes solucionado tu ) :)
Lo primero, en la página ver.php tendrás una variable:
$select = $_POST['select'];
Esta variable contiene la id del asociada al nombre del "deportista" seleccionado por el usuario.
Después, solo tienes que hacer lo siguiente:
---
<table><tr>
<td>Nombre</td>
<td>Puesto</td>
<td>Sede</td>
<td>FechaPrueba</td>
</tr>
<?
$conn = mysql_connect(xxx.com','xxxx','xxx');
mysql_select_db('xxxx,$conn);
$query = 'SELECT * FROM resultados WHERE id="'.$select.'"';
$result = mysql_query($query,$conn);
while($row = mysql_fetch_array($result)){
echo "<tr><td>".$row['Nombre']."</td><td>".$row['puesto']."</td><td>".$row['Sede']."</td><td>".$row['FechaPrueba']."</td></tr>";
}
echo "</table>";
?>
Con esto imprimiras todas las filas con los datos.
*** Una cosita, mysql te proporcionara la fecha de esta manera: 2005-05-03 ( YYYY-mm-dd ) es decir, para el formato español tendrás que hacerte una funcion que la cambie de formato a dd/mm/YYYY.
function fechaANormal($fechaMysql) {
$arrayFecha = split("-",$fechaMysql);
$fechaNormal = $arrayFecha[2]."/".$arrayFecha[1]."/".$arrayFecha[0];
return $fechaNormal;
}
Muchísimas gracias por responder. Lo he puesto tal cual, pero me da el siguiente error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/misitio.net/bd/ver.php on line 24
La línea en cuestión es:
while($row = mysql_fetch_array($result)){
y la verdad, con lo poquito que sé de esto, me parece que la línea esta bien codificada, ¿no?
¿Podrías decirme cuál es el error? Entre el manual de php y mysql que me estoy metiendo p'al cuerpo y estas incógnitas estoy hecho un lío. Gracias de nuevo.
<%=Texto%>
Primer paso:
Haz un echo $query para ver si la variable $select tiene un valor nulo. Si es asi, quita la primera linea $select = $_POST[... porque significará que tienes las variables globales de php activadas y que por tanto, $select está declarada como global y no como variable POST.
Segundo paso: Despues de hacer $result = mysql_query... han un echo mysql_error();
Esto nos mostrará el mensaje de error de mysql, por si estuviese mal la consulta.
Pega el código de error si necesitas ayuda con el error de mysql.
Me sigue dando error. Si te parece, hacemos un último intento. Te incluyo TODO el código de las 2 páginas:
saltadores.php:
<form method="post" action="resultados.php">
<?
include ("conexion.php");
$query = 'SELECT * FROM resultados GROUP BY Nombre ORDER BY Nombre ASC';
$result = mysql_query($query,$conexion);
echo '<select name="select">';
while($row = mysql_fetch_array($result)){
echo '<option value="'.$row['ID-SALTADOR'].'">'.$row['Nombre'].'</option>';
}
echo '</select>';
include ("cerrar_conexion.php");
?>
<input type="submit" value="VER" name="enviar">
</form>
resultados.php:
<? php;
$select = $_POST['select']; ?>
<table width="100%" class="texto2"><tr>
<td class="titular2"><u>Puesto</u></td>
<td class="titular2"><u>Trampolín</u></td>
<td class="titular2"><u>Fecha Prueba</u></td>
</tr>
<? php;
include ("conexion.php");
$query = 'SELECT * FROM resultados WHERE ID-SALTADOR="'.$select.'"';
$result = mysql_query($query,$conexion);
while($row = mysql_fetch_array($result)){
echo "</td><td>".$row['Puesto']."</td><td>".$row['TipoTrampolin']."  ".$row['Sede']."</td><td>".$row['FechaPrueba']."</td></tr>";
}
echo "</table>";
include ("cerrar_conexion.php");
?>
Me sigue dando el error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/saltos.cogia.net/bd/resultados.php on line 43
donde LINE 43 es while($row = mysql_fetch_array($result)){
Agradezco enormemente tu ayuda. Si no damos con ello, lo dejamos y me tiro todo el verano "tostándome" con el php y msql. :-)
Gracias amigo
<%=Texto%>
Perdón por tardar en responder un poquillo, pero ando de exámenes en la facultad. ¡Agobios! Je je
Prueba a poner esto directamente en el query:
$query = 'SELECT * FROM resultados WHERE ID-SALTADOR=1';
$result = mysql_query($query,$conexion);
Si te sigue dando el mismo error, ya sabremos por que es.
Donde he puesto uno, pon una id de saltador que exista en la base de datos.
Un consejito, ¿sabes lo que es phpmyadmin?
Te ayudara con mysql y php.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas