Probleme de syntaxe avec Switch case

Probleme de syntaxe avec Switch case - PHP - Programmation

Marsh Posté le 15-11-2005 à 21:05:59    

Salut,
 
J'ai introduit un switch dans ma fonction, qui marchait très bien jusqu'alors (c'est un glossaire).
Je veux que lorsque que la variable $definition2 n'est pas renseignée, l'intitullé "definition avancée" ne soit pas affiché.
Mais ça retourne une erreur :
 
 

Code :
  1. function letter_search()
  2. # Recherche par première lettre
  3. {
  4. require ("config/conf.inc.php" );
  5. if($_GET['limit1']=="" or $_GET['limit2']=="" or $_GET['letter']=="" )
  6.  {
  7.  page_reload($where=2);
  8.  }
  9. else
  10.  {
  11. $query="select * from $table where left(word,1)='".$_GET['letter']."' order by word LIMIT ".$_GET['limit1'].", ".$_GET['limit2']."";
  12. $result=mysql_query($query);
  13. $nombre=mysql_numrows($result);
  14. $query2="select * from $table where left(word,1)='".$_GET['letter']."'";
  15. $resultat=mysql_query($query2);
  16. $nombre2=mysql_numrows($resultat);
  17. $row=0;
  18. if ($nombre==0)
  19.  {
  20.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Aucun mot du dictionnaire histoire-geo ne commence par la lettre ".$_GET['letter'].".</span>";
  21.  mysql_close();
  22.  include ("footer.php" );
  23.  exit;
  24.  }
  25. else
  26.  {
  27.   echo "<table class='barre112' width='100%'><TD>LISTE DES DEFINITIONS</td></table><BR>";
  28.   while ($row<$nombre)
  29.    {
  30.    $word=mysql_result($result,$row,"word" );
  31.    $definition=mysql_result($result,$row,"definition" );
  32.    $definition2=mysql_result($result,$row,"definition2" );
  33.    $discipline=mysql_result($result,$row,"discipline" );
  34.                                 $auteur=mysql_result($result,$row,"auteur" );
  35.                                 $email=mysql_result($result,$row,"email" );
  36.                
  37.                      echo "<table class='cad_info2' width='100%'><TD>";
  38.      echo "<table style='text-align: left; width: 100%;' border='0'
  39. cellpadding='2' cellspacing='2'>
  40.   <tbody>
  41.     <tr>
  42.       <td class='texte_dico' width='30%'>$word</td>
  43.       <td class='texte_dico3' width='70%'>[$discipline]-[Auteur : $auteur]-[$email]</td>
  44.     </tr>
  45.     <tr>
  46.       <td colspan='2' rowspan='1' class='texte_dico2'>$definition</td>
  47.     </tr>
  48.     <tr>
  49.     <?
  50.             switch ("$definition2" );
  51.     {
  52.     case "$definition2==1":
  53.         echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td>
  54.     </tr>
  55.         <tr>
  56.       <td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td>
  57.     </tr>
  58.   </tbody>
  59. </table>";
  60.         break;
  61.     default:
  62.         echo "";
  63.     }
  64.     ?>
  65.                echo "<TD></table><BR>";
  66.                                 $row++;
  67.    }
  68.  echo "</tr></table>";
  69.  $lettre=$_GET['letter'];
  70.  pages($nombre2,$mode=2,$lettre);
  71.  mysql_close();
  72.  }
  73. }
  74. }

Reply

Marsh Posté le 15-11-2005 à 21:05:59   

Reply

Marsh Posté le 15-11-2005 à 22:12:19    

N'essaye même pas de nous dire que tu as lu le manuel avant de venir poser la question, personne ne va te croire :D
 
Où t'es allé chercher qu'il fallait faire un test dans le case toi ? c'est

Code :
  1. switch ($variable){
  2. case valeur_possible:...


 
pas un if qui a mal tourné


Message édité par naceroth le 15-11-2005 à 22:12:53
Reply

Marsh Posté le 15-11-2005 à 22:59:01    

Si si, j'ai deja fait des switch, et sur cette page j'avais d'abord fait un IF, avant de tenter le switch.
Si si, je regarde la doc sur nexen ou manuel PHP par exemple, mais je débute ...  :o  
 

Code :
  1. <?
  2.             switch ($definition2)  {
  3.         case $definition2==1:
  4.         echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
  5.         break;
  6.         case $definition2==0:
  7.         echo "";
  8.         break;
  9.     }
  10.    ?>


 
Je ne comprends pas ce qui cloche

Reply

Marsh Posté le 15-11-2005 à 23:14:50    

tu sais lire ?
le môssieur te dit que la syntaxe de switch, c'est pas

Code :
  1. case $var==truc:
  2.     ...
  3.     break;

mais

Code :
  1. case truc:
  2.     ...
  3.     break;

et puis essaie d'avoir un code lisible aussi, ca t'aidera


---------------
The Rom's, à votre service
Reply

Marsh Posté le 16-11-2005 à 02:11:42    

Et au passage toi t'es comme ça tu fermes un tableau avant de fermer la colonne et sans avoir ouvert de ligne... :D
 
Si l'affichage est comme il faut alors bravo IE de comprendre ce que tu veux :D

Reply

Marsh Posté le 16-11-2005 à 03:04:14    

ca a l'air d'être généré par un mauvais logiciel
genre <TD> ... </td> , <BR> au lieu de <br />
 
bref pas du tout xml well-formed tout ca :pfff:


---------------
The Rom's, à votre service
Reply

Marsh Posté le 16-11-2005 à 10:55:19    

TheRom_S a écrit :

bref pas du tout xml well-formed tout ca :pfff:

ne confond pas xml et xhtml...

Reply

Marsh Posté le 16-11-2005 à 13:48:13    

leflos5 a écrit :

Et au passage toi t'es comme ça tu fermes un tableau avant de fermer la colonne et sans avoir ouvert de ligne... :D
 
Si l'affichage est comme il faut alors bravo IE de comprendre ce que tu veux :D


 
 
Il n'y a qu'une partie du code ici. Ne soyez pas hautains : je suis prof et ... Pas d'info !!
 
Sinon merci de m'aider quand meme.
 
lulu


Message édité par lulu_merlan le 16-11-2005 à 13:49:19
Reply

Marsh Posté le 16-11-2005 à 13:50:39    

Code :
  1. <?
  2.             switch ($definition2)  {
  3.         case $definition2==1:
  4.         echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
  5.         break;
  6.         case $definition2==0:
  7.         echo "";
  8.         break;
  9.     }
  10.    ?>


 
ca ne sert à rien le $definition2==1. case 1 suffit.


---------------
MZP est de retour
Reply

Marsh Posté le 16-11-2005 à 14:59:28    

soju a écrit :

ne confond pas xml et xhtml...


xhtml est sensé être
 

Citation :

xml well-formed

:o


Message édité par art_dupond le 16-11-2005 à 14:59:43
Reply

Marsh Posté le 16-11-2005 à 14:59:28   

Reply

Marsh Posté le 16-11-2005 à 15:09:51    

cinocks a écrit :

Code :
  1. <?
  2.             switch ($definition2)  {
  3.         case $definition2==1:
  4.         echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
  5.         break;
  6.         case $definition2==0:
  7.         echo "";
  8.         break;
  9.     }
  10.    ?>


 
ca ne sert à rien le $definition2==1. case 1 suffit.


 
 
Merci, c'est clair, mais j'ai encore un "unexpected T_STRING, expecting ',' or ';'" sur le 1er echo, même en slashant  :sleep:  
 
lulu

Reply

Marsh Posté le 16-11-2005 à 15:22:37    

lulu_merlan a écrit :

Merci, c'est clair, mais j'ai encore un "unexpected T_STRING, expecting ',' or ';'" sur le 1er echo, même en slashant  :sleep: lulu


t'a fait les modifs proposées sur la syntaxe du swith, case ???

Code :
  1. <?
  2. switch ($definition2)  {
  3.     case 1:
  4.             echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td>
  5.                     </tr><tr>
  6.                     <td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
  7.             break;
  8.     case 0:
  9.             echo "";
  10.             break;
  11. }
  12. ?>


 
et perso, j'aurais plutot tendance à faire un:
$msg = truc qui va bien dans chaque cas
et un :  
echo $msg; apres le switch

Message cité 1 fois
Message édité par Xav_ le 16-11-2005 à 15:23:12

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 16-11-2005 à 15:25:26    

TheRom_S a écrit :

ca a l'air d'être généré par un mauvais logiciel
genre <TD> ... </td> , <BR> au lieu de <br />
 
bref pas du tout xml well-formed tout ca :pfff:


C'est ptet du HTML qu'il génère [:john keats]  

soju a écrit :

ne confond pas xml et xhtml...


http://www.w3.org/TR/xhtml1/
 

Citation :

This specification defines the Second Edition of XHTML 1.0, a reformulation of HTML 4 as an XML 1.0 application, and three DTDs corresponding to the ones defined by HTML 4. The semantics of the elements and their attributes are defined in the W3C Recommendation for HTML 4. These semantics provide the foundation for future extensibility of XHTML. Compatibility with existing HTML user agents is possible by following a small set of guidelines.


 
http://www.w3.org/TR/xhtml1/#xhtml

Citation :

XHTML 1.0 (this specification) is the first document type in the XHTML family. It is a reformulation of the three HTML 4 document types as applications of XML 1.0 [XML]. It is intended to be used as a language for content that is both XML-conforming and, if some simple guidelines are followed, operates in HTML 4 conforming user agents. Developers who migrate their content to XHTML 1.0 will realize the following benefits:
 

  • XHTML documents are XML conforming. As such, they are readily viewed, edited, and validated with standard XML tools.
  • XHTML documents can be written to operate as well or better than they did before in existing HTML 4-conforming user agents as well as in new, XHTML 1.0 conforming user agents.
  • XHTML documents can utilize applications (e.g. scripts and applets) that rely upon either the HTML Document Object Model or the XML Document Object Model [DOM].
  • As the XHTML family evolves, documents conforming to XHTML 1.0 will be more likely to interoperate within and among various XHTML environments.



---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-11-2005 à 15:29:12    

lulu_merlan a écrit :

Merci, c'est clair, mais j'ai encore un "unexpected T_STRING, expecting ',' or ';'" sur le 1er echo, même en slashant  :sleep:  
 
lulu


 
 
ne pas mettre un chaine de caracteres sur plusieures lignes
 
$mastring = "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' " . "class='texte_dico2'>$definition2</td></tr></tbody></table>";


---------------
MZP est de retour
Reply

Marsh Posté le 16-11-2005 à 15:31:18    

ok ok  :sweat:

Reply

Marsh Posté le 16-11-2005 à 15:54:25    

cinocks a écrit :

ne pas mettre un chaine de caracteres sur plusieures lignes
 
$mastring = "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' " . "class='texte_dico2'>$definition2</td></tr></tbody></table>";


Pourquoi ça?  :heink:  

Reply

Marsh Posté le 16-11-2005 à 16:35:39    

Xav_ a écrit :

t'a fait les modifs proposées sur la syntaxe du swith, case ???


 
oui, toujours la meme erreur :

Code :
  1. <?
  2.      switch ($definition2)  {
  3.          case 1:
  4.                  echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
  5.                  break;
  6.          case 0:
  7.                  echo "";
  8.                  break;
  9.      }
  10.      ?>

Reply

Marsh Posté le 16-11-2005 à 16:36:34    

lulu_merlan a écrit :

oui, toujours la meme erreur :

Code :
  1. <?
  2.      switch ($definition2)  {
  3.          case 1:
  4.                  echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
  5.                  break;
  6.          case 0:
  7.                  echo "";
  8.                  break;
  9.      }
  10.      ?>



... même en créant une variable $mastring qui renvoie à une chaine de caractères.

Reply

Marsh Posté le 16-11-2005 à 16:45:50    

leflos5 a écrit :

Pourquoi ça?  :heink:


 
euh c'est autorisé de faire çà?  
 

Code :
  1. $mastring != "kldsjfklsdjflsdjlkfjdksljflksdjfkldklfklsdjflkj
  2. dfjklsdjflkdsjlkfj";


 
pour moi ce serait plutot:
 

Code :
  1. $mastring != "kldsjfklsdjflsdjlkfjdksljflksdjfkldklfklsdjflkj" .
  2. dfjklsdjflkdsjlkfj";



---------------
MZP est de retour
Reply

Marsh Posté le 16-11-2005 à 16:46:43    

lulu_merlan a écrit :

... même en créant une variable $mastring qui renvoie à une chaine de caractères.

au fait, pourquoi tu mets <? et ?>  autour de ton switch ???

Reply

Marsh Posté le 16-11-2005 à 16:48:08    

cinocks a écrit :

euh c'est autorisé de faire çà?

oui, mais dans ce genre de cas il vaut mieux utiliser la syntaxe heredoc

Reply

Marsh Posté le 16-11-2005 à 17:11:03    

J'ai copié collé le code pour le tester et ca marche chez moi.
 
y aurait pas quelque chose avant qui pourrait faire planter ?

Reply

Marsh Posté le 16-11-2005 à 17:15:15    


Ce code là ?
 
          <?
          switch ($definition2)  {
              case 1:
                      echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>$definition2</td></tr></tbody></table>";
                      break;
              case 0:
                      echo "";
                      break;
          }
          ?>


Message édité par lulu_merlan le 16-11-2005 à 17:22:50
Reply

Marsh Posté le 16-11-2005 à 17:25:56    

ces deux codes marchent
 

Code :
  1. $definition2 = $_GET['def2'];
  2. switch ($definition2)  {
  3. case 1:
  4.  $mastring = "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>".$definition2."</td></tr></tbody></table>";
  5.  break;
  6. case 0:
  7.  $mastring = "";
  8.  break;
  9. }
  10. echo $mastring;


 
 

Code :
  1. $definition2 = $_GET['def2'];
  2. switch ($definition2)  {
  3. case 1:
  4.  echo "<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>".$definition2."</td></tr></tbody></table>";
  5.  break;
  6. case 0:
  7.  echo "";
  8.  break;
  9. }

Reply

Marsh Posté le 16-11-2005 à 17:51:13    

Parse error: parse error, unexpected T_BAD_CHARACTER, expecting T_STRING or T_VARIABLE or T_NUM_STRING

Reply

Marsh Posté le 16-11-2005 à 17:59:38    

"T_BAD_CHARACTER" Tu dois avoir un caractére invisible qui traine quelque part.
Efface tous les esapces, les retour à la ligne, les tabulations ... et resaisie les ensuite. Normalement, ca devrait régler ton probléme.
 
PS : Php ne t'indique pas la ligne de l'erreur? Ca t'éviterait de tout effacer.

Reply

Marsh Posté le 16-11-2005 à 18:09:15    

c'est sur la 1ere ligne

Reply

Marsh Posté le 16-11-2005 à 18:10:35    

[hs]
ce qu'il y a de beau dans le "case $definition2==1:" c'est que quand on évalue cette expression, on retourne True/1, ce qui fait qu'on se retrouve avec "case 1:" donc ca marche par hasard, alors qu'un test ==2 ou ==0 aurait pas marché...
( 'fin je dis ca je fais pas de php, mais si le language est cohérent, c'est ce qu'il se passe ... )
[/hs]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 16-11-2005 à 18:41:01    

essayer de recréer un nouveau fichier et/ou vérifier l'encodage du fichier (je ne sais pas qui ou quoi, mais j'ai déjà eu un problème parce que l'encodage n'était pas bon)

Reply

Marsh Posté le 16-11-2005 à 19:13:28    

je suis le seul à avoir vu les tags <? et ?> qui n'ont rien à faire là ?!
et le echo de la ligne 40 qui n'est pas fermé ?!
...

Reply

Marsh Posté le 16-11-2005 à 19:16:01    

soju a écrit :

je suis le seul à avoir vu les tags <? et ?> qui n'ont rien à faire là ?!
et le echo de la ligne 40 qui n'est pas fermé ?!
...


s'il a laissé les tags en trop lors de son copie/colle dans son script, il a du s'en rendre compte assez vite ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 16-11-2005 à 20:57:44    

Ras la casquette : j'ai tout essayé, alors voilà le code complet (voir lignes 140 à 150)
 :sweat:  

Code :
  1. <?
  2. function footer()
  3. # Affichage du pied de page
  4. {
  5. include ("footer.php" );
  6. }
  7. #--------------------------------------------------------------------------------------
  8. function sql_connect()
  9. # Connexion à la base
  10. {
  11. require ("config/conf.inc.php" );
  12. $db=mysql_connect("$host","$user","$pass" )or die('Impossible de se connecter à la base !');
  13. mysql_select_db($base,$db);
  14. }
  15. #--------------------------------------------------------------------------------------
  16. function get_number()
  17. # Récupère le nombre d'entrées dans la base
  18. {
  19. require ("config/conf.inc.php" );
  20. $query = "select * from $table ";
  21. $result = mysql_query($query);
  22. $nombre = mysql_numrows($result);
  23. if ($nombre==0)
  24.  {
  25.  echo " Aucune définition dans le dictionnaire histoire-geo pour le moment";
  26.  }
  27. else
  28. if ($nombre==1)
  29.  {
  30.  echo " Une seule définition dans le dictionnaire histoire-geo.";
  31.  }
  32. else
  33.  {
  34.  echo "<BR> ".$nombre." définitions dans le dictionnaire histoire-geo.";
  35.  }
  36. }
  37. #--------------------------------------------------------------------------------------
  38. function form_search()
  39. # Recherche d'une entrée par formulaire
  40. {
  41. require ("config/conf.inc.php" );
  42. if ($_POST['word']=="" )
  43. {
  44.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Veuillez entrer au moins un mot.</span>";
  45. }
  46. else
  47. {
  48.  $query="select * from $table where word='".$_POST['word']."' ";
  49.  $result=mysql_query($query);
  50.  $nombre=mysql_numrows($result);
  51.  $row=0;
  52.  if ($nombre==0)
  53.  {
  54.   echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Le mot \"".$_POST['word']."\" n'est pas encore dans le dictionnaire histoire-geo.</span>";
  55.   mysql_close();
  56.  }
  57.  else
  58.  {
  59.   $word=mysql_result($result,$row,"word" );
  60.   $definition=mysql_result($result,$row,"definition" );
  61.   $definition2=mysql_result($result,$row,"definition2" );
  62.                         $discipline=mysql_result($result,$row,"discipline" );
  63.                         $auteur=mysql_result($result,$row,"auteur" );
  64.                         $email=mysql_result($result,$row,"email" );
  65.   echo "<table class='cad_info2' width='100%'><TD>";
  66.      echo "<table style='text-align: left; width: 100%;' border='0'
  67. cellpadding='2' cellspacing='2'>
  68.   <tbody>
  69.     <tr>
  70.       <td class='texte_dico'>$word</td>
  71.       <td class='texte_dico3'>[$discipline]</td>
  72.     </tr>
  73.     <tr>
  74.       <td colspan='2' rowspan='1' class='texte_dico2'>$definition</td>
  75.     </tr>
  76.   </tbody>
  77. </table>";
  78.                echo "<TD></table><BR>";
  79.   mysql_close();
  80.   }
  81. }
  82. }
  83. #--------------------------------------------------------------------------------------
  84. function letter_search()
  85. # Recherche par première lettre
  86. {
  87. require ("config/conf.inc.php" );
  88. if($_GET['limit1']=="" or $_GET['limit2']=="" or $_GET['letter']=="" )
  89.  {
  90.  page_reload($where=2);
  91.  }
  92. else
  93.  {
  94. $query="select * from $table where left(word,1)='".$_GET['letter']."' order by word LIMIT ".$_GET['limit1'].", ".$_GET['limit2']."";
  95. $result=mysql_query($query);
  96. $nombre=mysql_numrows($result);
  97. $query2="select * from $table where left(word,1)='".$_GET['letter']."'";
  98. $resultat=mysql_query($query2);
  99. $nombre2=mysql_numrows($resultat);
  100. $row=0;
  101. if ($nombre==0)
  102.  {
  103.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Aucun mot du dictionnaire histoire-geo ne commence par la lettre ".$_GET['letter'].".</span>";
  104.  mysql_close();
  105.  include ("footer.php" );
  106.  exit;
  107.  }
  108. else
  109.  {
  110.   echo "<table class='barre112' width='100%'><TD>LISTE DES DEFINITIONS</td></table><BR>";
  111.   while ($row<$nombre)
  112.    {
  113.    $word=mysql_result($result,$row,"word" );
  114.    $definition=mysql_result($result,$row,"definition" );
  115.    $definition2=mysql_result($result,$row,"definition2" );
  116.    $discipline=mysql_result($result,$row,"discipline" );
  117.                                 $auteur=mysql_result($result,$row,"auteur" );
  118.                                 $email=mysql_result($result,$row,"email" );
  119.                      echo "<table class='cad_info2' width='100%'><TD>";
  120.      echo "<table style='text-align: left; width: 100%;' border='0'
  121. cellpadding='2' cellspacing='2'>
  122.   <tbody>
  123.     <tr>
  124.       <td class='texte_dico' width='30%'>$word</td>
  125.       <td class='texte_dico3' width='70%'>[$discipline]-[Auteur : $auteur]-[$email]</td>
  126.     </tr>
  127.     <tr>
  128.       <td colspan='2' rowspan='1' class='texte_dico2'>$definition</td>
  129.     </tr>
  130.     <tr>
  131.      $definition2=$_GET['def2'];
  132.      switch($definition2) {
  133.         case 1:
  134.              $mastring="<td colspan='2' rowspan='1' class='texte_dico1'>Définition avancée</td></tr><tr><td colspan='2' rowspan='1' class='texte_dico2'>".$definition2."</td></tr></tbody></table>";
  135.              break;
  136.          case 0:
  137.              $mastring="";
  138.              break;
  139.      }
  140.      echo $mastring;
  141.                echo "<TD></table><BR>";
  142.                                 $row++;
  143.    }
  144.  echo "</tr></table>";
  145.  $lettre=$_GET['letter'];
  146.  pages($nombre2,$mode=2,$lettre);
  147.  mysql_close();
  148.  }
  149. }
  150. }
  151. #--------------------------------------------------------------------------------------
  152. function number_search()
  153. # Entrées commençant par un chiffre
  154. {
  155. require ("config/conf.inc.php" );
  156. if($_GET['limit1']=="" or $_GET['limit2']=="" )
  157.  {
  158.  page_reload($where=3);
  159.  }
  160. else
  161.  {
  162. $query="select * from $table where left(word,1) in ('0','1','2','3','4','5','6','7','8','9') order by word LIMIT ".$_GET['limit1'].", ".$_GET['limit2']."";
  163. $result=mysql_query($query);
  164. $nombre=mysql_numrows($result);
  165. $query2 ="SELECT * FROM $table where left(word,1) in ('0','1','2','3','4','5','6','7','8','9')";
  166. $resultat=mysql_query($query2);
  167. $nombre2=mysql_numrows($resultat);
  168. $row=0;
  169. if ($nombre==0)
  170.  {
  171.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Aucune définition du dictionnaire histoire-geo ne commence par un chiffre.</span>";
  172.  mysql_close();
  173.  }
  174. else
  175.  {
  176.   echo "<table id=\"tab-resultats\"><tr><td id=\"tab-resultats-entete\">MOT</td><td id=\"tab-resultats-entete\">DEFINITION</td>";
  177.   while ($row<$nombre)
  178.    {
  179.    $word=mysql_result($result,$row,"word" );
  180.    $definition=mysql_result($result,$row,"definition" );
  181.    $definition2=mysql_result($result,$row,"definition2" );
  182.    $discipline=mysql_result($result,$row,"discipline" );
  183.    $auteur=mysql_result($result,$row,"auteur" );
  184.                                 $email=mysql_result($result,$row,"email" );
  185.   echo "<table class='cad_info2' width='100%'><TD>";
  186.      echo "<table style='text-align: left; width: 100%;' border='0'
  187. cellpadding='2' cellspacing='2'>
  188.   <tbody>
  189.     <tr>
  190.       <td class='texte_dico'>$word</td>
  191.       <td class='texte_dico3'>[$discipline]</td>
  192.     </tr>
  193.     <tr>
  194.       <td colspan='2' rowspan='1' class='texte_dico2'>$definition</td>
  195.     </tr>
  196.   </tbody>
  197. </table>";
  198.                echo "<TD></table><BR>";
  199.    $row++;
  200.    }
  201.  echo "</tr></table>";
  202.  pages($nombre2,$mode=3,$rien="" );
  203.  }
  204. }
  205. }
  206. #--------------------------------------------------------------------------------------
  207. function display_all()
  208. # Afficher toutes les définitions
  209. {
  210. require ("config/conf.inc.php" );
  211. if($_GET['limit1']=="" or $_GET['limit2']=="" )
  212.  {
  213.  page_reload($where=4);
  214.  }
  215. else
  216.  {
  217.  $query="select * from $table order by word LIMIT ".$_GET['limit1'].", ".$_GET['limit2']."";
  218.  $result=mysql_query($query);
  219.  $nombre = mysql_numrows($result);
  220.  $query2 = "SELECT * FROM $table ";
  221.  $resultat = mysql_query($query2);
  222.  $row = 0;
  223.  $nombre2 = mysql_numrows($resultat);
  224.  if ($nombre2==0)
  225.   {
  226.   echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Il n'y a aucune définition dans le dictionnaire histoire-geo !</span>";
  227.   mysql_close();
  228.   }
  229.  else
  230.   {
  231.   echo "<table id=\"tab-resultats\"><tr><td id=\"tab-resultats-entete\">MOT</td><td id=\"tab-resultats-entete\">DEFINITION</td><td id=\"tab-resultats-entete\">DISCIPLINE</td>";
  232.    while ($row<$nombre)
  233.     {
  234.     $word=mysql_result($result,$row,"word" );
  235.     $definition=mysql_result($result,$row,"definition" );
  236.     $definition2=mysql_result($result,$row,"definition2" );
  237.     $discipline=mysql_result($result,$row,"discipline" );
  238.                                         $auteur=mysql_result($result,$row,"auteur" );
  239.                                         $email=mysql_result($result,$row,"email" );
  240.    
  241.      echo "<table class='cad_info2' width='100%'><TD>";
  242.      echo "<table style='text-align: left; width: 100%;' border='0'
  243. cellpadding='2' cellspacing='2'>
  244.   <tbody>
  245.     <tr>
  246.       <td class='texte_dico'>$word</td>
  247.       <td class='texte_dico3'>[$discipline]</td>
  248.     </tr>
  249.     <tr>
  250.       <td colspan='2' rowspan='1' class='texte_dico2'>$definition</td>
  251.     </tr>
  252.   </tbody>
  253. </table>";
  254.                echo "<TD></table><BR>";
  255.              
  256.     $row++;
  257.     }
  258.   echo "</tr></table>";
  259.   pages($nombre2,$mode=4,$rien="" );
  260.   }
  261. }
  262. }
  263. #--------------------------------------------------------------------------------------
  264. function pages($nombre2,$mode,$letter)
  265. # Création des liens première page | page précédente | page suivante | dernière page
  266. {
  267. require ("config/conf.inc.php" );
  268. if ($nombre2 > $limit)
  269. {
  270.  if($_GET['limit1']==0)
  271.  {
  272.   print("<br><center><a href=\"glossaire.php?mode=".$mode."&limit1=$limit&limit2=$limit&letter=$letter\">Page suivante ></a>" );
  273.   $max=floor(($nombre2/$limit));
  274.   $fin=$max*$limit;
  275.   print("<a href=\"glossaire.php?mode=".$mode."&limit1=$fin&limit2=$limit&letter=$letter\"> >></a></center>" );
  276.  }
  277.  else
  278.  {
  279.   if ($_GET['limit1'] >= ($nombre2 - $limit))
  280.   {
  281.    $_GET['limit1']=$_GET['limit1']-$limit; $limit2=$limit;
  282.    $limit1=$_GET['limit1'];
  283.    print("<br><center><a href=\"glossaire.php?mode=".$mode."&limit1=0&limit2=$limit2&letter=$letter\"><<</a> <a href=\"glossaire.php?mode=".$mode."&limit1=$limit1&limit2=$limit2&letter=$letter\">< Page précédente</a></center>" );
  284.   }
  285.   else
  286.   {
  287.    $_GET['limit1']=$_GET['limit1']-$limit; $limit2=$limit;
  288.    $limit1=$_GET['limit1'];
  289.    print("<br><center><a href=\"glossaire.php?mode=".$mode."&limit1=0&limit2=$limit2&letter=$letter\"><<</a> <a href=\"glossaire.php?mode=".$mode."&limit1=$limit1&limit2=$limit2&letter=$letter\">< Page précédente</a>" );
  290.    $limit1=$limit1+($limit*2); $limit2=$limit;
  291.    print(" | <a href=\"glossaire.php?mode=".$mode."&limit1=$limit1&limit2=$limit2&letter=$letter\">Page suivante ></a>" );
  292.    $max=floor(($nombre2/$limit));
  293.    $fin=$max*$limit;
  294.    print("<a href=\"glossaire.php?mode=".$mode."&limit1=$fin&limit2=$limit&letter=$letter\"> >></a></center>" );
  295.   }
  296.  }
  297. }
  298. }
  299. #--------------------------------------------------------------------------------------
  300. function add_def()
  301. # Ajouter une entrée
  302. {
  303. require ("config/conf.inc.php" );
  304. $query='select * from '.$table.' where word="'.$_POST['word'].'"';
  305. $result=mysql_query($query);
  306. $nombre=mysql_numrows($result);
  307. if ($_POST['word']=="" )
  308.  {
  309.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de mot !</span>";
  310.  }
  311. else
  312. if ($_POST['definition']=="" )
  313.  {
  314.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de définition pour le mot \"".$_POST['word']."\" !</span>";
  315.  }
  316. else
  317. if ($nombre==0)
  318.  {
  319.  $query='insert into '.$table.' (word,definition,definition2,discipline,auteur,email) values ("'.$_POST['word'].'","'.$_POST['definition'].'","'.$_POST['definition2'].'","'.$_POST['discipline'].'","'.$_POST['auteur'].'","'.$_POST['email'].'" )';
  320.  $result=mysql_query($query);
  321.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Le mot \"".$_POST['word']."\" a été ajouté au dictionnaire histoire-geo.";
  322.  mysql_close();
  323.  }
  324. elseif ($nombre!=0)
  325.  {
  326.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Le mot \"".$_POST['word']."\" est déjà dans le dictionnaire histoire-geo.";
  327.  mysql_close();
  328.  }
  329. }
  330. #--------------------------------------------------------------------------------------
  331. function add_def_user()
  332. # Ajouter une entrée (mode utilisateur)
  333. {
  334. require ("config/conf.inc.php" );
  335. $query='select * from '.$table.' where word="'.$_POST['word'].'"';
  336. $result=mysql_query($query);
  337. $nombre=mysql_numrows($result);
  338. if ($_POST['word']=="" )
  339.  {
  340.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de mot !</span>";
  341.  }
  342. else
  343. if ($_POST['definition']=="" )
  344.  {
  345.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de définition pour le mot \"".$_POST['word']."\" !</span>";
  346.  }
  347. else
  348. if ($nombre==0)
  349.  {
  350.  $query='insert into '.$table_tmp.' (word,definition,definition2,discipline,auteur,email) values ("'.$_POST['word'].'","'.$_POST['definition'].'","'.$_POST['definition2'].'","'.$_POST['discipline'].'","'.$_POST['auteur'].'","'.$_POST['email'].'" )';
  351.  $result=mysql_query($query);
  352.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Votre définition a bien été prise en compte. Elle est en attente de validation.";
  353.  mysql_close();
  354.  }
  355. elseif ($nombre!=0)
  356.  {
  357.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Le mot \"".$_POST['word']."\" est déjà dans le dictionnaire histoire-geo.";
  358.  mysql_close();
  359.  }
  360. }
  361. #--------------------------------------------------------------------------------------
  362. function mod_def()
  363. # Modifier une entrée
  364. {
  365. require ("config/conf.inc.php" );
  366. $query='select * from '.$table.' where word="'.$_POST['word'].'"';
  367. $result=mysql_query($query);
  368. $nombre=mysql_numrows($result);
  369. if ($_POST['word']=="" )
  370.  {
  371.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de mot !</span>";
  372.  }
  373. else
  374. if ($_POST['definition']=="" )
  375.  {
  376.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de définition !</span>";
  377.  }
  378. else
  379. if ($nombre!=0)
  380.  {
  381.  $query='update '.$table.' set definition="'.$_POST['definition'].'" where word="'.$_POST['word'].'"';
  382.  $result=mysql_query($query);
  383.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> La définition de \"".$_POST['word']."\" a été modifiée :<br>";
  384.  $query='select * from '.$table.' where definition="'.$_POST['definition'].'"';
  385.  echo "Nouvelle définition : \"".$_POST['definition']."\"";
  386.  mysql_close();
  387.  }
  388. elseif ($nombre==0)
  389.  {
  390.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Le mot \"".$_POST['word']."\" n'est pas dans le dictionnaire histoire-geo !";
  391.  mysql_close();
  392.  }
  393. }
  394. #--------------------------------------------------------------------------------------
  395. function del_def()
  396. # Supprimer une entrée
  397. {
  398. require ("config/conf.inc.php" );
  399. $query='select * from '.$table.' where word="'.$_POST['word'].'"';
  400. $result=mysql_query($query);
  401. $nombre=mysql_numrows($result);
  402. if ($_POST['word']=="" )
  403.  {
  404.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> <span class=\"erreur\">Vous n'avez pas entré de mot !</span>";
  405.  }
  406. else
  407. if ($nombre!=0)
  408.  {
  409.  $query='delete from '.$table.' where word="'.$_POST['word'].'"';
  410.  $result=mysql_query($query);
  411.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Le mot \"".$_POST['word']."\" a été supprimé du dictionnaire histoire-geo.";
  412.  mysql_close();
  413.  }
  414. elseif ($nombre==0)
  415.  {
  416.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Le mot \"".$_POST['word']."\" n'est pas dans le dictionnaire histoire-geo !";
  417.  mysql_close();
  418.  }
  419. }
  420. #--------------------------------------------------------------------------------------
  421. function page_reload($mode)
  422. # Recharge la page si l'url est tronquée
  423. {
  424. require ("config/conf.inc.php" );
  425. if ($mode!=2)
  426. {
  427. print("<script language=\"javascript\">location.replace('glossaire.php?mode=".$mode."&limit1=0&limit2=$limit');</script>" );
  428. }
  429. else
  430. {
  431. print("<script language=\"javascript\">location.replace('glossaire.php');</script>" );
  432. }
  433. }
  434. #--------------------------------------------------------------------------------------
  435. function show_users_def()
  436. # Affiche la liste des définitions à valider (ajoutées par les utilisateurs)
  437. {
  438. require ("config/conf.inc.php" );
  439. $query="select * from $table_tmp";
  440. $result=mysql_query($query);
  441. $nombre=mysql_numrows($result);
  442. $row=0;
  443. if ($nombre==0)
  444. {
  445.  echo "<img src=\"img/i.gif\" align=\"absmiddle\" alt=\"\"/> Il n'y a aucune définition à valider pour le moment...";
  446. }
  447. else
  448. {
  449.  while ($row<$nombre)
  450.  {
  451.   $word=mysql_result($result,$row,"word" );
  452.   $definition=mysql_result($result,$row,"definition" );
  453.   $definition2=mysql_result($result,$row,"definition2" );
  454.                         $discipline=mysql_result($result,$row,"discipline" );
  455.   $row++;
  456.   echo "<table id=\"tab-validation\" width=\"100%\"><tr><td id=\"tab-validation-mot\">";
  457.   echo "".$word."</td><tr><td id=\"tab-validation-def\">".$definition."</td><td id=\"tab-validation-def\">".$definition2."</td><TD>".$discipline."</TD><TD>".$auteur."</TD><TD>".$email."</TD><</tr><td>";
  458.   echo "<img src=\"img/ok.gif\" align=\"absmiddle\" alt=\"\"/> <a href=\"valid.php?action=1&def=$word\">Valider</a>";
  459.   echo "&nbsp;<img src=\"img/no.gif\" align=\"absmiddle\" alt=\"\"/> <a href=\"valid.php?action=2&def=$word\">Supprimer</a>";
  460.   echo "</td></tr></table>";
  461.  }
  462. }
  463. }
  464. #--------------------------------------------------------------------------------------
  465. function valid_def($action,$def)
  466. # Valide ou supprime les définitions ajoutées par les utilisateurs
  467. {
  468. require ("config/conf.inc.php" );
  469. switch($action)
  470. {
  471. case 1:
  472. # Validation
  473. $select='select * from '.$table_tmp.' where word="'.$def.'"';
  474. $result=mysql_query($select);
  475. #
  476. $word=mysql_result($result,0,"word" );
  477. $definition=mysql_result($result,0,"definition" );
  478. $definition2=mysql_result($result,0,"definition2" );
  479.         $discipline=mysql_result($result,0,"discipline" );
  480.         $auteur=mysql_result($result,0,"auteur" );
  481.         $email=mysql_result($result,0,"email" );
  482. $insert='insert into '.$table.'(word,definition,definition2,discipline,auteur,email) values ("'.$word.'","'.$definition.'","'.$definition2.'","'.$discipline.'","'.$auteur.'","'.$email.'" )';
  483. mysql_query($insert);
  484. #
  485. $delete='delete from '.$table_tmp.' where word="'.$def.'"';
  486. mysql_query($delete);
  487. break;
  488. case 2:
  489. # Suppression
  490. $query='delete from '.$table_tmp.' where word="'.$def.'"';
  491. mysql_query($query);
  492. break;
  493. default:
  494. header("location:glossaire.php" );
  495. break;
  496. }
  497. }
  498. ?>


Message édité par lulu_merlan le 16-11-2005 à 20:59:04
Reply

Marsh Posté le 16-11-2005 à 21:06:28    

ligne 138 tu as le droit de fermer la chaine ouverte ligne 128 :)

Reply

Marsh Posté le 16-11-2005 à 22:10:37    

arf mais c'est pas sur la première ligne alors :p
 
sinon le  
 
$definition2=$_GET['def2'];
 
que j'ai mis dans mes exemples, je ne sais pas si t'en as besoin. J'ai juste mis ca pour tester.

Reply

Marsh Posté le 17-11-2005 à 00:02:11    

naceroth a écrit :

ligne 138 tu as le droit de fermer la chaine ouverte ligne 128 :)


c'était ça !
Merci à tous ... Même si mon code était donc bon au départ  :sweat:  

Reply

Marsh Posté le 17-11-2005 à 01:22:31    

Reste encore à l'améliorer surtout sur le Html, l'indentation et svp tous arrêtez avec les echo de partout ;)
 
Autre astuce quand t'as une variable dans une chaine de caractère, si t'utilises les double cotes t'as pas besoin de sortir de la chaine suffit de faire

Code :
  1. $chaineHtml="<table class='$class'>
  2.               <tr>
  3.                 <td>
  4.                        Cet objet coute $prix €
  5.                 </td>
  6.               </tr>
  7.              </table>\n";
  8. echo $chaineHtml;


 
C'est plus clair, propre et c'est juste une piste t'en fais ce que tu veux  :jap:  

Reply

Marsh Posté le 17-11-2005 à 09:01:29    

ha je suis pas fou, c'est bien ce que javais dit dans mon precedent post passé inaperçu  :sweat: ...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed