Foros del Web » Programando para Internet » PHP »

Error basico, pero no lo pillo

Estas en el tema de Error basico, pero no lo pillo en el foro de PHP en Foros del Web. hola, estoy conectando en un nuevo web, y es mas raro que yo que se, y hasta que he podido hacer la conexion a una ...
  #1 (permalink)  
Antiguo 11/08/2005, 15:57
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
Pregunta Error basico, pero no lo pillo

hola, estoy conectando en un nuevo web, y es mas raro que yo que se, y hasta que he podido hacer la

conexion a una bd de mysql me ha llevado bastante.

El problema viene de que he creado una base de datos que se llama apogeusone y dentro de esa base de

datos, una tabla llamada ficha con algunos campos. Pero al intentar hacerle la consulta me devuelve un

error muy raro.

El codigo que tengo es el siguiente:

Código:
<?
//Conecto a la base de datos:::En el user hay que ponerlo con el nombre de //usuario del webmaster y 

detras la tabla, no me pregunten porque, pero estuve //bastante hasta que averigue que era asi.

$dbh=mysql_connect ("localhost", "b2l1621_apogeuso", "******") or die ('No se ha podido conectar a 

la base de datos por: ' . mysql_error());

//Selecciono la base de datos apogeusone
mysql_select_db ("b2l1621_apogeusone");

//Realizo la consulta a la tabla ficha
$result = mysql_query("SELECT * FROM ficha", $dbh);

//Imprimo los valores de los campos de la tabla ficha
echo "Identidad del jugador: ".mysql_result($result, "", "id")."<br>";

echo "Nick: ".mysql_result($result, 0, "nick")."<br>";

echo "Edad: ".mysql_result($result, 0, "edad")."<br>";

echo "Sexo: ".mysql_result($result, 0, "sexo")."<br>";

echo "Nivel :".mysql_result($result, 0, "nivel")."<br>";

echo "Experiencia :".mysql_result($result, 0, "experiencia")."<br>";

echo "Próximo nivel :".mysql_result($result, 0, "prox_nivel")."<br>";

echo "Raza :".mysql_result($result, 0, "raza")."<br>";

echo "Clase :".mysql_result($result, 0, "clase")."<br>";

?>
Pero tras hacer eso me devuelve:

Código:
Resource id #1

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 17
Identidad del jugador:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 19
Nick:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 21
Edad:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 23
Sexo:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 25
Nivel :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 27
Experiencia :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 29
Próximo nivel :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 31
Raza :

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in 

/home/b2l1621/public_html/ficha.php on line 33
Clase :
Tiene que ser una tontada, tal vez no indico bien la consulta o algo similar. Mi intencion es que

aparezcan los valores de la tabla segun cada campo, me pueden ayudar?

Muchas gracias
  #2 (permalink)  
Antiguo 11/08/2005, 16:10
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
Prueba con esto
Código PHP:
$con mysql_connect($host,$bd,$pass) or die (mysql_error());
mysql_select_db($bd,$con) or die (mysql_error());

$sql = ("SELECT * FROM ficha");
$result mysql_query($sql); 
Ahora vamos a sacar en el array $ver toda la consulta de tu bd. Lo único que debes hacer ahora es recorrerlo para sacar todos sus datos. Para ello puedes usar while, tal que así

Código PHP:
while ($ver mysql_fetch_array($result))
{
echo 
"campo1".$ver[tucampo];
...
...

A ver si te funciona.
Un saludo.
  #3 (permalink)  
Antiguo 11/08/2005, 16:25
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
puse esto:

Código:
<?php
$dbh=mysql_connect ("localhost", "b2l1621_apogeuso", "******") or die ('No se ha podido conectar a la base de datos por: ' . mysql_error());
mysql_select_db ("b2l1621_apogeusone") or die ('No se ha podido acceder a la selección de la base de datos por: ' . mysql_error());
mysql_select_db ("b2l1621_apogeusone");

$sql = ("SELECT * FROM ficha");
$result = mysql_query($sql);

while ($ver = mysql_fetch_array($result))
{
echo "Identidad del jugador: ".$ver[id];

echo "<br>Nick: ".$ver[nick];
}

?>



y me devolvio:

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/b2l1621/public_html/ficha.php on line 23
No se que pasó, tal vez monte mal el array, a ver si saben ustedes, muchas gracias
  #4 (permalink)  
Antiguo 11/08/2005, 16:39
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
pon esto a ver si funciona

Código PHP:
mysql_select_db ("b2l1621_apogeusone",$dbh) or die ('No se ha podido acceder a la selección de la base de datos por: ' mysql_error()); 
el 2 mysq_select_db lo quitas y vuele a ejecutar el script.

ya me cuentas..
  #5 (permalink)  
Antiguo 11/08/2005, 16:50
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
idem..me dice lo mismo..el error me lo da en la linea 23 a la altura del mysql array XDD

agregame al msn [email protected], si no nos vamos a eternizar con los post y probando. gracias
  #6 (permalink)  
Antiguo 11/08/2005, 17:04
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
Lo siento pero no uso el msg.
El error que te da en la linea 23 te está indicando que en la consulta que se hace a la tabla ficha, no recupera ningún registro. Verifica que la tabla ficha tiene algún dato para recuperar. Además cuando pegues el código php, pincha en la etiqueta php, para que se pueda ver el código coloreado y se puedan depurar mejor los errores.

Revísalo porque debe de funcionar.

bye
  #7 (permalink)  
Antiguo 11/08/2005, 17:48
Avatar de compositor19  
Fecha de Ingreso: junio-2005
Ubicación: Zaragoza
Mensajes: 215
Antigüedad: 12 años, 5 meses
Puntos: 2
hola, el array ke se saca de la base de datos debe ir entre comillas simples:

$ver['nick'];

si lo kieres poner sin comillas, deberias poner el numero de array, por ejemlo $ver[2];

si no es eso, prueba a kitarle los parentesis a la consulta.

en resumen, kedaria esto:

Código PHP:

<?php
$server_conexion
="localhost";
        
$username_mysql="username";
        
$pass_mysql="pass";
        
$database_mysql="db";

$dbh=mysql_connect($server_conexion$username_mysql$pass_mysql)
    or die (
"No se ha podido establecer la conexion. Revise la configuracion de conexion.");
mysql_select_db("$database_mysql",$dbh) or die ("No se ha encontrado la base de datos");


$sql "SELECT * FROM ficha";
$result=mysql_db_query("$database_mysql",$sql);

while(
$ver mysql_fetch_array($result))
{
echo 
"Identidad del jugador: ".$ver['id'];

echo 
"<br>Nick: ".$ver['nick'];
}

?>
cambia el nombre de las variables x las tuyas y a funcionar.

un saludo. Ismael.
  #8 (permalink)  
Antiguo 12/08/2005, 05:18
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
Gracias por tu interes compositor19, pero aun probando tu manera me sigue dando error, y donde detecta el error es justamente en el while. Esto me esta comiendo la cabeza, porque es una cosita muy simple pero no la hago funcionar. Bueno el codigo quedo asi:

Código:
<?php

/* VARIABLES DE CONEXIÓN AL SERVIDOR*/

$server_conexion="localhost"; //Conectamos al servidor
        $username_mysql="b2l1621_apogeuso"; //Usuario para la base de datos ApogeusOne
        $pass_mysql="******"; //Password para la base de datos ApogeusOne
        $database_mysql="b2l1621_apogeusone"; //Seleccionamos la base de datos ApogeusOne


$dbh=mysql_connect ($server_conexion, $username_mysql, $pass_mysql) or die ('No se ha podido hacer la conexión por: ' . mysql_error());
mysql_select_db ("$database_mysql",$dbh) or die ('No se ha podido conectar a la base de datos por: ' . mysql_error());

//------------HASTA AQUI PERFECTO---------

//:::::::::::::::::METEMOS LO NUEVO

$sql = "SELECT * FROM ficha";
$result=mysql_db_query("$database_mysql",$sql);

while($ver = mysql_fetch_array($result)) //EN ESTA LINEA DEVUELVE EL ERROR
{
echo "Identidad del jugador: ".$ver['id'];

echo "<br>Nick: ".$ver['nick'];
} 

?>
y me devuelve el error:

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/b2l1621/public_html/ficha.php on line 21
Esto me esta frustrando un montón, a ver si podemos conseguirlo, me he mirado ya un monton de manuales de como hacerlo y lo pruebo y luego no tira. Habria otra forma de hacerlo que sea el while?

Otra duda, tengo en la tabla ficha un solo registro metido, o sea, la id=1 y con sus respectivos campos mas, con esto saldrian todos los que hay no?

Muchas gracias a todos por ayudarme, espero sus respuestas. saludos
  #9 (permalink)  
Antiguo 12/08/2005, 05:28
 
Fecha de Ingreso: noviembre-2004
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
Hola de nuevo. Prueba a quitar las comillas aquí
Código PHP:
$result=mysql_db_query($database_mysql,$sql); 
y ejecuta el codigo de nuevo. El error que te da es porque no recupera nada de la bd.

sigue contándonos.
  #10 (permalink)  
Antiguo 12/08/2005, 11:33
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
He hecho lo que me dijiste y me sigue saliendo:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/b2l1621/public_html/ficha.php on line 21

Ay algo raro, pero nada, no consigo dar con ello...
  #11 (permalink)  
Antiguo 12/08/2005, 11:46
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
Proba esto para ver que te sale:

Código PHP:
while($row mysql_fetch_array($result)) { 
      
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s</td></tr>"$row["nick"],$row["id"]); 
   } 
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #12 (permalink)  
Antiguo 12/08/2005, 11:54
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
Me dice de nuevo:

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/b2l1621/public_html/ficha.php on line 21
  #13 (permalink)  
Antiguo 12/08/2005, 12:08
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
estas probando on-line o localmente ?
como haces el SELECT
yo hago esto :
Código PHP:
function Conectarse() 

   if (!(
$link=mysql_connect("localhost","usuario","password"))) 
   { 
      echo 
"Error conectando a la base de datos."
      exit(); 
   } 
   if (!
mysql_select_db("nombreBD",$link)) 
   { 
      echo 
"Error seleccionando la base de datos."
      exit(); 
   } 
   return 
$link


$link=Conectarse(); 


$result=mysql_query("select * from nombretabla",$link); 
despues hagoel while que te pase antes y funciona correctamente.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #14 (permalink)  
Antiguo 12/08/2005, 13:03
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
esta exactamente todo igual a como lo tengo.

Conecto online, no se creo que he creado bien las tablas y demas, no creo k sea por eso no?
  #15 (permalink)  
Antiguo 12/08/2005, 13:15
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 12 años, 6 meses
Puntos: 3
debe haber un problema en la tabla entonces, porque no esta haciendo el select correctamente. Por lo menos eso me parece a mi.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #16 (permalink)  
Antiguo 12/08/2005, 13:29
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
Prueba esto:

Código PHP:
<?php
   $server_conexion
="localhost";
   
$username_mysql="username";
   
$pass_mysql="pass";
   
$database_mysql="db";

$dbh=mysql_connect($server_conexion$username_mysql$pass_mysql)
    or die (
"No se ha podido establecer la conexion. Revise la configuracion de conexion.");
mysql_select_db($database_mysql,$dbh) or die ("No se ha encontrado la base de datos");

$sql "SELECT * FROM ficha";
$result=mysql_query($sql,$dbh) or die(mysql_error());

if (
$result)
{
   while(
$ver mysql_fetch_array($result))
   {
       echo 
"Identidad del jugador: ".$ver['id'];
       echo 
"<br>Nick: ".$ver['nick'];
   }
}

?>
  #17 (permalink)  
Antiguo 12/08/2005, 14:11
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 12 años, 4 meses
Puntos: 7
YA FUNCIONO!!!!!
LA SOLUCION ERA::>>

Users in apogeusone
b2l1621_apogeuso (Privileges: ALL PRIVILEGES)

----------

Era porque el usuario que tenia puesto solo tenia los privilegios de INSERT y por eso al hacer un SELECT no dejaba XDD

Ahora con ALL PRIVILEGES ya si funciona ;)

Muchas gracias por todo, ya pueden cerrar el tema si quieren, me han ayudado muchisimo, porque sin hacer esas pruebas de aver si funcionaba con esto o lo otro no me hubiese dado cuenta ;)

saludos y gracias de nuevo
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 23:24.