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

  FORUM HardWare.fr
  Programmation
  PHP

  debutant : Affichage variable dans url- problème d'accents

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

debutant : Affichage variable dans url- problème d'accents

n°1043306
foxcssfox
The design of CSS...
Posté le 11-04-2005 à 18:10:02  profilanswer
 

Bonjour,
 
Voici une question de débutant, svp.
 
voila, j'ai créer une table, ainsi qu'un formulaire pour inserer,modifier et supprimer...
J'ai cru que j'y arriverai pas, mais tout est bon (et je suis super content de moi), je fais
grave des progres en php...
 
mais voila, je bute sur une nouvelle étape :
j'aimerai bien afficher le détail de chaque enregistrement dans une page dont l'url ressemblerait à ça

Code :
  1. http://wwww.monsite.com/membres?=francois


 
j'ai fait une liste qui récupérere tous les pseudos : la voici :
 

Code :
  1. //requête SQL:
  2.     $sql = "SELECT *
  3.       FROM personnes
  4.       ORDER BY pseudo" ;
  5.  
  6.     //exécution de la requête:
  7.     $requete = mysql_query( $sql, $cnx ) ;
  8.  
  9.     //affichage des données:
  10.     while( $result = mysql_fetch_object( $requete ) )
  11.     {
  12.        echo("<div align=\"center\">".$result->pseudo." ".$result->nom." <br /> ".$result->prenom." <br /> <a href=\"affichage.php?pseudo=".$result->pseudo."\">affichage</a><br>\n" ) ;
  13.     }
  14.   ?>


 
mais voila... je bloque.. que faire pour que lorsqu'on clique sur affichage : on est quelque le détail...
 
Ou est ce que je mets un  code du genre :
 

Code :
  1. //récupération de la variable d'URL,
  2.   //qui va nous permettre de savoir quel enregistrement afficher
  3.   $id  = $_GET["pseudo"] ;
  4.   //requête SQL:
  5.   $sql = "SELECT *
  6.             FROM personnes
  7.     WHERE pseudo=".$id ;
  8.    
  9.   //exécution de la requête:
  10.   $requete = mysql_query( $sql, $cnx ) ;
  11.  
  12.   //affichage des données:
  13.   if( $result = mysql_fetch_object( $requete ) ){
  14.   ?>
  15. nom : <?php echo($result->nom) ;?><br />
  16. prénom : <?php echo($result->prenom) ;?><br />
  17. adresse<?php echo($result->adresse) ;?><br />
  18. <?php echo($result->cp) ;?>
  19. <?php echo($result->ville) ;?><br />
  20. telephone : <?php echo($result->telephone) ;?>
  21. <?
  22. }


 
voila, comment "creer la page : http://wwww.monsite.com/membres?=francois"  
pour que s'affiche le détail tous les champs de la table ?
 
VOILA, j'espère que j'ai été clair... et j'espère que vos réponse ne seront pas
trop sybelline pour moi...
 
Merci de me donner des pistes ou des liens avec des tutoriaux (simples) svp....
 
merci d'avance
un bb phpman


Message édité par foxcssfox le 12-04-2005 à 12:22:24
mood
Publicité
Posté le 11-04-2005 à 18:10:02  profilanswer
 

n°1043397
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 11-04-2005 à 20:17:02  profilanswer
 

tu mets tes codes là sur une page que tu nomme membre.php
 
et ton lien pour l'affichage des données du membres doit être comme celà

Code :
  1. http://wwww.monsite.com/membres.php?pseudo=francois


 
et pas

Code :
  1. http://wwww.monsite.com/membres?=francois


 :non:  
 
et sinon je trouve le code qui suit bien dangeureux:

Code :
  1. $id  = $_GET["pseudo"] ;


:/
 
A+
 
edit:
ça ça devrait être bon (je debute aussi hein attention  :o ):

Code :
  1. <?php
  2. $connex = mysql_connect(localhost, root, password);
  3. $select = mysql_select_db($bdd,$connex);
  4.      //récupération de la variable d'URL,
  5.        //qui va nous permettre de savoir quel enregistrement afficher
  6.        $id  = htmlentities($_GET["pseudo"], ENT_QUOTES) ;
  7.        //requête SQL:
  8.        $sql = "SELECT *
  9.                  FROM personnes
  10.              WHERE pseudo=".$id." ;
  11.              
  12.        //exécution de la requête:
  13.        $requete = mysql_query( $sql) ;
  14.        $donnee = mysql_fetch_array( $requete );
  15.      
  16.     echo "nom : ".$donnee['nom']."<br />\n
  17.      prénom : ".$donnee['prenom']."<br />\n
  18.      adresse: ".$donnee['adresse']."<br />\n
  19.      ".$donnee['cp']."<br />\n
  20.      ".$donnee['ville']."<br />\n
  21.      telephone : ".$donnee['telephone']."<br />\n";
  22. ?>


