Foros del Web » Programando para Internet » PHP »

arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

Estas en el tema de arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in en el foro de PHP en Foros del Web. Hola, estoy tratando de hacer funcionar un script pero me da el siguiente problema Cita: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given ...
  #1 (permalink)  
Antiguo 09/06/2012, 22:39
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in

Hola, estoy tratando de hacer funcionar un script pero me da el siguiente problema

Cita:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\panel\includes\variables.php on line 15
variables.php

Código PHP:
session_start();
$susuario $_SESSION['usuario'];
$sclave $_SESSION['clave'];
$sql mysql_query("SELECT * FROM players, atributos, delincuentes WHERE Nombre = '".$susuario."' AND Password = '".$sclave."' LIMIT 1");
$resultado mysql_fetch_assoc($sql);
$nombre $resultado['Nombre'];
$sexo verGenero($resultado['Sexo']);
$edad $resultado['Edad'];
$raza $resultado['raza'];
$altura $resultado['altura'];
$peso $resultado['peso'];
$ojos $resultado['ojos'];
$pelo $resultado['pelo'];
$telefono $resultado['Telefono'];
$origen verOrigen($resultado['Origen']);
$nivel $resultado['PayDay'];
$horas_jugadas $resultado['PayDay'];
$carkey verAuto($resultado['Coches']);
$housekey verCasa($resultado['Casa']);
$nivel_admin $resultado['AdminLevel'];
$rango verRango($nivel_admin);
$skin $resultado['Skin'];
$banco $resultado['Banco'];
$materiales $resultado['Productos'];
$drogas $resultado['Consumos'];
$crimenes $resultado['multas'];
$arrestos $resultado['condenas'];
$email $resultado['email'];
$descripcion_psicologica $resultado['descripcion_psicologica'];
$historia $resultado['historia'];
$fecha_registro $resultado['fecha_registro'];
$aprobado $resultado['Certificacion']; 
conectar.php

Código PHP:
$dbhost "localhost";    // Host
$dbusuario "root";        // Usuario
$dbcontraseña "";        // Contraseña
$dbnombre "db";            // Nombre BD


$db mysql_connect($dbhost,$dbusuario,$dbcontraseña) or die("<br><b><font color='red'>Error De Configuraci&oacute;n:</font><br>Imposible conectar a la base de datos. Verifique los datos.</b>");
// Selecciona la BD con la que se trabajará
mysql_select_db($dbnombre,$db) or die("<br><b><font color='red'>Error De Configuraci&oacute;n:</font><br>Es posible que la base de datos no exista. Verifique los datos.</b>"); 
Bueno, espero su ayuda...
  #2 (permalink)  
Antiguo 10/06/2012, 11:33
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Ese error es debido porque algún nombre de campo o tabla esta incorrecto. Verifica nuevamente los nombre de campos y tablas esten correctamente en base a tu estructura de datos.

saludos.
__________________
http://dev.wsnetcorp.com
  #3 (permalink)  
Antiguo 10/06/2012, 12:45
Avatar de xpapachox  
Fecha de Ingreso: junio-2011
Mensajes: 77
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Esta parte debes corregir.

mysql_query("SELECT * FROM players, atributos, delincuentes WHERE Nombre = '".$susuario."' AND Password = '".$sclave."' LIMIT 1");

Veo que tienes 3 tablas. No se si existe relacion entre algunas...
Si la hay deberias pornerlo.

