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

  FORUM HardWare.fr
  Programmation
  PHP

  problème avec le signe supérieur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème avec le signe supérieur

n°1343634
mainjin
Posté le 10-04-2006 à 22:49:12  profilanswer
 

Je souhaiterais que dans le cas où on clique sur un lien du menu dont l'id est supérieur à 20 il affiche son contenu.
mais ça ne marche pas
 

Code :
  1. switch ($choix)
  2.   {
  3.      
  4.        
  5.       case "id_page==num_page":
  6.           $sql="SELECT * FROM t_pages   JOIN t_menu WHERE id_page=num_page AND id_page=$choix";
  7.           $result=mysql_query($sql);
  8.           $val=mysql_fetch_array ($result);
  9.              echo "<span class=\"titre\">".$val["titre"]."</span>";
  10.              echo "<hr/>";
  11.             echo $val["contenu"];
  12.           break;
  13. [b][/b]
  14. case ">=20":
  15.          $sql="SELECT * FROM t_activites JOIN t_menu WHERE num_menu=id_menu AND id_menu=$choix";
  16.          $result=mysql_query($sql);
  17.           while ($val=mysql_fetch_array ($result))
  18.             {
  19.           echo "<span class=\"titre\">".$val["designation"]."</span>\n";
  20.           echo "<hr/>";
  21.           echo $val["contenu_act"];
  22.             }
  23.         break;
  24. }

 

Si je mets le chifre exact du choix à passer dans l'url il marche mais je ne vais pas faire un case pour chaque lien!
Quelqu'un a une solution?

mood
Publicité
Posté le 10-04-2006 à 22:49:12  profilanswer
 

n°1343640
afbilou
pouet your life
Posté le 10-04-2006 à 23:03:16  profilanswer
 

Tu vas devoir utiliser un if pour les conditions de ce genre.

n°1343644
mainjin
Posté le 10-04-2006 à 23:06:20  profilanswer
 

pourquoi?
je dois faire que des if et elseif?

n°1343648
mainjin
Posté le 10-04-2006 à 23:09:04  profilanswer
 

parce que j'ai essayé mais si je mets une autre condition en plus par exemple > 30 et bien il bien au départ et dès que je clique sur un des liens il n'affiche plus que ceux >20 <30
...

n°1343674
mainjin
Posté le 10-04-2006 à 23:34:42  profilanswer
 

Citation :

if (!isset($choix))
      {
   $sql="SELECT * FROM t_pages WHERE titre='accueil'";
   $result=mysql_query($sql);
      }
       
   elseif (($choix)>20 && ($choix)<=30)    
   {
      $sql="SELECT designation, id_menu,num_page FROM t_menu JOIN t_activites WHERE id_menu=num_menu";
    $result=mysql_query($sql);
   
    }
  elseif (($choix)>=31)    
    {
     
    $sql="SELECT designation, id_menu,num_page FROM t_menu JOIN t_agenda WHERE id_menu=num_menu";
    $result=mysql_query($sql);
   
    }  
   else
      {
   $sql="SELECT designation, num_page,id_menu FROM t_menu WHERE num_page=$choix";    
  $result=mysql_query($sql);
     }
   
 
  while($val=mysql_fetch_array($result))    {
       echo "<a href=\"accueil.php?choix=".$val["id_menu"]."\">".$val["designation"]."</a><br/>\n";
    }  
   
  mysql_close();


 
donc voici que je teste avec les if et bien tout va bien pour >20 mais >=31 ne fonctionne pas il m'indique un erreur à la ligne en rouge si dessus.
merci pour votre aide!!
 
bon j'ai

n°1343681
afbilou
pouet your life
Posté le 10-04-2006 à 23:45:36  profilanswer
 

not valid mysql ressource ?

n°1343684
mainjin
Posté le 10-04-2006 à 23:50:23  profilanswer
 

yes!!
pourquoi ça fait ça?

n°1343692
afbilou
pouet your life
Posté le 10-04-2006 à 23:59:47  profilanswer
 

requete sql foireuse.
ton "SELECT ..." qui comporte une erreur.

n°1343694
nargy
Posté le 11-04-2006 à 00:01:23  profilanswer
 

ta requête a foiré.
je ne suis pas sûr que ce soit ça, mais la syntaxe de ta requête n'est pas tout à fait correcte:
- tu oublie un ``;`` à la fin du SELECT
de plus:
- tu n'utilise pas mysql_real_escape($choix) pour protéger ta base de donnée
 