Message édité par pmusa le 11-04-2005 à 20:30:50
n°1043485
esox_ch
Posté le 11-04-2005 à 21:49:42  profilanswer
 

Parcontre pourquoi tu utilises la fonction mysql_fetch_objet au lieu d'utiliser une qui n'entraine pas de notion objet ==> Plus facile a comprendre pour une debutant (=> mysql_fetch_array,...)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1043491
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 11-04-2005 à 21:52:45  profilanswer
 

mysql_fetch_object ça lui fait taper moins de code.  :D  
bah t'as les crochets et les quotes en moins à taper. "->" c'est plus court.  
 
après tout si c'est possible pourquoi pas.  [:airforceone]


Message édité par pmusa le 11-04-2005 à 21:53:12
n°1043547
esox_ch
Posté le 11-04-2005 à 22:24:47  profilanswer
 

le jour ou il voudra recuperer les colonnes de maniere dynamique il sera emmerdé s'il aura pas approfondi un peu ses notion objet :p


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1043839
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 10:38:34  profilanswer
 

il y a un message d'erreur, je vois pas où est l'erreur :

Code :
  1. Parse error: parse error, unexpected T_STRING in


 
ici :
 

Code :
  1. echo "nom : ".$donnee['nom']."<br />\n
  2.       prénom : ".$donnee['prenom']."<br />\n
  3.       adresse: ".$donnee['adresse']."<br />\n
  4.       ".$donnee['cp']."<br />\n
  5.       ".$donnee['ville']."<br />\n
  6.       telephone : ".$donnee['telephone']."<br />\n";


 
Pouvez vous m'aider Svp ?
problème avec les guillemets ?
 
Merci


Message édité par foxcssfox le 12-04-2005 à 10:40:43
n°1043858
kenji_lol
Pas de bras pas de chocolat !!
Posté le 12-04-2005 à 10:48:07  profilanswer
 

bah non apparement pas de soucis de guillemet tout est en place
par contre mefie souvent si il te dt une erreur ligne, par exemple, 10 cela ne vient pas forcement de laligne 10 mais celle d'apres ou avant. Voir meme 10 ligne au dessus suivant l'erreur.
 
mais attention je suis un debutant qui fais par des probleme que j'ai deja eu avec un autre debutant :D

n°1043873
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 10:53:11  profilanswer
 

VOIci le code complet :
 

Code :
  1. <?php
  2.   //connection au serveur
  3.   $cnx = mysql_connect( "ftpperso.free.fr", "XXX", "XXX" ) ;
  4.   //sélection de la base de données:
  5.   $db  = mysql_select_db( "XXX" ) ;
  6.  
  7.     //requête SQL:
  8.     $sql = "SELECT *
  9.       FROM personnes     
  10.     WHERE pseudo= ".$id." ;
  11.            
  12.              //exécution de la requête:
  13.            
  14.             $requete = mysql_query( $sql) ;
  15.             $donnee = mysql_fetch_array( $requete );
  16.            
  17.           echo "
  18.           nom : ".$donnee['nom']."<br />\n
  19.           prénom : ".$donnee['prenom']."<br />\n
  20.           adresse: ".$donnee['adresse']."<br />\n
  21.           ".$donnee['cp']."<br />\n
  22.           ".$donnee['ville']."<br />\n
  23.           telephone : ".$donnee['telephone']."<br />\n";
  24.                  ?>
  25.  
  26. </body>
  27. </html>


 
en attendant, je continue à chercher,
Dés que j'ai trouvé, je viendrais corriger mon script ici
 
merci
merci..


Message édité par foxcssfox le 12-04-2005 à 10:54:18
n°1043883
kenji_lol
Pas de bras pas de chocolat !!
Posté le 12-04-2005 à 10:57:02  profilanswer
 

foxcssfox a écrit :

 
    //requête SQL:
    $sql = "SELECT *
       FROM personnes      
     WHERE pseudo= ".$id." ;


 
alors je pense que cela viens du fait que tu as oublier de fermer les guillemet apres ta requete et tu na pas besoin des guillemet autour de ta variable comme ca :
 

