PHP - Problema mysql_fetch_row()

   
Vista:

Problema mysql_fetch_row()

Publicado por Juan Manuel (18 intervenciones) el 21/11/2015 15:57:55
Buenas a todos, estoy intentando "extraer" datos de una tabla, para mostrarlos en el archivo desde el que hago la llamada...

El problema es que uso dos tablas distintas, uno para sacar los nombres del desplegable que uso, y la otra, que es donde están los datos que me interesan...

Hasta este punto todo va bien:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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
		}
	?>
Hago la llamada, y me muestra las personas de la tabla con el formato "Apellido1 Apellido2, nombre"...

Entonces al sacar el nombre, por ejemplo :"Messi Cuccittini, Leonel", quiero que busque en la otra tabla, si hay alguna coincidencia, que sea "Messi Cuccittini, Leonel"(Pero ya todo en la misma tupla, sin seleccionar nombre, apellido1 y apellido2)...

Esto solo con MySQL es bastante fáci, usas la consulta:

1
select * from asignaciones where arbitro="Messi Cuccittini, Leonel" or asistente1="Messi Cuccittini, Leonel" or asistente2="Messi Cuccittini, Leonel";

El problema viene aquí

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$link= mysqli_connect("localhost", "root", "", "proyecto") or die ("Error de conexion: ".mysqli_connect_error());
$consulta_mysql='Select * from asignaciones where arbitro="$row["apellido_1"].$row["apellido_2"].$row["nombre"]" or asistente="$row["apellido_1"].$row["apellido_2"].$row["nombre"]" or asistente2="$row["apellido_1"].$row["apellido_2"].$row["nombre"]"';
$nombre=mysqli_query($link, $consulta_mysql);
$result = $link->query($consulta_mysql);
while ($row = mysqli_fetch_row($result)) {
	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($result);
?>
<form method="POST" action="#">
	<option value="<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']?> ">
		<?php echo $row['apellido_1']." ".$row[ 'apellido_2'].", ".$row['nombre']; ?>
	</option>

¿Alguien sabe por qué y que tengo que hacer para solucionarlo? Mil gracias.
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 Lawliet

Problema mysql_fetch_row()

Publicado por Lawliet (222 intervenciones) el 21/11/2015 20:42:33
Hola...

Disculpa, cual es el error que obtienes con el código, además analizando lo que has proporcionado, veo que en la primera parte de tu código llenas un combo desde la base de datos por lo que debes de tener ese código en un formulario en donde al momento de presionar un botón te lleve a ejecutar la segunda parte del código, no entiendo bien como es que enlazas ambas partes del código pero al juzgar lo que tienes supongo yo que lo que planeas es llenar un combo con valores de la base de datos y al momento de seleccionar un elemento del combo mandar los valores a una nueva consulta para mostrar los resultados en la base de datos, o eso es lo que entiendo.

Sin mas que comentar, cualquier duda y/o inconveniente, aquí estamos.

Suerte!
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

Problema mysql_fetch_row()

Publicado por Juan Manuel (18 intervenciones) el 21/11/2015 21:46:29
Los errores son los siguientes:

Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in C:\proyecto\ver.php on line 28

Warning: mysqli_free_result() expects parameter 1 to be mysqli_result, boolean given in C:\proyecto\ver.php on line 40

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\proyecto\ver.php on line 59

Lo que busco es que al seleccionar esa persona, me muestre en formato tabla(la tengo hecha) el numero de partidos que ha hecho.
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 xve

Problema mysql_fetch_row()

Publicado por xve (5520 intervenciones) el 22/11/2015 09:16:07
Hola Juan Manuel, el problema es que la variable $result, no ha devuelvo un resultado de MySQL, sino que ha devuelto un boolean... normalmente es porque no ha encontrado ninguna coincidencia y no devuelve ningun registro, o en la consulta SQL hay un error, o no se esta conectado correctamente con la base de datos.

A mi modo de ver, esto esta mal:
1
$consulta_mysql='Select * from asignaciones where arbitro="$row["apellido_1"].$row["apellido_2"].$row["nombre"]" or asistente="$row["apellido_1"].$row["apellido_2"].$row["nombre"]" or asistente2="$row["apellido_1"].$row["apellido_2"].$row["nombre"]"';

Debería ser algo así:
1
$consulta_mysql='Select * from asignaciones where arbitro="'.$row["apellido_1"].$row["apellido_2"].$row["nombre"].'" or asistente="'.$row["apellido_1"].$row["apellido_2"].$row["nombre"].'" or asistente2="'.$row["apellido_1"].$row["apellido_2"].$row["nombre"].'"';

Coméntanos, ok?
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

Problema mysql_fetch_row()

Publicado por Juan Manuel (18 intervenciones) el 22/11/2015 13:49:07
Cierto, llevabas razón, vaya tonteria, no haber concatenado bien. Conectar conecta bien, porque me está devolviendo datos de forma correcta de la base de datos, lo que no hace es devolverme los registros una vez que selecciono a una persona.

Ahora el Warning pasa a estar en esta linea y es un "mysql_fetch_assoc()", me lo da en esta linea:

1
<?php while ($row = mysqli_fetch_assoc($resulta)) { ?>

Todo deriva de aquí

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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'];
}
mysqli_free_result($resulta);
?>
<form method="POST" action="#">
	<option value="<?php echo $row['apellido_1']." ".$row['apellido_2'].", ".$row['nombre']?> ">
		<?php echo $row['apellido_1']." ".$row[ 'apellido_2'].", ".$row['nombre']; ?>
	</option>
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

Problema mysql_fetch_row()

Publicado por VRM (171 intervenciones) el 22/11/2015 10:43:35
Hola:

En la linea 5 de ambos listados utilizas $link como si fuese un objeto de la clase mysqli pero en realidad es un enlace a la base de datos. Además ¿para qué repites la misma consulta dos veces?

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

Problema mysql_fetch_row()

Publicado por Juan Manuel (18 intervenciones) el 22/11/2015 13:50:19
Gracias, no me había dado cuenta de eso, cambié el nombre de $consulta_mysql a $consulta_mysqli1 al igual que $result a $result1(todo en la segunda parte del programa).

Error tontísimo.
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

Problema mysql_fetch_row()

Publicado por Juan Manuel (18 intervenciones) el 23/11/2015 14:24:16
Alguien más me echa un cable?

Por cierto, veo que he cometido un fallo gordo, al introducir en la tabla el nombre de la persona completo, se guarda con el siguiente formato en MySQL

"Apellido 1 Apellido 2 , Nombre", por lo que desde la terminal MySQL tengo que poner la "dichosa" coma para hacer la busqueda.

¿Hay alguna forma de que salga en PHP en modo "visual" y sin embargo que en MySQL no tenga la coma y salga con el formato "Apellido1 Apellido2 Nombre?
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