PHP - ¿Por qué este SELECT no muestra nada?

   
Vista:

¿Por qué este SELECT no muestra nada?

Publicado por Juan Manuel (18 intervenciones) el 27/11/2015 00:29:46
Tengo un select, que extrae los nombres de una tabla y los muestra en el select, al darle al botón "Enviar", no me muestra los datos del select que hay en otra tabla...

¿En que me estoy equivocando? Llevo una semana toqueteando el código y nada, sigo estancadísimo en esto...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<html>
	<head><title>Partidos arbitrados</title></head>
		<body>
			<form method="POST" action="#">
			<?php
				$link= mysqli_connect("localhost", "root", "", "proyecto") or die ("Error de conexion: ".mysqli_connect_error());
				$consulta_mysql='Select nombre, apellido_1, apellido_2 from arbitros';
				$nombre=mysqli_query($link, $consulta_mysql);
					$result = $link->query($consulta_mysql);
			?>
			<select>
				<?php
					while ($row =$result->fetch_array())
					{
				?>
						<option value="<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']?> ">
							<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']; ?>
						</option>
				<?php
					}
				?>
			</select>
			<input type="submit" value="enviar"/>
				<?php
					$link= mysqli_connect("localhost", "root", "", "proyecto") or die ("Error de conexion: ".mysqli_connect_error());
						$consulta_mysql1='Select * from asignaciones where arbitro="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'" or asistente1="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'" or asistente2="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'"';
							$nombre=mysqli_query($link, $consulta_mysql1);
								$resulta = $link->query($consulta_mysql1);
									while ($row = mysqli_fetch_row($resulta)) {
										echo $row['arbitro'];
										echo $row['asistente1'];
										echo $row['aistente2'];
										echo $row['categoria'];
										echo $row['local'];
										echo $row['visitante'];
										echo $row['fecha'];
										echo $row['hora'];
										echo $row['campo'];
										echo $row['jornada'];
									}
				?>
 
 
				<option value="<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']?> ">
							<?php echo $row['apellido_1']." ".$row[ 'apellido_2'].", ".$row['nombre']; ?>
				</option>
				<table border="2">
					<tr>
						<th>arbitro</th>
						<th>asistente1</th>
						<th>asistente2</th>
						<th>categoria</th>
						<th>Local</th>
						<th>visitante</th>
						<th>Fecha</th>
						<th>Hora</th>
						<th>campo</th>
						<th>jornada</th>
					</tr>
						<?php while ($row = mysqli_fetch_assoc($resulta)){ ?>
							$contador++;
 
							<tr>
								<td><?php echo $row['arbitro']; ?></td>
								<td><?php echo $row['asistente1']; ?></td>
								<td><?php echo $row['asistente2']; ?></td>
								<td><?php echo $row['categoria']; ?></td>
								<td><?php echo $row['local']; ?></td>
								<td><?php echo $row['visitante']; ?></td>
								<td><?php echo $row['fecha']; ?></td>
								<td><?php echo $row['hora']; ?></td>
								<td><?php echo $row['campo']; ?></td>
								<td><?php echo $row['jornada']; ?></td>
							</tr>
						<?php } ?>
				</table>
 
				<input type="submit" value="volver" onclick="this.form.action='calcurefhome.html'"/>
			<!--</form>-->
		</body>
</html>

Alguna ayuda?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

¿Por qué este SELECT no muestra nada?

Publicado por Alejandro (198 intervenciones) el 27/11/2015 02:21:06
Sera porque no obtienes resultados de tu consulta y no se ejecuta el bucle
1
while ($row =$result->fetch_array())
puedes probar, por ejemplo, poniendo dentro del bucle
1
echo "ENTRASTE AL BUCLE";

Alguien mas te explique porque no obtienes resultados porque esa forma de -> es nueva para mi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de VRM

¿Por qué este SELECT no muestra nada?

Publicado por VRM (171 intervenciones) el 27/11/2015 09:06:56
Hola Juan Manuel: Alejandro tiene razón: el error está en la linea 28. Abres un enlace a la base de datos en la linea 25 de forma procedimental. Luego haces una consulta en la linea 27 de forma procedimental. Hasta aquí todo bien. Pero en la linea 28 tratas de hacerlo de forma orientado a objetos y con este último resultado tratas de obtener los datos. Lo que haces es usar $link como si fuera un objeto de la clase mysli, mientras que en realidad es un enlace a la base de datos.

Este error ya lo he visto varias veces en esta lista. ¿hay algún libro o tutorial que tiene esa errata? Si alguien lo sabe debería advertirlo.

Estos errores son fáciles de localizar si escribes antes de cada instrucción lo que hace. Por ejemplo:
1
2
3
4
5
6
7
8
// Establecemos un enlace a la base de datos
$link= mysqli_connect("localhost", "root", "", "proyecto") or die ("Error de conexion: ".mysqli_connect_error());
// Creamos el comando MySQL
$consulta_mysql1='Select * from asignaciones where arbitro="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'" or asistente1="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'" or asistente2="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'"';
// Ejecutamos la consulta
$nombre=mysqli_query($link, $consulta_mysql1);
// Volvemos a ejecutar la consulta ¿Para qué?
$resulta = $link->query($consulta_mysql1);
LLegados a la linea 7 deberíamos preguntarnos ¿Para qué consultar dos veces lo mismo?

Saludos de Víctor.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Por qué este SELECT no muestra nada?

Publicado por Juan Manuel (18 intervenciones) el 27/11/2015 11:20:02
Es la forma que nos enseñó el profesor en clases, hemos dado un PHP muy básico y sin muchas explicaciones, de ahí a que tengas tantas dudas. Pero sigo el/los procedimiento/-s que dio el profesor en clase, simplemente eso.

Aún así y como le contesté a Alejandro, sigo sin dar con la tecla, para rellenar la tabla de abajo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

¿Por qué este SELECT no muestra nada?

Publicado por Juan Manuel (18 intervenciones) el 27/11/2015 11:18:00
Extrae de la base de datos los nombre de las personas, por eso uso ese while

1
2
3
4
5
6
7
8
9
10
<?php
					while ($row =$result->fetch_array())
					{
				?>
						<option value="<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']?> ">
							<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']; ?>
						</option>
				<?php
					}
				?>

A este te refieres, de ahí es donde saco los nombres, para que en el desplegable select se vean con ese formato tras llamar a la "tabla 1"



Una vez hecho eso, más abajo, hago la llamada a la tabla2 con los datos del select vistos como "$row"

1
$consulta_mysql1='Select * from asignaciones where arbitro="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'" or asistente1="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'" or asistente2="'.$row["apellido_1"].$row["apellido_2"].", ".$row["nombre"].'"';


Y de esta manera intento ver los resultados de la consulta en formato tabla

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$nombre=mysqli_query($link, $consulta_mysql1);
								// $resulta = $link->query($consulta_mysql1);
									while ($row = mysqli_fetch_row($nombre)) {
										echo $row['arbitro'];
										echo $row['asistente1'];
										echo $row['aistente2'];
										echo $row['categoria'];
										echo $row['local'];
										echo $row['visitante'];
										echo $row['fecha'];
										echo $row['hora'];
										echo $row['campo'];
										echo $row['jornada'];
									}
								// mysqli_free_result($resulta);
				?>

Pero sin embargo la tabla que creo abajo, se queda vacía, y no me rellena esos campos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar