Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 26/01/2010, 20h20   #1
Nouveau Membre du Club
 
bey kh
Inscription : janvier 2010
Messages : 78
Détails du profil
Informations personnelles :
Nom : bey kh

Informations forums :
Inscription : janvier 2010
Messages : 78
Points : 28
Points : 28
Par défaut Problème d'affichage avec if et for

Bonjour à tous,

Le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$verne = $_POST['dats'];
?>
<HTML><HEAD>
<TITLE>loli</TITLE>
</HEAD> <BODY>
<?php
mysql_connect("localhost","root","");
mysql_select_db('base1');
$reponse=mysql_query("select * from table1 ");
while ($donnees=mysql_fetch_array($reponse))
{
for ($i=$donnees['date_occ']; $i<=$donnees['date_lib']; $i++){}}
if ($i='$verne'){
echo 'cette date existe';}
else {echo 'existe pas';}
mysql_close();
?>
 
</BODY></HTML>
le problème du bloc c'est qu'il ne prend pas un compte le if ($i='$verne') et le else, il affiche à chaque fois le 1er message 'cette date existe' quelque soit la condition existe ou non.j'ai beaucoup essayer avec mais ça n'a pas marché...
si vous avez une solution aidez moi SVP

Dernière modification par ced ; 26/01/2010 à 22h13. Motif: Merci d'utiliser la balise [CODE] (bouton #)
menyarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2010, 22h56   #2
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 287
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 287
Points : 1 592
Points : 1 592
C'est un double == qu'il faut mettre et enlever les ' pour comparer le contenu d'une variable :
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 05h01   #3
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
Envoyer un message via Skype™ à hornetbzz
Même avec la correction nécessaire de Seb33300, tu auras de toutes façons le problème car tu n'as pas mis ton test sur "i" dans la boucle sur "i".
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 08h25   #4
Membre Expert
 
Avatar de Fench
 
Inscription : mai 2002
Messages : 1 570
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2002
Messages : 1 570
Points : 1 703
Points : 1 703
Bonjour,

Mis à part ton test (doit être ==) et qu'il n'est pas au bon endroit, j'ai une petite question

Lors de ton incrémentation, tu veux incrémenter quoi ? (des jours )
__________________
Actuellement AI à l'INRA
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 18h32   #5
Nouveau Membre du Club
 
bey kh
Inscription : janvier 2010
Messages : 78
Détails du profil
Informations personnelles :
Nom : bey kh

Informations forums :
Inscription : janvier 2010
Messages : 78
Points : 28
Points : 28
Lors de ton incrémentation, tu veux incrémenter quoi ?
incrémenter une date..
si je mis == il afiche uniquement le 2eme résultat quelque soit la condition true or false. vous savez c un bloc fou

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
  $verne = $_POST['dats'];
?>
<HTML><HEAD>
<TITLE>khavile</TITLE>
</HEAD> <BODY>
<?php
mysql_connect("localhost","root","");
mysql_select_db('hotel');
$reponse=mysql_query("select * from chambre ");
while ($donnees=mysql_fetch_array($reponse))
{
for ($i=$donnees['date_occ'];$i<=$donnees['date_lib'];$i++){}}
   //le probléme commence d'ici
if ($i==$verne){
echo 'il ya des chambres disponibles';
}
else {
echo 'pas disponible';
}
mysql_close(); 
?>
 
</BODY></HTML>
menyarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 20h33   #6
Membre émérite
 
Inscription : juillet 2005
Messages : 775
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : juillet 2005
Messages : 775
Points : 858
Points : 858
Envoyer un message via AIM à ouatmad Envoyer un message via MSN à ouatmad Envoyer un message via Yahoo à ouatmad
Salut,
je crois que ton problème vient de ta boucle for. tu fais absolument rien à l'intérieur des accolades. de ce fait, la variable $i contient le dernier élement du tableau $donnee (obtenu en fetchant une requete sql).
Tu pourrais faire un truc du genre
Code :
1
2
3
4
5
6
7
8
9
 
