Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2775 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] if... else... while.. boucle.. sos....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] if... else... while.. boucle.. sos....

n°55022
Profil sup​primé
Posté le 24-08-2001 à 14:10:55  answer
 

voici ma boucle :
 
while ($row1 = mysql_fetch_object($req1))
{
  $row1->id_cat = $row1->id_cat - 1;  
  if ($nb == "" )
  {
    $nb = 0;
    echo "nb est à 0<br>";
    $nb1 = 0;
    echo "nb1 est à 0<br>";    
  }
  else
  {
    if ($row1->id_cat == $nb)
    {
      $nb1 = $nb1 + 1;
      echo "on rajoute 1 à nb1<br>";    
    }
    else
    {
      $nb = $nb + 1;
      echo "on rajoute 1 à nb<br>";
      $nb1 = 0;
      echo "nb1 est à 0<br>";
    }
  }
  $ligne = "zlien["."$row1->id_cat"."]["."$nb1"."] = '<A HREF=\"..\materiels\matos_gen.php3?sscat="."$row1->id_sscat"."\" CLASS=ejsmenu>"."$row1->nom_sscat"."</A>';\n";
  echo $ligne;
  echo "<br><br>";
  $menu_centre .= $ligne;
}  
 
 
et voici ce que j'obtiens :
 
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'Divers Divers Diversccccc';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'azedazdezad';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'ffdfdfdfeffezzef';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'Divers Divers Divers Divers';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'ffdfdfdfeffezzefdddddd';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'ffdfdfdfeffezzefd';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'sdfsdfsdfdf';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = 'Divers Ecrans';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = '14 pouces';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = '15 pouces';  
 
nb est à 0
nb1 est à 0
zlien[0][12] = '17 pouces';  
 
nb est à 0
nb1 est à 0
zlien[1][12] = 'Divers Boîtiers';  
 
nb est à 0
nb1 est à 0
zlien[1][12] = 'Mini-tour';  
 
 
comme si la variable $nb était réinitialisée à chaque début de while..... c normal... y'a un truc que j'aimal fait mais quoi ? je pige pas là....
 
merci les copines,
Elcap :):):)
 
PS : comme vous le voyez je suis toujours sur mon site sur le hardware:):):)

mood
Publicité
Posté le 24-08-2001 à 14:10:55  profilanswer
 

n°55043
youdontcar​e
Posté le 24-08-2001 à 14:35:15  profilanswer
 

oui c'est normal, tu ne l'initialises jamais.
 
if ($nb == "" ) // $nb non initialisé donc ($nb == "" ) == true
{
  $nb = 0; // donc ($nb == "" ) == true
}
else
{
 // un gros bloc else par lequel php ne passera jamais car la condition plus haut est toujours vérifiée.
}

n°55048
Profil sup​primé
Posté le 24-08-2001 à 14:43:14  answer
 

ben oui mais la première fois....  
if ($nb == "" ) // $nb non initialisé donc ($nb == "" ) == true  
{  
 $nb = 0; // donc ($nb == "" ) == true  
}  
 
est normal... c ce que je veux...
 
mais je ne savais pas que  
 $nb = 0; // donc ($nb == "" ) == true  
 
considérant que je pensais que "" était différent de 0....
tu vois ce que je veux faire ?
 
comment le contourner ?

n°55049
youdontcar​e
Posté le 24-08-2001 à 14:45:45  profilanswer
 

si tu veux juste initialiser $nb, tu peux faire ton premier test avec isset(). if (!isset($nb)) ...

n°55184
Profil sup​primé
Posté le 25-08-2001 à 16:29:06  answer
 

pourtant je change le contenu de la variable en faisant $nb = 0; s'il est vide ("" ) ou $nb = 0; si $row1->id_cat est différent de $nb
 
donc il ne peut être égal à rien que la première fois que la boucle est lancée.. ensuite il est au moins égalà 0 mais pas à rien...
 
cela veut-il dire que $nb est remis à "vide" à chaque fin de boucle ???

n°55186
gizmo
Posté le 25-08-2001 à 16:54:22  profilanswer
 

non, parce qu'en php, tu as une traduction de type dynamique. quand tu écris $nb=="" il considère que $nb est un string, or le string "" est aussi représenté par 0.

n°55289
Profil sup​primé
Posté le 26-08-2001 à 17:22:06  answer
 

hmm.... fais chier... alors comment faire ?? en partant de 1 au lieu de 0 pour faire mes comparaisons ? ensuite (puique j'utilise la valeur 0) je ferai $bn - 1 (qui le ramèenra à 0)
 
bref, je comprend mieux... merci :)

n°55290
youdontcar​e
Posté le 26-08-2001 à 17:31:18  profilanswer
 

isset() ! ça teste si la variable est initialisée (si on lui à déjà affecté une valeur).

n°55293
Profil sup​primé
Posté le 26-08-2001 à 17:37:07  answer
 

ha oui, j'avais squiizzé ton msg :))
 
merci, je vais faire comme ça :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] if... else... while.. boucle.. sos....

 

Sujets relatifs
[PHP] Variable d'environnement REMOTE_PORT[PHP] Comment copier une page html ?
[PHP] Problème d'accès à un fichier distant avec include()[PHP] upload d´un fichier
[PHP] envoi d'un double formulaire.[PHP/Algo] Calendrier
[PHP]fonction XOR[PHP] Variables HTTP_*_VARS
ASP ou PHP uh??[PHP] J'y arrive po avec les appels de fct :((
Plus de sujets relatifs à : [PHP] if... else... while.. boucle.. sos....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR