Foros del Web » Programando para Internet » PHP »

Problema con consulta SQL

Estas en el tema de Problema con consulta SQL en el foro de PHP en Foros del Web. Buenas gente tengo un problema, hice una función que lo que hace es obtener ciertos datos de una BD: Código PHP: <?php function  cpanel ( ...
  #1 (permalink)  
Antiguo 12/04/2007, 19:56
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 3 meses
Puntos: 7
Problema con consulta SQL

Buenas gente tengo un problema, hice una función que lo que hace es obtener ciertos datos de una BD:
Código PHP:
<?php
function cpanel($campo,$seccion){
$ssql="SELECT * FROM cpanel WHERE seccion=$seccion";
$re mysql_query($ssql,conectarse());
$regs=mysql_fetch_row($re);
return 
$regs["$campo"];
exit;}
?>
y la llamo así:
Código PHP:
$mivariable=cpanel("status","gbook"
Mi tabla "cpanel" es así:
|seccion | regs | status |
+--------+--------+--------+
|gbook | 5 | 0 |
|links | NULL | 1 |
|inicio | 5 | 1 |
|fant | 5 | 1 |
+--------+--------+--------+

Bueno la Representación de la tabla no me salío precisamente linda pero creo que se entiende :)
Bueno el problema es que en la variable $ssql cuando le pongo como clausula "WHERE id=$seccion" me da el siguiente error:
Código PHP:
Warningmysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:inetpubwwwrootinstintomoduloscontrolpanelcpfunctions.php on line 5 
Ya comprobé que los datos psados a la función estén llegando correctamente, pero no entiendo porque no funciona, espero sepan ayudarme, desde ya muchas gracias!!
saludos!
__________________
I'm gonna start a revolution from my bed...

Última edición por pablinff; 13/04/2007 a las 11:26
  #2 (permalink)  
Antiguo 12/04/2007, 21:04
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problema con consulta SQL

En la tabla te falta el campo id. Como no te hayas olvidado de representarlo en tu grafico, ese es uno de los problemas.

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #3 (permalink)  
Antiguo 13/04/2007, 11:23
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema con consulta SQL

Upss la verdad es que me equivoqué porque estuve probando varias formas, porque en realidad en este tipo de tablas no necesito campo id, el id es el campo sección en este caso, y me quedó id en el script porque también probé si tal vez era necesario que haya un campo id, pero al parecer ese no es el problema...
Igual ahí corrijo el error, muchas gracias por tu ayuda!! :)
Saludos!!!
__________________
I'm gonna start a revolution from my bed...
  #4 (permalink)  
Antiguo 13/04/2007, 11:34
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: Problema con consulta SQL

Yo completaria tu función:

Esta es la tuya:
<?php
function cpanel($campo,$seccion){
$ssql="SELECT * FROM cpanel WHERE seccion=$seccion";
$re = mysql_query($ssql,conectarse());
$regs=mysql_fetch_row($re);
return
$regs["$campo"];
exit;}
?>

Esta es la mia:
<?php
function cpanel($campo,$seccion){
$ssql="SELECT $campo FROM cpanel WHERE seccion=$seccion";
$re = mysql_query($ssql,conectarse());
$regs=mysql_fetch_row($re);
return
$regs["$campo"];
exit;}
?>

Motivo : Si pones el * para qué descargar todos los datos en un array cuando sólo utilizará uno solo???

Es cuestión de optimizar la consulta y la respuesta del server. Es muy pequeñoi el detalle pero en sumatoria hace una diferencia.

Saludos Amigos!
  #5 (permalink)  
Antiguo 13/04/2007, 12:00
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Re: Problema con consulta SQL

El problema sigue estando en la consulta me parece:

Código:
"SELECT * FROM cpanel WHERE seccion=$seccion"
Cuando es un dato de tipo 'string', debes colocarle unas comillas:

Código:
"SELECT * FROM cpanel WHERE seccion='$seccion'"

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #6 (permalink)  
Antiguo 14/04/2007, 14:05
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema con consulta SQL

No no puedo solucionar el problema, he probado lo de las comillas a la variable $seccion en la consulta y no me soluciona nada...:(, y también había hecho eso de en vez del * usar la variable campo pero como tampoco me solucinaba nada opté por seguir con el *.
Muchas gracias por su tiempo :)
Saludos!
__________________
I'm gonna start a revolution from my bed...
  #7 (permalink)  
Antiguo 14/04/2007, 14:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Re: Problema con consulta SQL

Si usas el siguiente codigo:
Código PHP:
function cpanel($campo,$seccion){
$ssql="SELECT * FROM cpanel WHERE seccion='$seccion'";
$re mysql_query($ssql,conectarse()) or die( mysql_error() );
$regs=mysql_fetch_row($re);
return 
$regs["$campo"];

Que error te da?
  #8 (permalink)  
Antiguo 15/04/2007, 13:33
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema con consulta SQL

No me tira ningun error, pero sigue sin funcionar, la variable "$mivariable" sigue estando vacía :S no puedo entender cual es el problema
__________________
I'm gonna start a revolution from my bed...
  #9 (permalink)  
Antiguo 15/04/2007, 14:43
 
Fecha de Ingreso: febrero-2007
Ubicación: Peru
Mensajes: 38
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con consulta SQL

Prueba esto, como es un solo campo, no va a haber diferencias

function cpanel($campo,$seccion){
$ssql="SELECT * FROM cpanel WHERE seccion='$seccion'";
$re = mysql_query($ssql,conectarse()) or die( mysql_error() );
$regs=mysql_fetch_array($re);
return $regs["$campo"];
}

sin embargo si nada te funciona, haz probado, imprimer tu $ssql, y probarlo en tu msyql directamente.

Otra consulta, estamos suponiendo,que ya te conectaste a la base de datos, no?
  #10 (permalink)  
Antiguo 15/04/2007, 21:34
 
Fecha de Ingreso: enero-2006
Mensajes: 293
Antigüedad: 18 años, 3 meses
Puntos: 4
Re: Problema con consulta SQL

Exacto..
Cuando usas la función mysql_fetch_array, los resultados de la consultas los llamas de esa forma $regs["nombre_campo"];
Con la función mysql_fetch_row, los resultados se llaman indexados, según la posición del campo en la base de datos:

regs[0] - "gbook"
regs[1] - "links"
regs[2] - "inicio"
...

| seccion | regs | status |
+--------+--------+--------+
|gbook | 5 | 0 |
|links | NULL | 1 |
|inicio | 5 | 1 |
|fant | 5 | 1 |
+--------+--------+--------+


saludos
  #11 (permalink)  
Antiguo 16/04/2007, 12:31
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 3 meses
Puntos: 7
Re: Problema con consulta SQL

Funcionó!!! muchas gracias amigos por su tiempo sinceramente les agradezco que hayan podido ayudarme, espero poder devolverles el favor algun día :D.
Saludos!!
__________________
I'm gonna start a revolution from my bed...
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 15:12.