while ($donnees=mysql_fetch_array($reponse))
{
  if ($donnees['date_occ']==$verne){
   //faire traitement
  }else{
  //autre traitement
  }
}
__________________
Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789
ouatmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 20h34   #7
Membre Expert
 
Avatar de Fench
 
Inscription : mai 2002
Messages : 1 570
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : mai 2002
Messages : 1 570
Points : 1 703
Points : 1 703
Désolé mais dans les remarques du post, hornetbzz, t'a dit que le IF n'est pas dans la boucle

Donc au moins le code serait:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
<?php
  $verne = $_POST['dats'];
?>
<HTML><HEAD>
<TITLE>khavile</TITLE>
</HEAD> <BODY>
<?php
mysql_connect("localhost","root","");
mysql_select_db('hotel');
$reponse=mysql_query("select * from chambre ");
while ($donnees=mysql_fetch_array($reponse))
{
for ($i=$donnees['date_occ'];$i<=$donnees['date_lib'];$i++){
 
   // je mets une parenthése sur le ++
    if ($i==$verne){
        echo 'il ya des chambres disponibles';
    }
    else {
        echo 'pas disponible';
    }
}
}
mysql_close(); 
?>
 
</BODY></HTML>
Pour la (), vu le code la date n'est peut être une date sans vouloir te vexer car le but du forum est de t'aider

Edit : désolé le post écrit en même temps
__________________
Actuellement AI à l'INRA
fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)
Fench est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 22h03   #8
Nouveau Membre du Club
 
bey kh
Inscription : janvier 2010
Messages : 78
Détails du profil
Informations personnelles :
Nom : bey kh

Informations forums :
Inscription : janvier 2010
Messages : 78
Points : 28
Points : 28
Merci pour vos réponses. Pas encore de résultat positif j'ai même essayer avec switch et tjrs le même souci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
  $verne = $_POST['dats'];
?>
<HTML><HEAD>
<TITLE>verification disponibilité</TITLE>
</HEAD> <BODY>
<?php
mysql_connect("localhost","root","");
mysql_select_db('base1');
$reponse=mysql_query("select * from table1 ");
while ($donnees=mysql_fetch_array($reponse))
{}
for ($i=$donnees['date_occ'];$i<=$donnees['date_lib'];++$i){}
switch($i){
case $verne: 
echo 'disponibles';
break;
default:
echo 'non disponible';
}
mysql_close(); 
?>
 
</BODY></HTML>
menyarito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2010, 23h58   #9
Membre émérite
 
Inscription : juillet 2005
Messages : 775
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : juillet 2005
Messages : 775
Points : 858
Points : 858
Envoyer un message via AIM à ouatmad Envoyer un message via MSN à ouatmad Envoyer un message via Yahoo à ouatmad
pourrais tu STP lire les remarques que l'on te fais a propos de ton code. ce sont les même erreurs que tantot. à savoir que ton bloc de comparaison ne se trouve pas dans ta boucle. normal q ça donne pas de bon résultat.
Par ailleurs, ton code contient des choses inutilles genre une boucle while pour rien faire et ensuite une boucle for.
se que je te conseil, c'est de raisonner de façon algorithmique d'abord avant de poser le code.
si tu cherches une date valide parmi un ensemble de résultat, fais ceci.
Code :
1
2
3
4
5
6
7
8
var_a_chercher="12/12/2010"
tant que (donnee=ensemble_resultat) faire  {
   si (donnee[champ1] = var_a_chercher alors{
       afficher("trouve")
   }sinon{
       afficher("non trouvé")
   }
}
__________________
Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789
ouatmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2010, 02h23   #10
Membre éprouvé
 
Avatar de guigo
 
Inscription : juin 2006
Messages : 606
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 606
Points : 479
Points : 479
Un bon post est une bonne réponse....
Explique ton sujet en français, l'objectif de ta fct...
Et effectivement une réponse algorithmique peut suffire (puis une correction de code éventuellement), car on apprend pas sans rien faire :-).
Le principal est de bien définir le sujet, même pour toi la résolution deviendra évidente... (enfin des fois ;-))
guigo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 20h43.


 
 
 
 
Partenaires

Hébergement Web