Foros del Web » Programando para Internet » PHP »

Error en funcion

Estas en el tema de Error en funcion en el foro de PHP en Foros del Web. Buenas, tengo la siguiente función: Código PHP: function  check_game ( $game ) { global  $link ; $sql         =   "SELECT * FROM games WHERE name='$game'" ; $rs          =    mysql_query ( $sql ,  ...
  #1 (permalink)  
Antiguo 31/05/2011, 16:43
 
Fecha de Ingreso: febrero-2010
Mensajes: 56
Antigüedad: 14 años, 2 meses
Puntos: 1
Exclamación Error en funcion

Buenas, tengo la siguiente función:
Código PHP:
function check_game($game) {
global 
$link;
$sql        =  "SELECT * FROM games WHERE name='$game'";
$rs         =   mysql_query($sql$link);
$row        =   mysql_fetch_array($rs);
if(
$row['id'] == ''){ 
return 
false;
 }
else {
return 
true;
};
}; 
Siendo:
Código PHP:
$row        =   mysql_fetch_array($rs); 
La línea 32, usando esa funcion obtengo erl siguiente mensaje:
Código HTML:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in D:\IKEY SERVER\xampp\htdocs\VIRTUAL HOST\root\funciones.php on line 32
  #2 (permalink)  
Antiguo 31/05/2011, 16:47
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error en funcion

depura tu consulta
Código PHP:
Ver original
  1. $rs =  mysql_query($sql, $link) or die(mysql_error());
y ahi te dira cual es el error, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 31/05/2011, 16:49
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Error en funcion

intenta así:

"SELECT * FROM games WHERE `name`='$game'"
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 31/05/2011, 17:55
 
Fecha de Ingreso: mayo-2011
Ubicación: Cancun
Mensajes: 9
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Error en funcion

Estas dentro de una funcion, la cual en el momento de ejecución no conoce el contenido de tu variable $link, es por eso que nunca va a ejecutarte ninguna consulta ya que tu variable $link no sabe como realizarlo ya que esta nula.

dependiendo lo que desees, prueba hacer la conexion dentro de tu funcion, ejemplo:
Código PHP:
Ver original
  1. function check_game($game) {
  2. //global $link;
  3. $Usuario_tmp="tuusuario";
  4. $Password_tmp="tuclave";
  5. $Servidor_tmp="tuserver";
  6. $BaseDeDatos_tmp="tubd";
  7.  
  8. $link=mysql_connect($Servidor_tmp,$Usuario_tmp,$Password_tmp) or die("Error: Hubo Un Error Con la Conexion a la BD ");
  9.  
  10. $descriptor_tmp=mysql_select_db($BaseDeDatos_tmp,$link);
  11.  
  12. $sql        =  "SELECT * FROM games WHERE name='$game'";
  13. $rs         =   mysql_query($sql, $link);
  14. $row        =   mysql_fetch_array($rs);
  15. if($row['id'] == ''){
  16. return false;
  17.  }
  18. else {
  19. return true;
  20. };
  21. };

Es por que intentas ejecutar algo que esta fuera del ambito de la funcion. Esto es una solución, a menos que en alguna otra parte de tu sistema tengas a $link como variable global, pero veo que la redefines dentro de la funcion privada unicamente.
  #5 (permalink)  
Antiguo 31/05/2011, 17:58
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error en funcion

Cita:
Iniciado por charlyck Ver Mensaje
Estas dentro de una funcion, la cual en el momento de ejecución no conoce el contenido de tu variable $link, es por eso que nunca va a ejecutarte ninguna consulta ya que tu variable $link no sabe como realizarlo ya que esta nula.

dependiendo lo que desees, prueba hacer la conexion dentro de tu funcion, ejemplo:
Código PHP:
Ver original
  1. function check_game($game) {
  2. //global $link;
  3. $Usuario_tmp="tuusuario";
  4. $Password_tmp="tuclave";
  5. $Servidor_tmp="tuserver";
  6. $BaseDeDatos_tmp="tubd";
  7.  
  8. $link=mysql_connect($Servidor_tmp,$Usuario_tmp,$Password_tmp) or die("Error: Hubo Un Error Con la Conexion a la BD ");
  9.  
  10. $descriptor_tmp=mysql_select_db($BaseDeDatos_tmp,$link);
  11.  
  12. $sql        =  "SELECT * FROM games WHERE name='$game'";
  13. $rs         =   mysql_query($sql, $link);
  14. $row        =   mysql_fetch_array($rs);
  15. if($row['id'] == ''){
  16. return false;
  17.  }
  18. else {
  19. return true;
  20. };
  21. };

Es por que intentas ejecutar algo que esta fuera del ambito de la funcion. Esto es una solución, a menos que en alguna otra parte de tu sistema tengas a $link como variable global, pero veo que la redefines dentro de la funcion privada unicamente.
si te fijas aca
Cita:
Iniciado por ikeyman Ver Mensaje
Código PHP:
function check_game($game) {
global 
$link
el amigo esta declarando global $link por lo que es una variable que lo mas seguro es que venga de un trozo de código mas arriba donde hace la conexion, aunque si hace la depuracion de la consulta seguro obtendra el error que da mysql y sera mas facil para el resolverlo o indicarnoslo para ayudarlo a resolver, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 31/05/2011, 18:54
 
Fecha de Ingreso: febrero-2010
Mensajes: 56
Antigüedad: 14 años, 2 meses
Puntos: 1
Exclamación Respuesta: Error en funcion

Cita:
Iniciado por carlos_belisario Ver Mensaje
depura tu consulta
Código PHP:
Ver original
  1. $rs =  mysql_query($sql, $link) or die(mysql_error());
y ahi te dira cual es el error, saludos

Muchas gracias, el error es el siguiente:
Código HTML:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Bash'' at line 1
  #7 (permalink)  
Antiguo 31/05/2011, 19:07
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error en funcion

ahora la pregunta del millon de dolares esa es tu consulta tal cual?? o es una que nos pusiste de prueba??, si la imprimes como te queda??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #8 (permalink)  
Antiguo 31/05/2011, 19:26
 
Fecha de Ingreso: febrero-2010
Mensajes: 56
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error en funcion

Cita:
SELECT * FROM games WHERE name='Bieber's Bash'
Creo que el erro es que se cierra el ', pongo comillas? (") o exisate alguna funcion para arreglar eso?
  #9 (permalink)  
Antiguo 31/05/2011, 19:35
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error en funcion

de echo ese es el problema, como lo solucionas utiliza mysql_real_scape_string, lo pruebas y nos comentas si te da otro error, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #10 (permalink)  
Antiguo 31/05/2011, 20:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 56
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error en funcion

Okey, y como lo aplico, ya que no entendi la documentacion oficial
  #11 (permalink)  
Antiguo 31/05/2011, 20:17
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Error en funcion

fijate en este ejemplo
Código PHP:
Ver original
  1. $query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
  2.             mysql_real_escape_string($user),
  3.             mysql_real_escape_string($password));
  4. ?>
lo traje del manual, aca trabajan con un sprintf para indicar el formato de los datos, el %s indica que es string, ahora si lo deseas trabajar mas sencillo seria
Código PHP:
Ver original
  1. $sql        =  "SELECT * FROM games WHERE name='".mysql_real_escape_string($game)."'";
pruebalo y nos comentas a ver como te fue, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 31/05/2011, 21:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 56
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Error en funcion

Pues me fué de maravilla, muchas garcias

Etiquetas: funciones, ikey
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 05:55.