Problème sur script

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 : Problème sur script

par Truc » 10 janv. 2006, 00:16

enfaite le switch parcours les différents cas (case) jusqu'à ce qu'il rencontre un "break" et donc si tu as plusieurs cas avec la meme instructioona exécuter tu les regroupes et ne met pas de break pour que les cas qui sont avant le break effectuent la meme instruction.

exemple:
<?php
switch ($i) 
{
	case 0:
	case 1:
	case 2:
	   //instruction si $i est égal à 0, 1 ou 2
	   break;
	case 3 :
	   //instruction si $i est égal à 3
	   break;
	case 5:
	case 9:
	   //instruction si $i est égal à 5 ou 9
	   break;
}
?> 

par storm61 » 10 janv. 2006, 00:10

merci bien mais quelle est la règle pour simplifier

quand tu mets case '1': vide et case '2': l'instruction


ca veut dire que l'instruction précédente (case 1) prends toujours la valeur de celle qui la suit ?

par Truc » 09 janv. 2006, 23:57

Entre gens du Nord... ca va mieux
Ha... si seulement :wink: :lol:

sinon tu peux simplifier le switch() puisque les cas se reroupent 2 par 2:
switch ($regime1) 
{
   case '1':
   case '2':
      $sql = "SELECT * FROM tarif1 where age=$age";
      break;
   case '3':
   case '4':
      $sql = "SELECT niv1 * 0.85 as niv1, niv1plus * 0.85 as niv1plus, niv2 * 0.85 as niv2, niv3 * 0.85 as niv3 FROM tarif1 where age=$age";
      break;
   default :
      $sql = "0" ;
}

par storm61 » 09 janv. 2006, 14:58

ok j'ai trouvé merci bien


switch ($regime1) { 
case '1': 
$sql = "SELECT * FROM tarif1 where age=$age";
break;
case '2': 
$sql = "SELECT * FROM tarif1 where age=$age";
break;
case '3': 
$sql = "SELECT niv1 * 0.85 as niv1, niv1plus * 0.85 as niv1plus, niv2 * 0.85 as niv2, niv3 * 0.85 as niv3 FROM tarif1 where age=$age";
break;
case '4': 
$sql = "SELECT niv1 * 0.85 as niv1, niv1plus * 0.85 as niv1plus, niv2 * 0.85 as niv2, niv3 * 0.85 as niv3 FROM tarif1 where age=$age";
break;
default :
    $sql = "0" ;

}

par storm61 » 09 janv. 2006, 12:27

Ok en fait dans le tableau quand j'appelle ma variable $result

