2010-07-31 4 views
0

J'ai écrit un simple formulaire de recherche mysql qui recherche entre deux dates. Cette requête de travail parfait:"LIKE" dans mysql

$sql = "SELECT * FROM table WHERE dateStarted like '%$checkin%' 
AND dateEnded like '%$checkout%'"; 

Mais avec

$sql2 = "SELECT * FROM table WHERE dateStarted = $checkin 
AND dateEnded = $checkout"; 

Il n'y a pas de résultat? Quelle est la différence entre deux sql?

Edit:

$checkin and $checkout are date (16-07-2010) 

Merci à l'avance

+0

1) Quel type de données utilisez-vous pour dateStarted? 2) Quel est le contenu des variables $ checkin et $ checkout? –

+0

$ checkin et $ checkout sont date (16-07-2010) – TheNone

+1

Vous devez écrire la date dans le bon format: AAAA-MM-JJ. –

Répondre

4

checkin $ et $ checkout sont la date (16-07-2010)

Essayez de mettre des citations dans votre requête:

$sql2 = "SELECT * FROM table WHERE dateStarted = '$checkin' 
     AND dateEnded = '$checkout'"; 
+0

oui citations, les dates ne sont pas nombre! Merci – TheNone

+0

@phpExe: Vous êtes les bienvenus ... – Sarfraz

2

Un correspond à la valeur de la variable checkin $, l'autre correspond à tout contenant la valeur de la variable checkin $. Donc, si $ checkin est foo, alors le premier correspond à "foo" ou "quelque chose foosomething" tandis que le second ne correspondra qu'à "foo".

-2

"comme" est pour le texte et « = "pour les nombres et ainsi de suite

+1

Pas du tout le cas. Apprenez MySQL avant de faire de tels commentaires. –

+0

Je viens de répéter les mots de mon professeur ... ce n'est pas seulement à propos de mysql son sur le trou pense comme DB. Oui, vous pouvez rechercher des numéros avec "j'aime" mais ce n'est pas clair ... –