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
Invité régulier
 
Nom : bey kh
Date d'inscription: janvier 2010
Messages: 10
Par défaut Problème d'affichage avec if et for

Bonjour à tous,

Le code:
Code :
<?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
Vieux 26/01/2010, 22h56   #2
Membre émérite
 
Avatar de Seb33300
 
Nom : Sébastien A.
Date d'inscription: janvier 2007
Localisation: Bordeaux
Âge: 24
Messages: 984
Par défaut

C'est un double == qu'il faut mettre et enlever les ' pour comparer le contenu d'une variable :
Code :
if ($i==$verne){
__________________
« 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
Vieux 27/01/2010, 05h01   #3
Relecteur
 
Avatar de hornetbzz
 
Date d'inscription: octobre 2009
Localisation: IdF
Messages: 256
Par défaut

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
Vieux 27/01/2010, 08h25   #4
Expert Confirmé
 
Avatar de Fench
 
Date d'inscription: mai 2002
Localisation: Auvergne
Messages: 1 567
Par défaut

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
Vieux 27/01/2010, 18h32   #5
Invité régulier
 
Nom : bey kh
Date d'inscription: janvier 2010
Messages: 10
Par défaut

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 :
<?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
Vieux 27/01/2010, 20h33   #6
Membre émérite
 
Date d'inscription: juillet 2005
Localisation: Québec City
Âge: 27
Messages: 785
Envoyer un message via AIM à ouatmad Envoyer un message via MSN à ouatmad Envoyer un message via Yahoo à ouatmad
Par défaut

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 :
 
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
Vieux 27/01/2010, 20h34   #7
Expert Confirmé
 
Avatar de Fench
 
Date d'inscription: mai 2002
Localisation: Auvergne
Messages: 1 567
Par défaut

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 :
 
<?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
Vieux 27/01/2010, 22h03   #8
Invité régulier
 
Nom : bey kh
Date d'inscription: janvier 2010
Messages: 10
Par défaut

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 :
<?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
Vieux 27/01/2010, 23h58   #9
Membre émérite
 
Date d'inscription: juillet 2005
Localisation: Québec City
Âge: 27
Messages: 785
Envoyer un message via AIM à ouatmad Envoyer un message via MSN à ouatmad Envoyer un message via Yahoo à ouatmad
Par défaut

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 :
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
Vieux 28/01/2010, 02h23   #10
Membre éprouvé
 
Avatar de guigo
 
Date d'inscription: juin 2006
Messages: 418
Par défaut

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
NEWS PHPFAQ PHPCours PHPSources PHPLivres PHPScripts PHPOutils PHPComparatifsZend Framework

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 14h09.


Vos questions techniques : forum d'entraide PHP - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.