Code :
  1. //requête SQL:
  2.     $sql = "SELECT *
  3.       FROM personnes     
  4.     WHERE pseudo= $id " ;

n°1043891
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 11:02:57  profilanswer
 

Ok merci Kenji_lol

mood
Publicité
Posté le 12-04-2005 à 11:02:57  profilanswer
 

n°1043932
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 11:29:02  profilanswer
 

PROBLEME RESOLU, merci à tous, voici le code corrigé :
 

Code :
  1. <?php
  2.   //connection au serveur
  3.   $cnx = mysql_connect( "fptperso.free.fr", "xxx", "xxx" ) ;
  4.   //sélection de la base de données:
  5.   $db  = mysql_select_db( "xxx" ) ;
  6.      //récupération de la variable d'URL,
  7.        //qui va nous permettre de savoir quel enregistrement afficher
  8.         $id  = htmlentities($_GET["nom"], ENT_QUOTES) ;
  9.  
  10.     //requête SQL:
  11.     $sql = "SELECT *
  12.       FROM personnes
  13.       WHERE nom = '$id' " ;   
  14.          
  15.              //exécution de la requête:         
  16.             $requete = mysql_query( $sql) ;
  17.             $donnee = mysql_fetch_array( $requete );
  18.           echo "nom : ". $donnee['nom'] ."<br />\n
  19.           prénom : ". $donnee['prenom'] ."<br />\n
  20.           adresse: ". $donnee['adresse'] ."<br />\n
  21.           ". $donnee['cp'] ."<br />\n
  22.           ". $donnee['ville'] ."<br />\n
  23.           telephone : ". $donnee['telephone'] ."<br />\n";
  24.                  ?>


Message édité par foxcssfox le 12-04-2005 à 11:29:26
n°1043938
FlorentG
Unité de Masse
Posté le 12-04-2005 à 11:32:43  profilanswer
 

Vire les doubles-quotes quand y'en a pas besoin. Et inutile de faire de la concaténation pour un echo :

echo 'nom : ', $donnee['nom'] , '<br />', "\n",
     'prénom : ', $donnee['prenom'] , '<br />', "\n",
     'adresse: ', $donnee['adresse'] , '<br />', "\n",
                  $donnee['cp'] , '<br />', "\n",
                  $donnee['ville'] , '<br />', "\n",
     'telephone : ', $donnee['telephone'] , '<br />', "\n";


Message édité par FlorentG le 12-04-2005 à 11:32:54
n°1043949
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 12-04-2005 à 11:39:18  profilanswer
 

c'est quoit tes virgules Florent?

n°1043952
FlorentG
Unité de Masse
Posté le 12-04-2005 à 11:40:13  profilanswer
 

J'ai dis pas besoin de concaténation ;) Avec echo tu met des virgules, et il envoi tel quel sans se faire chier à concaténer

n°1043996
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 12:07:52  profilanswer
 

c'est vrai, c'est plus simple pour moi, merci pour cette précision, FlorentG.


Message édité par foxcssfox le 12-04-2005 à 12:11:09
n°1044022
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 12:19:40  profilanswer
 

nouveau problème, les lettres "accentuées" et "spéciales (ç par exemple) ne sont pas pris en compte malgré la fonction HTMLENTITIES.

Code :
  1. //récupération de la variable d'URL,
  2.      //qui va nous permettre de savoir quel enregistrement afficher
  3.          $id  = htmlentities($_GET["nom"], ENT_QUOTES) ;


 
 
EXEMPLE : nom = célimène
j'obtiens cela dans l'URL

Code :
  1. affichage.php?nom=c%E9lim%E8ne


 
Que dois je faire ?  
créer une fonction spécifique, sinon ou est mon erreur ?


Message édité par foxcssfox le 12-04-2005 à 13:59:39
n°1044197
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 14:11:19  profilanswer
 

J'ai trouvé cette fonction
qui par exemple :

Code :
  1. // Exemple :
  2. echo SuppAccents("déjà" );
  3. // affiche "deja" (sans les accents donc)


 
 

Code :
  1. function SuppAccents($chaine){
  2. $tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
  3. $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
  4. return(strtr($chaine,$tofind,$replac));
  5. }


 
est-ce la bonne solution ?
 
En ce qui me concerne, c'est la variable nom qui m'interesse, donc logiquement
je devrais faire ça :
 
     

Code :
  1. $id  = SuppAccents(htmlentities($_GET["nom"], ENT_QUOTES)) ;


 
mais apparemment ca ne fonctionne pas, je comprends où est mon erreur...


