probleme de date et le format SQL

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme de date et le format SQL

par fanette » 04 janv. 2007, 20:43

En faite j'ai encore un probleme

ma requete
$result = "SELECT * FROM agenda WHERE yeardebut = '$dateFormatee' AND region BETWEEN '1' AND '22' ORDER BY id DESC";
ne me renvoi que 1 enregistrement alors qu'il devrai en avoir 4 ... :cry:

merci de votre aide

par Invité » 04 janv. 2007, 20:35

Oups erreur de ma part j'ai coriger

Code : Tout sélectionner

BETWEEN '1' AND '22'

par fanette » 04 janv. 2007, 20:23

Re bonsoir !

Alors j'ai tester et la date marche cependant j'ai du mal avec cette conditions que si mon GET = fr

sa ne marche pas

et je ne vois pas d'ou sa viens ?

Code : Tout sélectionner

if($_GET['region'] == 'fr') { $result = "SELECT * FROM agenda WHERE yeardebut = '$dateFormatee' AND region BETWEEN '1' AND '2' AND '3' AND '4' AND '5' AND '6' AND '7' AND '8' AND '9' AND '10' AND '11' AND '12' AND '13' AND '14' AND '15' AND '16' AND '17' AND '18' AND '19' AND '20' AND '21' AND '22' ORDER BY id DESC"; $result2 = mysql_query($result); } else { $result = "SELECT * FROM agenda WHERE yeardebut = '$dateFormatee' AND region = '$_GET[region]' ORDER BY id DESC"; $result2 = mysql_query($result); }

par Ajoloca » 03 janv. 2007, 01:03

Bien, on va résoudre le PB autrement
On procède pas à pas.
if($mois < 10) {
   $moi = '0' . $mois;
}
if($jour < 10) {
   $jour = '0' . $jour;
}
$dateFormatee = $annee . '-' . $mois .'-' . $jour;
$qry = "SELECT * FROM agenda WHERE yeardebut = '" . $dateFormatee ."' AND region BETWEEN '1' AND '22';

par Invité » 03 janv. 2007, 00:42

Je sais pas ci c'est cela mais je viens de lire

STR_TO_DATE existe depuis la version 4.1.1

1 and 1 la version de SQL je sais pas mais je croit que c'est : Client API version 4.0.25

:s

par Ajoloca » 03 janv. 2007, 00:41

Montre nous le contenu de ta table (5 ou 6 lignes)
Tu peut l'obtenir par

Code : Tout sélectionner

SELECT * FROM agenda ORDER BY id LIMT 0, 5;

par fanette » 03 janv. 2007, 00:36

La requete ne me donne aucun resultat alors que j'ai un enregistrement avec region = 4 et a la date du 12 janvier 2007

par Ajoloca » 03 janv. 2007, 00:28

Re,
Je ne vois pas comment t'aider si tu t'acharnes à ne pas faire ce que je te demande ???

par Invité » 03 janv. 2007, 00:24

C'etais cette requete :
$result = "SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('$c_annee-$c_mois-$jour', '%Y-%m-%d') AND region = '$_GET[region]' ORDER BY id DESC"

par fanette » 03 janv. 2007, 00:23

Je vais mettre la couble aussi que j'ai apres la requete
if($_GET['region'] == 'fr') {
$result = "SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('$c_annee-$c_mois-$jour', '%Y-%m-%d') AND region = '1' AND region  = '2' AND region = '3' AND region = '4' AND region = '5' AND region = '6' AND region = '7' AND region = '8' AND region = '9' AND region = '10' AND region = '11' AND region = '12' AND region = '13' AND region = '14' AND region = '15' AND region = '16' AND region = '17' AND region = '18' AND region = '19' AND region = '20' AND region = '21' AND region = '22' ORDER BY id DESC";

$result2 = mysql_query($result);
}

if($_GET['region'] <> 'fr') {
$result = "SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('$annee-$mois-$jour', '%Y-%m-%d') AND region = '$_GET[region]' ORDER BY id DESC";
$result2 = mysql_query($result);
}


while ($c=@mysql_fetch_array($result2)) {

echo "<a href=\"$jour-$c_mois-$c_annee-$region-$c[id].html\">$c[yeardebut] - $c[nomsoiree]</a>";
}

?>

par Ajoloca » 03 janv. 2007, 00:21

Re,
Quel est le résultat de cette requête
SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('2007-1-12', '%Y-%m-%d') AND region = '4' ORDER BY id DESC
quand tu l'exécutes sur le serveur ???

par Invité » 03 janv. 2007, 00:17

Je l'execute sur mon serveur 1and1 c'est pareil que phpmyadmin ?

Sinon pouir AND et OR je sais pas trops en faite je voudrai que si GET = fr alors sa me prenne toute les region qui sont egal a 1 et 2 et 3 et 4 etc ...

par Ajoloca » 03 janv. 2007, 00:07

Re,

Tu ne réponds pas à ma question !!!
COPIE/COLLE TA REQUÊTE ET EXÉCUTE-LA SOUS phpMyAdmin ou bien avec le client MySQL.

Tu est sur que toutes tes conditions doivent être remplies ensemble.
Tu ne confondrait pas AND et OR ???

par fanette » 03 janv. 2007, 00:01

Re bonsoir

ALors en faite voici le code complet je lavai reduit afin qu'il soit + comphrehensible
if($_GET['region'] == 'fr') {
$result = "SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('$c_annee-$c_mois-$jour', '%Y-%m-%d') AND region = '1' AND region  = '2' AND region = '3' AND region = '4' AND region = '5' AND region = '6' AND region = '7' AND region = '8' AND region = '9' AND region = '10' AND region = '11' AND region = '12' AND region = '13' AND region = '14' AND region = '15' AND region = '16' AND region = '17' AND region = '18' AND region = '19' AND region = '20' AND region = '21' AND region = '22' ORDER BY id DESC";
$result2 = mysql_query($result);
}

[php]SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('2007-1-12', '%Y-%m-%d') AND region = '1' AND region = '2' AND region = '3' AND region = '4' AND region = '5' AND region = '6' AND region = '7' AND region = '8' AND region = '9' AND region = '10' AND region = '11' AND region = '12' AND region = '13' AND region = '14' AND region = '15' AND region = '16' AND region = '17' AND region = '18' AND region = '19' AND region = '20' AND region = '21' AND region = '22' ORDER BY id DESC
if($_GET['region'] <> 'fr') {
$result = "SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('$c_annee-$c_mois-$jour', '%Y-%m-%d') AND region = '$_GET[region]' ORDER BY id DESC";
$result2 = mysql_query($result);
}[/php]
SELECT * FROM agenda WHERE yeardebut = STR_TO_DATE('2007-1-12', '%Y-%m-%d') AND region = '4' ORDER BY id DESC
donc voici tous le code ... avec les resulat afficher avec un echo

par Ajoloca » 02 janv. 2007, 23:52

Re,
Tu es sur que cette requête génère le code que tu montres ???
Avec ceci
AND region = '1' OR region  = '2' OR region = '3'
J'ai beaucoup de mal à croire que ça génère ceci
AND region = '6' 
Sinon, as tu fait ce que je t'ai demandé ???
Exécuter ta requête sous phpMyAdmin ou bien sous le client MySQL.