Comunidad de diseño web y desarrollo en internet online

Problema con variables en PHP

Citar            
MensajeEscrito el 16 Jun 2008 07:54 am
Hola!
Desde el viernes pasado tengo el problema de que una linea de MySQL no me funciona por culpa de unas variables. Me explico:
Se trata de una paginación donde en una parte de codigo anterior, doy valores a $inicio y $registros. Luego la línea de MySQL quedaria asi:

Código :

$resultados2 = mysql_query('SELECT * FROM tabla WHERE activa="si" order by date_on desc LIMIT $inicio, $registros');


Pues bien, me da error por culpa de las dos variables del final. Si en vez de variables pongo valores numericos, si que funciona ( pero no es como debe funcionar ).

el error que me da es:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

y la version de php es la 5.

Gracias !

Por kanjirulo

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 16 Jun 2008 08:34 am
Escribe esto:

Código :

var_dump($inicio);
var_dump($registros);


Justo antes de mysql_query, veras que no tienen los valores que esperas...

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 16 Jun 2008 08:39 am
Si hubieras trabajado antes con JavaScript, nunca tendrías ese tipo de problemas, pues JS, no entiende las variables dentro de cadenas de texto.

Si te acostumbras a escribir siempre "bien", te ahorrarás muchos problemas, por ejemplo:

Código :

$string='texto primero '.$variable.' texto segundo';
Claro...
Esto sería tanto en JS, como en PHP.
Pero resulta que aparecen las "comillas dobles" (para facilitarnos la vida)
Y resulta que en PHP (en javascript, no), lo que escribas tras una "comilla doble", es interpretado de otra manera.
(no sé muy bien la teoría, pero sí la práctica)
De manera que equivalente a lo anterior, sería:

Código :

$string="texto primero $variable texto segundo";

Aún así, yo me acostumbré a escribir:

Código :

$string="texto primero ".$variable." texto segundo";


En resumen: en PHP, lo que se puede hacer con "comillas dobles", no se puede hacer con 'comillas simples'.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 16 Jun 2008 08:52 am
Cierto, se me paso eso... maldito sueño/cansancio. Las comillas simples se usan para texto plano, las comillas doblen si interpretan las variables.

En fin, voy a dormir antes de divagar más.

saludos

PD: cansacio=larga jornada de programación y ya son las 4am.

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 16 Jun 2008 09:02 am
info al visitante:
Las comillas dobles, también se usan cuando se hace uso de las Expresiones Regulares en PHP.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 16 Jun 2008 09:20 am
Soys unos cracks!

La línea correcta era:

$resultados2 = mysql_query("SELECT * FROM tabla WHERE activa='si' order by date_on desc LIMIT ".$inicio.",".$registros);

Gracias por hacerme entender correctamente el uso de las comillas simples y dobles...
Muy amables, gracias !
^^

Por kanjirulo

8 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.