Programación php
Email: Password:


¡Regístrate gratis! | ¿Has perdido tu password?

Home
Blog

En él que podrás informarte de todas las noticias relacionadas con el posicionamiento de páginas web.

Ir al Blog de posicionamiento web



Foro de programación en PHP

Responder el mensaje

problema con un codigo

Autor: goodmanalex
Publicado: 16-9-2010 09:31 AM
a ver cuando abro la pagina me sale el siguiente mensaje de error: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:wampwwwalejandromartinezlistado-partes.php on line 102

el codigo es este:

[php] <?php

//creamos la conexión
$conexion = mysql_connect('localhost', 'root', '');
//Conexión base de datos
mysql_select_db('mantenimiento', $conexion);
//Crea la consulta
$consulta = "SELECT prioridad, id_tecnico, id_cliente, fecha_ini, fecha_fin, caracteristicas, modelo_equipo, num_serie, motivo_asistencia, descripcion_intervencion, observaciones, num_partes FROM partes";

//Almacenar
$almacena = mysql_query($consulta, $conexion);

//mostrar

while ($cosa = mysql_fetch_array($almacena)){

$consulta2 = "SELECT * FROM tecnicos WHERE id=".$cosa['id_tecnico'];
$almacena2 = mysql_query($consulta2, $conexion);
$tecnico= mysql_fetch_array($almacena2);

$consulta3 = "SELECT * FROM clientes WHERE id=".$cosa['id_cliente'];
$almacena3 = mysql_query($consulta3, $conexion);
$cliente= mysql_fetch_array($almacena3);

echo "<tr>";
echo "<td align='center'>";
echo $cosa['num_partes'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['prioridad'];
echo "</td>";

echo "<td align='center'>";

echo $tecnico['nombre'];
echo "<td align='center'>";

echo $cliente['nombre'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['fecha_ini'];
echo "</td>";


echo "<td align='center'>";
echo $cosa['fecha_fin'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['caracteristicas'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['modelo_equipo'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['num_serie'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['motivo_asistencia'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['descripcion_intervencion'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['observaciones'];
echo "</td>";

echo "<td align='center'>";
echo $cosa['num_partes'];
echo "</td>";


echo "<td align='center'>";
echo "<a href='partesedid1.php?partes=".$cosa['num_partes']."'><img src='imagenes/editar.png' border='0'></a>";
echo "<a href='partesbor.php?partes=".$cosa['num_partes']."'><img src='imagenes/borrar.png' border='0'></a>";
echo "</td>";
echo "</tr>";

}
?> [/php]
Autor: Anonimo
Publicado: 27-10-2010 01:34 PM
Te salta una advertencia porque ¿que pasaría si no encuentra resultados al realizar la primera consulta? Seguramente esa variable ni se crea o es null por tanto realiza las siguientes consultas para nada.
"Fallaría" la línea while($cosa = mysql_fetch_array($almacena)) ya que no habría nada en $cosa porque no hay ningun resultado.

Ésto lo puedes arreglar utilizando la función mysql_num_rows() para controlar los resultados.

Quedaría así(debajo de la primera consulta):

$numfilas = mysql_num_rows($almacena);



if ($numfilas!=0){

while ...{} todo lo demás que tenías escrito
}

Saludos!