If /elseif

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 : If /elseif

par mere-teresa » 04 juil. 2005, 17:12

Avant les if/else/etc... fais un echo $result....

par lf » 04 juil. 2005, 16:54

non, ce n'est pas un décompte. Je me retrouve avec toutes les valeurs possibles: tous les if et elseif sont affichés séparés d'un zéro.

par lf » 04 juil. 2005, 16:34

avec le switch j'obtiens un truc bizarre qui n'existe pas dans ma base: 10.5010.509.508.50. ça ressemble à un décompte, non?

par mere-teresa » 04 juil. 2005, 16:07

Pour tester un intervalle il faut faire 2 fois les tests de comparaison

SI x > a AND x < b
et non pas b>x AND >a et c'est ça qui n'allait pas dans ton 1er script, il me semble.
elseif ($result > 48 and < 72) {
Je te propose donc, avec un IF [/quote]
<?php 
$mysql_link = mysql_connect('localhost','XX','X');
$requete = 'SELECT cp_cycleLESC_Qt FROM cycleLESC;';
$result = mysql_db_query('CP', $requete);

if($result < 24) {
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete1 = 'SELECT cp_prod_pu FROM produits WHERE cp_prod_id=1;';
$result1 = mysql_db_query('CP', $requete1);
$valeur_aff1 = mysql_fetch_array($result1);
echo $valeur_aff1[cp_prod_pu];
}
elseif($result > 24 AND $result < 48) {
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete2 = 'SELECT cp_prod_pu1 FROM produits WHERE cp_prod_id=1;';
$result2 = mysql_db_query('CP', $requete2);
$valeur_aff2 = mysql_fetch_array($result2);
echo $valeur_aff2[cp_prod_pu1];
}
elseif($result < 72 AND $result > 48){
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete3 = 'SELECT cp_prod_pu2 FROM produits WHERE cp_prod_id=1;';
$result3 = mysql_db_query('CP', $requete3);
$valeur_aff3 = mysql_fetch_array($result3);
echo $valeur_aff3[cp_prod_pu2];
}
esleif($result > 72)
 {
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete4 = 'SELECT cp_prod_pu3 FROM produits WHERE cp_prod_id=1;';
$result4 = mysql_db_query('CP', $requete4);
$valeur_aff4 = mysql_fetch_array($result4);
echo $valeur_aff4[cp_prod_pu3];
}else{
echo "aucun des autres cas";

}
?>

par ouckileou » 04 juil. 2005, 16:06

les balises PHP !

bon, essaye quelque chose comme ça
switch (true) {
   case $result<24:
      $mysql_link1 = mysql_connect('localhost','XX','X');
            $requete1 = 'SELECT cp_prod_pu FROM produits WHERE cp_prod_id=1;';
      $result1 = mysql_db_query('CP', $requete1);
      $valeur_aff1 = mysql_fetch_array($result1);
      echo $valeur_aff1[cp_prod_pu];} 

par zeus » 04 juil. 2005, 16:06

Si si, switch accepte bien les <, <=, >, >=

Code : Tout sélectionner

switch (TRUE){ case ($v_BAL <= 0): //less then 0 , -0 echo $v_BAL; break; case ($v_BAL <= 10 AND $v_BAL >= 1): //less then 10 and greater then 1 echo $v_BAL; break; default: //default echo $v_BAL; break; }
Il suffit de lui donner les bon paramètres :
switch teste l'égalité de chaque case avec le paramètre de switch

Donc, si tu veut tester un intervalle, il faut que ta condition soit vrai, ou égale à vrai :wink:

par lf » 04 juil. 2005, 16:04

voilà le script:

[
<?php
$mysql_link = mysql_connect('localhost','XX','X');
$requete = 'SELECT cp_cycleLESC_Qt FROM cycleLESC;';
$result = mysql_db_query('CP', $requete);

switch ($result) {
case<24:
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete1 = 'SELECT cp_prod_pu FROM produits WHERE cp_prod_id=1;';
$result1 = mysql_db_query('CP', $requete1);
$valeur_aff1 = mysql_fetch_array($result1);
echo $valeur_aff1[cp_prod_pu];}

case>24 and <48) {
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete2 = 'SELECT cp_prod_pu1 FROM produits WHERE cp_prod_id=1;';
$result2 = mysql_db_query('CP', $requete2);
$valeur_aff2 = mysql_fetch_array($result2);
echo $valeur_aff2[cp_prod_pu1];}

case> 48 and <72) {
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete3 = 'SELECT cp_prod_pu2 FROM produits WHERE cp_prod_id=1;';
$result3 = mysql_db_query('CP', $requete3);
$valeur_aff3 = mysql_fetch_array($result3);
echo $valeur_aff3[cp_prod_pu2];}

case > 72) {
$mysql_link1 = mysql_connect('localhost','XX','X');
$requete4 = 'SELECT cp_prod_pu3 FROM produits WHERE cp_prod_id=1;';
$result4 = mysql_db_query('CP', $requete4);
$valeur_aff4 = mysql_fetch_array($result4);
echo $valeur_aff4[cp_prod_pu3];}
?>]

par ouckileou » 04 juil. 2005, 15:56

il manque des bouts au thread là ? parceque je comprends pas tout :roll:

tu peux faire voir ton switch qui n'aime pas les <

parcequ'on peut tester des intervalles dans un switch sans problème

par mere-teresa » 04 juil. 2005, 15:54

apparemment switch n'aime pas les > ...
J'en apprends tous les jours :) enfin, je n'aurais jamais eu l'idée d'essayer, je ne sais pas ....mais bon !

par lf » 04 juil. 2005, 15:41

apparemment switch n'aime pas les > ...

par mere-teresa » 04 juil. 2005, 15:19

Oui c'est normal, tu as fait une erreur dans ton script. L'ordi ne fait que ce que tu lui dis de faire :)

http://www.phpfrance.com/forums/voir_sujet-5351.php
  • Pour vérifier :
    à chaque étape tu mets :
    echo "je suis dans le if" ou echo "je suis dans le else"

    => tu verras jusqu'où ton script fonctionne.
  • Dans ton cas, tu devrais même, avant le if/else faire un echo $result.
    Tu t'apercevrais sans doute que tu as un Resource id#6, càd un pointeur vers les résultats et non pas une valeur...
  • Ensuite, pourquoi n'utilises-tu pas une structure de type switch ?
    Le manuel PHP : switch
[/color]

par lf » 04 juil. 2005, 15:18

c'est bien ce que je craignais: ça me retourne une valeur correspondant à la condition if alors que ça devrait me retourner une valeur correspondant au 2ème elseif

et le echo $requete1; me revoit ma requête SELECT...

normal? :?

par mere-teresa » 04 juil. 2005, 15:04

As-tu essayé de faire echo $requete1; ?
Pour vérifier ce que contenait ta requête ?

As-tu fais des
echo "je suis dans le if" et echo "je suis dans le else" pour voir comment s'exécutait ton script ?

par lf » 04 juil. 2005, 14:32

et puis, avec mysql_query et mysql_db_select, je me retrouve avec le même message.

Avec db_query au moins je n'ai pas de message d'erreur. Je crois que mon script n'arrive pas à dire à if... qu'il doit trouver sa valeur dans la première requête. Non?

par lf » 04 juil. 2005, 14:21

ok, j'ai compris où était mon erreur, mais ma structure conditionnelle ne semble pas marcher: elle ne me retourne pas la bonne valeur