Ademas cuando hagas un select. Trata de poner el nombre de las columnas, as{i:

select columna1, columna2 columna3 from tablas;

Asi seria menos engorroso. Y seria mas rapido para que tu aplicacion encuentre las columnas que deseas mostrar.


-_-
  #4 (permalink)  
Antiguo 11/06/2012, 10:25
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Cita:
Iniciado por ebe Ver Mensaje
Ese error es debido porque algún nombre de campo o tabla esta incorrecto. Verifica nuevamente los nombre de campos y tablas esten correctamente en base a tu estructura de datos.

saludos.
Hola,

Los campos existen todos, estan en diferentes tablas por eso cite 3 tablas.


Cita:
Iniciado por xpapachox Ver Mensaje
Esta parte debes corregir.

mysql_query("SELECT * FROM players, atributos, delincuentes WHERE Nombre = '".$susuario."' AND Password = '".$sclave."' LIMIT 1");

Veo que tienes 3 tablas. No se si existe relacion entre algunas...
Si la hay deberias pornerlo.

Ademas cuando hagas un select. Trata de poner el nombre de las columnas, as{i:

select columna1, columna2 columna3 from tablas;

Asi seria menos engorroso. Y seria mas rapido para que tu aplicacion encuentre las columnas que deseas mostrar.


-_-
Me dices que haga algo asi?

Código PHP:
mysql_query("SELECT Nombre, Sexo, Edad, raza, altura, peso, ojos, pelo, Telefono, Origen, PayDay, PayDay, Coches, Casa, AdminLevel, Skin, Banco, Productos, Consumos, multas, condenas, email, descripcion_psicologica, historial, fecha_registro, Certificacion FROM players, atributos, delincuentes WHERE Nombre = '".$susuario."' AND Password = '".$sclave."' LIMIT 1"); 
Gracias por su ayuda

Última edición por Psicopata17; 11/06/2012 a las 10:34
  #5 (permalink)  
Antiguo 11/06/2012, 10:35
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Me parece que tendrias que pegarle una leida al manual de MySQL.

Lo que te comentan es que cuando vos elegis que los datos vengan de mas de una tabla,
clausula FROM, tenes que establecer una realacion entre esas tablas.


Código PHP:
Ver original
  1. $query = "SELECT *
  2.          FROM players
  3.                 JOIN atributos    ON ( players.clave = atributos.clave_player    )
  4.                 JOIN delincuentes ON ( players.clave = delincuentes.clave_player )
  5.           WHERE Nombre = '".$susuario."' AND Password = '".$sclave."'
  6.           LIMIT 1";
  7. $result = mysql_query($query);

Igual decir lo que te dije si las tablas no tienen relaciones entre si no sirve.
Tendrias que ver como se relacionan las tablas players, atributos y delincuentes.

Players tiene un campo llamado id el cual identifica univocamente a un jugador.
Dentro de la tabla atributos, tengo un campo llamado id_player el cual referencia 1 a 1 al jugador.

Esas son las cosas que deberias definir para poder encarar relaciones entre tablas.

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #6 (permalink)  
Antiguo 11/06/2012, 11:07
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Cita:
Iniciado por elgoncho99 Ver Mensaje
Me parece que tendrias que pegarle una leida al manual de MySQL.

Lo que te comentan es que cuando vos elegis que los datos vengan de mas de una tabla,
clausula FROM, tenes que establecer una realacion entre esas tablas.


Código PHP:
Ver original
  1. $query = "SELECT *
  2.          FROM players
  3.                 JOIN atributos    ON ( players.clave = atributos.clave_player    )
  4.                 JOIN delincuentes ON ( players.clave = delincuentes.clave_player )
  5.           WHERE Nombre = '".$susuario."' AND Password = '".$sclave."'
  6.           LIMIT 1";
  7. $result = mysql_query($query);

Igual decir lo que te dije si las tablas no tienen relaciones entre si no sirve.
Tendrias que ver como se relacionan las tablas players, atributos y delincuentes.

Players tiene un campo llamado id el cual identifica univocamente a un jugador.
Dentro de la tabla atributos, tengo un campo llamado id_player el cual referencia 1 a 1 al jugador.

Esas son las cosas que deberias definir para poder encarar relaciones entre tablas.

Espero sirva, saludos.
Remplace el código con el que me dejaste y el problema de mysql_fetch_assoc se fue, ahora tengo problemas con las varias al parecer no deben estar bien definidas..

Código:
Notice: Undefined variable: resultado in E:\wamp\www\panel\includes\variables.php on line 21
Ese problema con todas las variables.

¿ Podrías dejarme la guía de mysql en español? Realmente soy nuevo en esto y aprendo a los golpes
  #7 (permalink)  
Antiguo 11/06/2012, 11:27
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

En internet hay muchas, yo alguna vez lei esto en español y me parece un buen comienzo.

http://mysql.conclase.net/

Despues hay que probar, lo mejor es aprender y entender claramente
el concepto de "teoria relacional de base de datos". Luego usar una base de datos no es mas que descular como conectarse y escribir una query sql.

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #8 (permalink)  
Antiguo 11/06/2012, 11:46
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

buenas , el compañero elgoncho99 me refirio a este tema ya que tengo una consulta muy similar
tengo un form de consulta el cual me llama la funcion busqueda.php
en la cual esta el query
Pero como puedo hacer para que la funcion query me muestre ejemplo:
las tres tablas tiene en comun el numero de cedula
tabla1 tiene cedula,telefono,direccion
tabla2 tiene cedula,nombre
tabla3 tiene cedula,salario,estadocivil

como hago para q la consulta me muestre al buscar por nombre , el resultado con la cedula,nombre,telefono,direccion y salario extraido cada campo de su respectiva tabla la cual comparten en comun el numero de cedula.

lo he intentado de muchas maneras en base a consultas relacionadas en este foro pero no logro hacer q consulte bien.
  #9 (permalink)  
Antiguo 11/06/2012, 11:48
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Estaría bien si remplazo las variables de la siguiente manera

Original:
Código PHP:
$nombre $resultado['Nombre']; 
Por:
Código PHP:
$nombre = isset($_GET["Nombre"]); 
Acabo de remplazarla y me dejo de dar el warning de "Undefined variable" en esa linea, pero no se si funcionara correctamente la función...

¿Que dicen?
  #10 (permalink)  
Antiguo 11/06/2012, 11:48
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Fijate mas arriba que a Psicopata17 le escribi algo similar hay que relacionar las tablas entre si por medio de JOIN.

Saludos.
__________________
http://www.latinium.com.ar/
  #11 (permalink)  
Antiguo 11/06/2012, 12:04
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Cita:
Iniciado por Psicopata17 Ver Mensaje
Estaría bien si remplazo las variables de la siguiente manera

Original:
Código PHP:
$nombre $resultado['Nombre']; 
Por:
Código PHP:
$nombre = isset($_GET["Nombre"]); 
Acabo de remplazarla y me dejo de dar el warning de "Undefined variable" en esa linea, pero no se si funcionara correctamente la función...

¿Que dicen?
  #12 (permalink)  
Antiguo 11/06/2012, 12:10
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Esto conceptualmente esta mal.
Código PHP:
Ver original
  1. $nombre = isset($_GET["Nombre"]);

isset determina si la variable digamos esta seteada o no y retorna un booleano (true o false).

deberias usarlo asi

Código PHP:
Ver original
  1. $nombre = isset($_GET["Nombre"]) ?  $_GET["Nombre"] : "";

Es un if con la forma inline ?:

Espero sirva, saludos.
__________________
http://www.latinium.com.ar/
  #13 (permalink)  
Antiguo 11/06/2012, 12:19
 
Fecha de Ingreso: junio-2012
Mensajes: 16
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

elgoncho99 perdon por seguir molestando , esta es la estructura de la busqueda

Cita:
<?php
include('conexion2.php');
$nombre=$_GET['nombre']; <!--este es el patron inicial de busqueda-->

$query="select ice.telefono,ice.cedula,padron.nombre,padron.distr ito,ccss.direccion,ccss.salario from ice, padron, ccss where (AQUI ES DONDE NO SE QUE MAS PONER O CMO ACOMODAR LOS JOIN PARA QUE ME DEN EL RESULTADO INDICADO)

nombre like '%$nombre%' order by nombre asc";
$result= mysql_query($query);

echo "<table id='td' border='1' bordercolor='#000000' name='resultado' cellpadding='0' cellspacing='0'></th><th>TELEFONO</th><th>CEDULA</th><th>NOMBRE</th><th>DISTRITO</th><th>DIRECCION</th><th>SALARIO</th></tr>";
while($fila= mysql_fetch_row($result)){
echo "<tr>";
for($i=0;$i<mysql_num_fields($result) ;$i++){
echo "<td>".$fila[$i]."</td>";

}

echo "</tr>";
}

echo "</table>";

?>
  #14 (permalink)  
Antiguo 11/06/2012, 12:26
 
Fecha de Ingreso: junio-2012
Ubicación: Argentina - Buenos Aires
Mensajes: 135
Antigüedad: 11 años, 11 meses
Puntos: 32
Respuesta: arning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean gi

Primero como consejo te diria que escribas las consultas mas prolijamente, te va a ser mas facil y rapido leerla en varias lineas que en 1 mega linea.

Lo que buscas es algo asi:

Código PHP:
Ver original
  1. $query = "  SELECT
  2.                 i.telefono,
  3.                 i.cedula,
  4.                 p.nombre,
  5.                 p.distrito,
  6.                 c.direccion,
  7.                 c.salario
  8.             FROM
  9.                 ice AS i
  10.                     JOIN padron AS p ON i.cedula = p.cedula
  11.                     JOIN ccss AS c ON p.cedula = c.cedula
  12.             WHERE
  13.                 p.nombre LIKE '%$nombre%'
  14.             ORDER BY p.nombre ASC";

Espero sirva, saludos.

PD: Deberias leer un manual de sql
__________________
http://www.latinium.com.ar/

Etiquetas: assoc, fetch, mysql
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 20:56.