si $regime3 est null il me met cette erreur (C'est normal car un internaute peut choisir le regime1 dans sa liste déroulante)

par storm61 » 09 janv. 2006, 12:01

Désolé ca marche pas, j'ai fais le test

je précise le calcul n'est que pour l'affichage du resulat (je modifie pas la BD)

le code :
switch ($regime1) { 
case $regime1 == '1': 
$sql = "SELECT * FROM tarif1 where age=$age";
break;
case $regime1 == '2': 
$sql = "SELECT * FROM tarif1 where age=$age";
break;
case $regime1 == '3': 
$sql = "SELECT niv1 * 0.85 as m_niv1, niv1plus, niv2, niv3 FROM tarif1 where age=$age";
break;

}
j'appelle dans mon tableau "m_niv1" et j'ai une erreur "Notice: Undefined index: m_niv1 in c:\sites internet\site\result.php on line 95"




<TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\"
style=\"FONT-SIZE: 11pt\"><B>".$result["m_niv1"]."€</font>
</div></TD>

par Invité » 09 janv. 2006, 10:40

Merci bien je vais essayer


Entre gens du Nord... ca va mieux

par Truc » 09 janv. 2006, 00:59

la soustraction doit se faire que pour l'affichage ponctuel ou les nouvelles valeurs doivent etre enregistrées dans la BD ?

sinon il suffit de séléctionner les valeurs en les multipliant comme dis:
$sql = "SELECT niv1 * 0.85 as m_niv1, niv1plus * 0.85  as m_niv1plus FROM tarif1 where age=$age";
à completer :wink:

tu feras appel (par exemple) a : m_niv1 au lieu de niv1

par storm61 » 09 janv. 2006, 00:32

Ben en fait je vais m'expliquer autrement

ma table tarif1 c'est ca

age niv1 niveau1plus niv2 niv3
18 20,77 22,93 26,41 32,42


j'ai une liste déroulante qui s'appelle regime 1

si dans la liste déroulante le cas 3 de celle ci est choisi par l'internaute je veux que le query lise les valeurs de la table tarif1 ci dessus et enlève 15% aux valeurs de celles-ci

Je dois afficher le resultat dans la variable $result

voila merci de votre aide

par Truc » 08 janv. 2006, 23:55

Salut,

tu parles de soustraire 15% a un "résultat" mais de quel résultat ?

par Invité » 08 janv. 2006, 20:54

Merci mais c'est pas bon

si $regime1 (régime1 un est une liste déroulante avec des choix possibles)

le principe c'est; tu lis les données de la table tarif1 selon la variable age, tu multiplies la valeur par 0.85 et tu affiche le resultat dans la variable $result

voila merci de votre aide

par DarkBlue » 08 janv. 2006, 20:06

Hello ,

Je suis pas sur de tout comprendre mais a priri ça devrait doner ça :
if ($regime1 == '3') 
{ 
$regime1=$regime1-$regime1%0.15 ;

$sql = "SELECT * FROM tarif1 where age=$age"; 
} 

$requete = mysql_query( $sql, $cnx ); 

Problème sur script

par storm61 » 08 janv. 2006, 18:29

Bonjour

J'ai un pb sur ce script

je voudrais enlever 15% au résultat affiché si la variable $regime1 est égale à "3"

mais je n'y arrive pas, merci de m'aider

Ma base de donnée s'appelle "tarif"

"Tarif1" est une table

ceci est mon script de connexion à ma base
$dbname='tarif';
$hostname='localhost';
$username='root';
$password='';
$cnx=mysql_connect($hostname, $username, $password);
$db= mysql_select_db( "tarif" );
puis je traite cette requete
if ($regime1 == '3')
{

$sql = "SELECT * FROM tarif1 where age=$age";
}

$requete = mysql_query( $sql, $cnx );

et je l'affiche dans un array
$requete = mysql_query( $sql, $cnx );
		while( $result = mysql_fetch_array( $requete ) )
{
echo( "<TABLE align=\"center\" cellSpacing=\"1\" cellPadding=\"5\" width=\"730\" bgColor=\"#FFFFFF\" 
      border=\"0\">\n" );
echo( "<TR bgcolor=\"#99CC00\">
 <TD width=\"200\" height=\"38\" align=\"\middle\"><div align=\"left\"><FONT 
            style=\"FONT-SIZE: 11pt\" face=\"Tahoma\" 
            color=\"#FFFFFF\"><B>Garanties/Formules</B></FONT></div></TD>");
  
echo ("<TBODY>
            <TR> 
              <TD height=\"38\" align=\"middle\" bgcolor=\"#FFFFFF\"><div align=\"left\"><FONT 
            color=\"#555766\" face=\"Tahoma\" style=\"FONT-SIZE: 10pt\"><B>Montant de votre cotisation mensuelle</B></FONT> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv1"]."€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv1plus"]."€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv2"]."€</font> 
                </div></TD>
              <TD width=\"94\" height=\"38\" align=\"middle\" bgcolor=\"#CCCCCC\"> <div align=\"center\"><FONT color=\"#FFFFFF\" size=\"4\" face=\"Tahoma\" 
            style=\"FONT-SIZE: 11pt\"><B>".$result["niv3"]."€</font> 
                </div></TD>
				  
          </TBODY>
        </table>");
}