Foros del Web » Programando para Internet » PHP »

Warning: mysql_fetch_assoc():

Estas en el tema de Warning: mysql_fetch_assoc(): en el foro de PHP en Foros del Web. cuando entro en este archivo php: <?php // conexión a mysql require("conexion.php"); require("funciones.php"); // consulta de registros $query = "SELECT * FROM empresa ORDER BY ...
  #1 (permalink)  
Antiguo 29/01/2012, 09:48
 
Fecha de Ingreso: enero-2012
Mensajes: 10
Antigüedad: 12 años, 9 meses
Puntos: 0
Warning: mysql_fetch_assoc():

cuando entro en este archivo php:

<?php
// conexión a mysql
require("conexion.php");
require("funciones.php");
// consulta de registros
$query = "SELECT * FROM empresa ORDER BY nombre ASC";
$queEmp = mysql_query($query, $conexion);
?>
<html>
<head>
<title>Listado de Empresas</title>
</head>
<body>
<table>
<?php while ($rsEmp = mysql_fetch_assoc($quEmp)) { ?>
<tr>
<td><?php echo $rsEmp['nombre']; ?></td>
<td><?php echo $rsEmp['direccion']; ?></td>
<td><a href="editar.php?id=<?php echo $rsEmp['id']; ?>">Editar</a></td>
<td><a href="#" onclick="delEmpresa(<?php echo $rsEmp['id']; ?>);">Eliminar</a></td>
</tr>
<?php } ?>
</table>
<script type="text/javascript">
function delEmpresa(id) {
if (window.confirm("Aviso:\nDesea eliminar el registro seleccionado?")) {
window.location = "delete.php?action=del&id="+id;
}
}
</script>
</body>
</html>

me da el siguiente error:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/juankar/public_html/bases/eliminar_registro.php on line 29

no tengo ni idea de php, me podeis ayudar?

gracias.
  #2 (permalink)  
Antiguo 29/01/2012, 10:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Warning: mysql_fetch_assoc():

Por favor, antes de que le digan que es un asunto con la base de datos: La consulta SQL es correcta, el problema a mi entender surge con la forma en que realiza la conexión desde PHP.
Yo ya le plentee las alternativas de error en la base.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 29/01/2012, 10:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Warning: mysql_fetch_assoc():

Es normal, inicialmente estás usando $queEmp y después usas $quEmp

¿No notas nada extraño?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 29/01/2012, 11:24
 
Fecha de Ingreso: enero-2012
Mensajes: 10
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Warning: mysql_fetch_assoc():

Cita:
Iniciado por pateketrueke Ver Mensaje
Es normal, inicialmente estás usando $queEmp y después usas $quEmp

¿No notas nada extraño?

gracias, pues si era eso, pero es que soy muy torpe, y ahora tengo otro error en otro archivo:

<?php
require("conexion.php");
require("funciones.php");

$idempresa = getParam($_GET["id"], "-1");
$action = getParam($_GET["action"], "");

if ($action == "edit") {
$idempresa = getParam($_POST["id"], "-1");
$nombre = sqlValue($_POST["nombre"], "text");
$direccion = sqlValue($_POST["direccion"], "text");
$telefono = sqlValue($_POST["telefono"], "int");

$sql = "UPDATE empresa SET ";
$sql.= "nombre=".$nombre.", direccion=".$direccion.", telefono=".$telefono." ";
$sql.= "WHERE id=".$idempresa;
mysql_query($sql, $conexion);
header("location: listado.php");
}

$sql = "SELECT * FROM empresa WHERE id = ".sqlValue($idempresa, "int");
$queEmp = mysql_query($sql, $conexion);
$rsEmp = mysql_fetch_assoc($queEmp);
$total = mysql_num_rows($queEmp);
if ($total == 0) {
header("location: listado.php");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>PHP con MySQL: Editar datos en MySQL</title>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h3>Editar Empresa</h3>
<?php if ($status == "ok") { ?>
<p class="confirm">Registro guardado correctamente</p>
<?php } ?>
<form method="post" id="frEmpresa" action="editar.php?action=edit">
<label for="nombre">Nombre</label>
<input type="text" id="nombre" name="nombre" value="<?php echo $rsEmp["nombre"]; ?>" />
<br />
<label for="direccion">Direcci&oacute;n</label>
<input type="text" id="direccion" name="direccion" value="<?php echo $rsEmp["direccion"]; ?>" />
<br />
<label for="telefono">Telefono</label>
<input type="text" id="telefono" name="telefono" value="<?php echo $rsEmp["telefono"]; ?>" />
<br />
<label for="bts">&nbsp;</label>
<button type="submit">Guardar</button>
<button type="reset">Limpiar</button>
<input type="hidden" id="id" name="id" value="<?php echo $rsEmp["id"]; ?>" />
</form>
</body>
</html>



el error es:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/juankar/public_html/bases/eliminar/editar.php on line 23

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/juankar/public_html/bases/eliminar/editar.php on line 24

Warning: Cannot modify header information - headers already sent by (output started at /home/juankar/public_html/bases/eliminar/editar.php:23) in /home/juankar/public_html/bases/eliminar/editar.php on line 26



perdona por mi ignorancia en el asunto
  #5 (permalink)  
Antiguo 29/01/2012, 12:24
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Warning: mysql_fetch_assoc():

bueno tus problemas son muy claros
por ejemplo este
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/juankar/public_html/bases/eliminar/editar.php on line 23

el error se dice a si mismo
como buen programador lo que tenes que hacer es ir al manual y ver la sintaxis de mysql_fetch_assoc()
http://php.net/manual/es/function.mysql-fetch-assoc.php
y chequear que mi modo de usarlo es correcto.

tenes que hacer lo mismo para cada error.

sino vamos a estar toda la tarde resolviendote linea por linea tus errores.

otra cosa: instalate el x-debug para ver el paso a paso mientras debugeas.

suerte y segui preguntando, pero no que te resolvamos el problema asi nada mas...
  #6 (permalink)  
Antiguo 29/01/2012, 18:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Warning: mysql_fetch_assoc():

Trata de ser más metódico y estudiar algo de programación, antes de seguir avanzando.
Si tienes que usar una función que debería devolver algo, lo que sea, es obvio que lo primero que deberías hacer es verificar si está devolviendo un objeto válido, o si se ha producido un error. Eso es programación básica.
Tu mandas a realizar una consulta (sea SELECT, INSERT, UPDATE o DELETE) a la base, y asumes que la cosa anduvo bien y no se produjo ningún error.
¿Por qué asumes eso?
Nadie supone que las cosas andan bien. Se comprueba que todo haya funcionado antes de siquiera intentar leer un registro...
Si luego de ejecutar la consulta mandas un mysql_fetch_assoc(), sin verificar nada, y la cosa anduvo mal, salta un error... Siempre. Y el error puede estar tanto en el PHP como en una redacción defectuosa de la consulta (como en el UPDATE que estás usando).

Haz una cosa: Ve a las FAQs de PHP, mira los temas de integración entre PHP y Bases de Datos, lee cómo se redactan y controlan estas cosas y recién entonces vuelve a escribir lo que tienes mal.

Cuando hayas hecho eso, tendrás ganas de darte la cabeza contra el teclado por haber caído en errores tan evidentes y elementales.

Tip: Por cierto, trata de no inventar el agujero del mate de nuevo.
Hay cosas que ya están estandarizadas como métodos. No intentes crear lo creado. Usa los ejemplos que veas adaptándolos a tus necesidades.
Leer los registros de una tabla que se consulta, es una de esas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: html, mysql, registro, warning
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:36.