Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Cadena en php

Estas en el tema de Cadena en php en el foro de PHP en Foros del Web. Buenos días compañeros, Tengo una duda que creo que es de lo más tonta: Tengo la siguiente consulta desde php: Código: $comparacion= 'A330 - 200 ...
  #1 (permalink)  
Antiguo 17/10/2014, 01:05
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 0
Cadena en php

Buenos días compañeros,

Tengo una duda que creo que es de lo más tonta:

Tengo la siguiente consulta desde php:

Código:
$comparacion= 'A330 - 200 COURSE';
		$link = mysql_query( " SELECT * FROM `cursos` WHERE `COURSE_NAME`=".$comparacion."");
		$fila = mysql_fetch_array($link);
		echo ($fila['AHREF']);
En este caso me da un error, por la variable $comparación.
Si en vez de poner la variable $comparacion, pongo directamente:

Código:
$link = mysql_query( " SELECT * FROM `cursos` WHERE `COURSE_NAME`='A330 - 200 COURSE'");
Sí que me sale la consulta y obtengo lo que busco . Por favor, ¿alguien podría decirme qué estoy haciendo mal?

Muchísimas gracias!
  #2 (permalink)  
Antiguo 17/10/2014, 02:00
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Cadena en php

Código PHP:
Ver original
  1. $comparacion= "A330 - 200 COURSE";
  2. $link = mysql_query( "SELECT * FROM `cursos` WHERE `COURSE_NAME`='".$comparacion."';");
  3. $fila = mysql_fetch_array($link);
  4. echo ($fila['AHREF']);

Muestra que error te da....peropuede ser por los delimitadores en la query.

En realidad intentabas ejecutar esto

SELECT * FROM `cursos` WHERE `COURSE_NAME`=A330 - 200 COURSE

no esto

SELECT * FROM `cursos` WHERE `COURSE_NAME`='A330 - 200 COURSE'
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 17/10/2014, 02:34
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Cadena en php

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\flowrole11_Test.php on line 88
Call Stack
# Time Memory Function Location
1 0.0017 385296 {main}( ) ..\flowrole11_Test.php:0
2 0.0075 392480 mysql_fetch_array ( ) ..\flowrole11_Test.php:88

Ese es el mensaje de error que me da.
Gracias!
  #4 (permalink)  
Antiguo 17/10/2014, 02:52
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Cadena en php

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\flowrole11_Test.php on line 88
Call Stack
# Time Memory Function Location
1 0.0017 385296 {main}( ) ..\flowrole11_Test.php:0
2 0.0075 392480 mysql_fetch_array ( ) ..\flowrole11_Test.php:88

Ese es el mensaje de error que me da.
Gracias!
  #5 (permalink)  
Antiguo 17/10/2014, 04:32
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Cadena en php

Manual

Cita:
mysql_query

Para SELECT, SHOW, DESCRIBE, EXPLAIN y otras sentencias que retornan un conjunto de resultados, mysql_query() devuelve un resource en caso de éxito, o FALSE en caso de error.
De lo que deducimos que la query que estas ejecutado tiene algun error, ya que es el unico caso que mysql_query retorna un boleano (VERDADERO o FALSO en este caso FALSO).

Código PHP:
Ver original
  1. $comparacion= "A330 - 200 COURSE";
  2. $link = mysql_query( "SELECT * FROM `cursos` WHERE `COURSE_NAME`='".$comparacion."';");
  3.  
  4. //Debe ser exactamente lo que tienes dentro del parentesis de mysql_query mas el salto de linea
  5. echo "SELECT * FROM `cursos` WHERE `COURSE_NAME`='".$comparacion."';<br />";
  6.  
  7. $fila = mysql_fetch_array($link);
  8. echo ($fila['AHREF']);

Ahora veras que query estas intentando ejecutar, corrigela o posteala.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #6 (permalink)  
Antiguo 17/10/2014, 05:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cadena en php

Vamos a ver si queda claro así:
Cuando haces esto que pones en el primer post:
Código PHP:
Ver original
  1. $comparacion= 'A330 - 200 COURSE';
  2. $link = mysql_query( " SELECT * FROM `cursos` WHERE `COURSE_NAME`=".$comparacion."");
lo que MySQL recibe es:
Código MySQL:
Ver original
  1. SELECT * FROM `cursos` WHERE `COURSE_NAME`=A330 - 200 COURSE
y lo que debe recibir es esto:
Código MySQL:
Ver original
  1. SELECT * FROM `cursos` WHERE `COURSE_NAME`='A330 - 200 COURSE'

¿Queda clara la diferencia?

En tu código inicial no estas indicando que eso es una cadena de texto, y tienes que recordar que PHP y MySQL son independientes. MySQL no entiende ni lee variables de PHP, por lo que no "sabe" que eso es una cadena de texto. Para que la interprete como tal debe estar forzosamente entre apóstrofos (').
Por eso @quimvf te lo plantea como:
Código PHP:
Ver original
  1. $link = mysql_query( "SELECT * FROM `cursos` WHERE `COURSE_NAME`='".$comparacion."';");
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 17/10/2014, 06:03
 
Fecha de Ingreso: febrero-2013
Ubicación: Madrid
Mensajes: 25
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Cadena en php

Gracias a todos por vuestra ayuda!!!!! Ha quedado clarísimo!!

Etiquetas: Ninguno
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 22:36.