vérifie aussi que la base de donnée est bien connectée.
 
Pour avoir un descriptif de l'erreur, utilise la fonction mysql_error():
<? echo mysql_error(); ?>

n°1343699
mainjin
Posté le 11-04-2006 à 00:07:45  profilanswer
 

Je ne vois pas où j'ai oublié un ';'
je ne connais pas mysql_real_escape ($choix) ça fonctionne comment et ça sert à quoi?

mood
Publicité
Posté le 11-04-2006 à 00:07:45  profilanswer
 

n°1343702
nargy
Posté le 11-04-2006 à 00:15:21  profilanswer
 

Autant pour moi, $choix est un entier, donc:
$sql="SELECT designation, num_page,id_menu FROM t_menu WHERE num_page=".(int)$choix."[#FF0000];[#FF0000]";  
 
mysql_real_escape c'est pour une chaîne de caractères.
 
pour éviter qu'un internaute ne hacke ton site avec $choix=
0; drop t_menu;

n°1344247
mainjin
Posté le 11-04-2006 à 15:57:48  profilanswer
 

je ne comprends pas pourquoi je dois écrire mon SELECT comme ce que tu me dis ?  
mais bref ça ne résout pas le problème.

Citation :

  $sql="SELECT id_menu,designation,num_page FROM t_menu JOIN t_pages WHERE num_page=id_page AND num_page=$choix";    
  $result=mysql_query($sql);
   
  while($val=mysql_fetch_array($result))
    {
      echo "<a href=\"accueil.php?choix=".$val["id_menu"]."\">".$val["designation"]."</a><br/>\n";
    }
     
    if (($choix)>20 && ($choix)<=30)
      {
      $sql="SELECT * from t_menu JOIN t_activites WHERE num_menu=id_menu AND num_page=6";
      $result=mysql_query($sql);
        while($val=mysql_fetch_array($result))
    {
      echo "<a href=\"accueil.php?choix=".$val["id_menu"]."\">".$val["designation"]."</a><br/>\n";
    }
      }
    if (($choix)>=31 && ($choix)<=45)  
      {
      $sql="SELECT * from t_menu JOIN t_agenda WHERE num_menu=id_menu AND num_page=3";
      $result=mysql_query($sql);
        while($val=mysql_fetch_array($result)) // c'est la ligne 30    {
      echo "<a href=\"accueil.php?choix=".$val["id_menu"]."\">".$val["designation"]."</a><br/>\n";
    }
      }
     
    mysql_close();


 
donc j'ai réessayer en refaisant ma table et en réécrivant tout mais j'arrive au même problème  
pb "mysql_fetch_array(): supplied argument is not a valid MySQL result resource in mon fichier on line 30"  
bref comment faire??????
Je ne comprends pas!
 
 
 

n°1344276
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-04-2006 à 16:20:50  profilanswer
 

Parce que tu ne sais pas ecrire une jointure et donc tu as une erreur retournée par msql_query, et $result n'est pas un "resultat mysql valide"(mot pour mot hein ;) )

n°1344280
mainjin
Posté le 11-04-2006 à 16:24:43  profilanswer
 

alors pourquoi ça marche dans le premier cas et pas dans le deuxième?
la requête est la même c'est seulement la table qui change.
Comment tu l'écrirais?

n°1344300
nargy
Posté le 11-04-2006 à 16:44:49  profilanswer
 

mysql.org : toute la syntaxe SQL, de nombreux exemples et contributions des utilisateurs


Message édité par nargy le 11-04-2006 à 16:45:21
n°1344450
mainjin
Posté le 11-04-2006 à 20:26:06  profilanswer
 

j'ai déjà vu mais rien qui répond à la question pourquoi dans le premier cas ça marche et pas le second?
dommage... j'aurais bien voulu savoir

n°1344577
nargy
Posté le 11-04-2006 à 22:24:15  profilanswer
 

mets un mysql_error juste après chaque requête


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

  problème avec le signe supérieur

 

Sujets relatifs
[PHP][XSLT][entity] Problème avec les Entities ...[Résolu]Problème avec un script de dockbar type mac OS
probleme de rafraichissement de l affichage sous firefoxproblème avec la commande "connect to"
probleme lien banniere flashproblème avec la commande xcopy
Probleme avec le controle LEAD dans VB6[c#][direct input] Problème utilisation joystick
script méteo problème à l'executionprobleme calcul taille SQL
Plus de sujets relatifs à : problème avec le signe supérieur


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