Foros del Web » Programando para Internet » PHP »

Problema consulta de mysql

Estas en el tema de Problema consulta de mysql en el foro de PHP en Foros del Web. Buenas, tengo un pequeño problema al hacer una consulta de mysql por php, os dejo el cógido y los esquemas para que lo comprendais mejor. ...
  #1 (permalink)  
Antiguo 01/12/2011, 17:54
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 4 meses
Puntos: 0
Problema consulta de mysql

Buenas, tengo un pequeño problema al hacer una consulta de mysql por php, os dejo el cógido y los esquemas para que lo comprendais mejor. En resumen hay un problema en la consulta ya que me devuelve un valor vacio aún estando la conexión a la base de datos bien hecha (así me lo dice la página con la confirmación y los echos de abajo). Si puediesen darme pistas de que debo cambiar me sería de gran ayuda ya que llevo toda la tarde con esto que seguramente sea una tonteria de resolver. Gracias.


BASE DE DATOS:

Tabla: sub_cats
Campo1: sub_cats | Valor: Musica
Campo2: carpeta_sub | Valor: /musica/


URL:
template.php?sub=Musica

PHP: (resumido para que se entienda la idea)
Código PHP:
define("TBL_IMG_SUBS",  "sub_cats");

$subcat $_GET['sub']; 

$peticion = ("SELECT carpeta_sub FROM ".TBL_IMG_SUBS." WHERE subcategoria = $subcat");

$dir_sub mysql_query($peticion,$link); 

$arbol $_SERVER['DOCUMENT_ROOT']."/";

$i_carpeta $arbol $dir_sub 
Y esto es lo que me da al hacer echos de cada cosa para ver donde hay fallos, al hacer la consulta no me devuelve nada, aunque cambie el carpeta_sub por otro campo que tengo que es solo texto me sigue siendo nulo.

echo $subcat = Musica
echo $peticion = SELECT carpeta_sub FROM sub_cats WHERE subcategoria = Musica
echo $dir_sub = (nada)
echo $i_carpeta = C:/xampp/htdocs/(nada)
  #2 (permalink)  
Antiguo 01/12/2011, 18:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema consulta de mysql

Lo que sucede es que mysql_query() jamas devuelve un valor de la tabla, necesitas hacer fetching sobre el resultado para extraer lo que necesites.

Por favor busca en el foro temas similares para que te des cuenta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 01/12/2011, 18:07
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 7 meses
Puntos: 297
Respuesta: Problema consulta de mysql

El problema lo tienes en la propia consulta como afirmas, ya que estás diciendo: "donde música es igual a subcategoría" y en dicha tabla no existe "subcategoría", por lo tanto no se cumple la preguta y no da resultado, o sea, tienes que sustituir "subcategoría" por "sub_cats":

Código SQL:
Ver original
  1. SELECT carpeta_sub FROM ".TBL_IMG_SUBS." WHERE sub_cats = $subcat"
  #4 (permalink)  
Antiguo 01/12/2011, 18:08
Avatar de richicasas  
Fecha de Ingreso: abril-2007
Ubicación: Colombia
Mensajes: 692
Antigüedad: 17 años
Puntos: 13
De acuerdo Respuesta: Problema consulta de mysql

En el WHERE debes usar comillas para los strings WHERE campo = 'palabra'.
Aunque revisa si existe el campo subcategoria como dice hasdpk.
__________________
Juguetes Sexuales
  #5 (permalink)  
Antiguo 01/12/2011, 18:20
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema consulta de mysql

Gracias a todos por contestar tan rápido.

@pateketrueke: Creo que tiene todo el sentido del mundo, miraré lo que me has dicho y responderé con el código completo arreglado. Muchas gracias +1.

@hasdpk: He probado tu sql pero me devuelve esto, sb_cats es la tabla, y subcategoria el nombre. Gracias igualemente

Código PHP:
SELECT carpeta_sub FROM sub_cats WHERE sub_cats Indie 
@richicasas: Creo que he probado casi todas las variantes posibles: las comillas simples, el LIKE, ... con idéntico resultado, gracias por aportar.
  #6 (permalink)  
Antiguo 01/12/2011, 18:35
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema consulta de mysql

Mirando post de la web me he encontrado con uno que tu mismo preguntabas por hacer la consulta en la phpmyadmin, por si acaso yo lo adelanto a ver si puede ser tema de la consulta

SELECT `carpeta_sub` FROM `sub_cats` WHERE `subcategoria` = `Musica`

Me salta el siguiente error = #1054 - Unknown column 'Musica' in 'where clause'

Pd. Recuerdo que lo que quiero sacar es el valor /musica/ del campo carpeta_sub
  #7 (permalink)  
Antiguo 01/12/2011, 18:43
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema consulta de mysql

He usado el siguiente código:

Código PHP:
 $sql "SELECT carpeta_sub FROM ".TBL_IMG_SUBS." WHERE subcategoria = $subcat";
 
$consulta mysql_query($sql) or die(mysql_error());
 
$row mysql_fetch_array($consulta); 
var_dump($sql$row); 

$i_carpeta $arbol $row 
Al final la página me saca el siguiente error: Unknown column 'Musica' in 'where clause'


Esta es la base de datos:

TABLA: sub_cats
id_sub | subcategoria | descripcion_sub | carpeta_sub | id_cat
1 | Indie | Música total | /musica/ | 1


(Gracias por lel consejo xDDD a lo del fetch no habría llegado ni de coña XD)

Última edición por QIDH_php; 01/12/2011 a las 18:50
  #8 (permalink)  
Antiguo 01/12/2011, 22:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema consulta de mysql

Supongo que te hacen falta las comillas del valor de $subcat

Cita:
Iniciado por richicasas Ver Mensaje
En el WHERE debes usar comillas para los strings WHERE campo = 'palabra'.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 02/12/2011, 02:04
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema consulta de mysql

Poniendo la consulta:
"SELECT carpeta_sub FROM ".TBL_IMG_SUBS." WHERE subcategoria = '$subcat'"
Obtengo de la consulta:
string(61) "SELECT carpeta_sub FROM sub_cats WHERE subcategoria = 'Musica'" array(2) { [0]=> string(12) "/musica/" ["carpeta_sub"]=> string(12) "/musica/" }
Es decir, la carpeta donde está buscando ahora es: "C:/xampp/htdocs/Array"
  #10 (permalink)  
Antiguo 02/12/2011, 02:26
 
Fecha de Ingreso: noviembre-2011
Mensajes: 9
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Problema consulta de mysql

He estado probando otros códigos y he encontrado la solución, el problema no estaba en la SQL si no en hacer un bucle. Gracias por la ayuda.


El código definitivo es:

Código PHP:
define("TBL_IMG_SUBS",  "sub_cats");


$arbol $_SERVER['DOCUMENT_ROOT'];
$subcat $_GET['sub']; 


$consulta_ig mysql_query("SELECT carpeta_sub FROM ".TBL_IMG_SUBS." WHERE subcategoria = '$subcat'"); /
while (
$registro mysql_fetch_array($consulta_ig)) {

$i_carpeta $registro['carpeta_sub'] ; 
$s_carpeta $arbol $registro['carpeta_sub'] ; 

}
mysql_free_result($consulta_ig); 

Etiquetas: consulta-sql, vacio
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 16:21.