Message édité par foxcssfox le 12-04-2005 à 14:14:19
n°1044210
FlorentG
Unité de Masse
Posté le 12-04-2005 à 14:20:32  profilanswer
 

Je dirais qu'avec l'utf-8, y'a moyen de foutre le bordel :D

n°1044456
kenji_lol
Pas de bras pas de chocolat !!
Posté le 12-04-2005 à 16:19:52  profilanswer
 

FlorentG a écrit :

Je dirais qu'avec l'utf-8, y'a moyen de foutre le bordel :D


 
ca correspond à quoi exactement ? Dans PHPMyadmin il y a interclassement mais j'ai pas trop compreis?
ca correspond au caractère de chaque pays genre table ASCI ??

n°1044459
FlorentG
Unité de Masse
Posté le 12-04-2005 à 16:21:43  profilanswer
 

C'est au-dessus de l'ASCII. L'ASCII ne gère que des tables de 255 caractères. L'unicode (utf-8, 16 et 32) en gère plus de 4 milliards, et y'a tous les alphabets du monde, et encore la place pour ceux de venus et de mars :)

n°1044529
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 16:56:00  profilanswer
 

ok les gars, mais je vois pas trop le rapport, j'ai toujours pas d'idees, pour enlever les accents d'une variable pour qu'elle passe en get dans l'URL.


Message édité par foxcssfox le 12-04-2005 à 16:56:58
n°1044554
Surfoo
Ça va ? ok.
Posté le 12-04-2005 à 17:08:21  profilanswer
 

La table personnes n'as pas un auto incrément sur les pseudos pour désigner un id de pseudo ? Ca serait plus simple.

n°1044570
Hermes le ​Messager
Breton Quiétiste
Posté le 12-04-2005 à 17:18:36  profilanswer
 

foxcssfox a écrit :

ok les gars, mais je vois pas trop le rapport, j'ai toujours pas d'idees, pour enlever les accents d'une variable pour qu'elle passe en get dans l'URL.


 
On fait pas. Attribue un n° de membre comme tout le monde hein... Qu'est-ce que c'est que ces histoires de vouloir faire passer des accents dans une URL...  :D  

n°1044575
micfont999
Simplement Moi
Posté le 12-04-2005 à 17:23:41  profilanswer
 

Sinon bah tu enlève les accents le temps du tranfert pour les remettre par la suite - bidouillage bidouillage :D - avec la fonction : strtr($variable, "'", "_" ); par exemple et après que le passage en get soit terminé tu reconverti, strtr($variable, "_", "'" ); lol mais c'est du bidouillage // ;)


---------------
> http://graphicriver.net/user/micfo [...] micfont999  
n°1044598
KangOl
Profil : pointeur
Posté le 12-04-2005 à 17:44:31  profilanswer
 

urlencode et urldecode vous connaisser ?


---------------
Nos estans firs di nosse pitite patreye...
n°1044604
Hermes le ​Messager
Breton Quiétiste
Posté le 12-04-2005 à 17:47:34  profilanswer
 

KangOl a écrit :

urlencode et urldecode vous connaisser ?


 
Ouai et ça pue. Rien ne vaut un base64_encode/decode.  :D  Surtout pour les noms de fichiers d'ailleurs. ;)

n°1044628
foxcssfox
The design of CSS...
Posté le 12-04-2005 à 18:12:49  profilanswer
 

Citation :

On fait pas. Attribue un n° de membre comme tout le monde hein... Qu'est-ce que c'est que ces histoires de vouloir faire passer des accents dans une URL...


 
Maieuuuhs, je sais pas moi...., je débute ...  Finalement, j'ai pris l'ID...de ma table : ca regle tout mes problemes...
(fallait le dire plus tôt ;-))
 
Merci en tout cas, ca m'a permis d'apprendre encore quelques trucs...


Message édité par foxcssfox le 12-04-2005 à 18:13:36
mood
Publicité
Posté le   profilanswer
 


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

  debutant : Affichage variable dans url- problème d'accents

 

Sujets relatifs
[Caml] Conception de ptit jeux --> probleme![RESOLU] Pb d'affichage avec plusieurs éléments
Problème avec la commande "exec" en PHPProbleme avec ActionListener
probleme lienFormulaire, problème insertion de données
[HTML] probleme de lien image[resolu]Problème de compilation sur visaul C++
Problème PHP -> affichage de certaines choses d'une table MySQL 
Plus de sujets relatifs à : debutant : Affichage variable dans url- problème d'accents


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