IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Utiliser une clé primaire de type string? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut Utiliser une clé primaire de type string?
    Bonjour,

    J'ai une base de données MySQL avec des tables qui contiennent des clé primaires de ce genre : 1ae-2e4g-r6

    Lorsque je fais appel à ces clés dans mon script PHP il m'affiche un message d'erreur. Si je modifie ma clé en numérique ça fonctionne mais lorsqu'elle contient des caractères autre que numérique ça ne marche pas.

    Auriez-vous une solution à me proposer pour que je puisse utiliser mes clés sans en modifier le type?

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Normalement le fait que ce ne soit pas des nombres ne devrait pas poser de problèmes (tant que tu n'essayes de faire des opértion dessus ou de les auto-incrémenter )

    Aurais-tu un exemple de code où ça fonctionne avec une clé nombre et pas une clé chaîne ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Voici un exemple de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    $query = "SELECT ID, user_name FROM users Order by user_name"; 
    $res = mysql_query($query); 
     
    print "<b><Font Size = 5><legend> Sélectionner l'utilisateur </legend>".'<BR>'.'<BR>';
    	print "<Select name ='liste_utilisateurs' onchange ='submit()'>";
    		while ($ligne = mysql_fetch_row($res))
    			{
    			 IF ($ligne[0]==$_POST['liste_utilisateurs']) print "<Option value = '$ligne[0]' selected> $ligne[1]</Option>";
    			 else print "<Option value = '$ligne[0]' > $ligne[1] </Option>";	
    			}		
    print "</Select>";
     
    $query = "SELECT ID, user_name, title, department FROM users WHERE ID =".$_POST['liste_utilisateurs'];
     
    $res = mysql_query($query);
     
    	print "<TABLE border =0>";
     
    	$ligne = mysql_fetch_row($res);
     
    		print "<TR><TD> ID </TD> <TD>  </TD>  <TD> <b>$ligne[0] </TD></TR>
    		 <TR><TD> Prénom </TD> <TD>  </TD> <TD> <b>$ligne[1] </TD></TR>
    		 <TR><TD> Nom </TD> <TD>  </TD> <TD> <b>$ligne[2] </TD></TR>
    		 <TR><TD> Mail </TD> <TD>  </TD>  <TD> <b>$ligne[3] </TD></TR>";
     
    	print "</TABLE>";
    Le but est d'afficher les informations correspondant au choix depuis la liste déroulante. Le problème c'est que si l'ID de l'utilisateur (ici la clé primaire) est autre que numérique les informations ne s'affichent pas et je reçois un message d'erreur. Ce problème ne se pose pas quand l'ID est de type numérique.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En fait, c'est peut-être un problème tout bête.
    Comme c'est une chaine, il faut que tu ajoutes des quotes autour de la valeur dans ta requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT ID, user_name, title, department FROM users WHERE ID ='".$_POST['liste_utilisateurs']."' ";
    Et n'hésites pas à user et abuser du renvoi d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res = mysql_query($query) or die ('Erreur sur '.$query.' : '.mysql_error());

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 9
    Points
    9
    Par défaut
    Effectivement c'était juste un problème de quotes

    En tous cas merci votre aide m'a été précieuse et m'a fait gagner beaucoup de temps.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une clé primaire de type string
    Par jacobinho dans le forum Doctrine2
    Réponses: 0
    Dernier message: 25/10/2012, 10h39
  2. [2.0] Convertir une cle primaire byte[] en string
    Par freddyboy dans le forum Accès aux données
    Réponses: 14
    Dernier message: 20/12/2010, 12h05
  3. [E-03] Utiliser une variable globale de type Const pour mes colonnes
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/10/2008, 20h48
  4. Update d'une Clé Primaire de type NuméroAuto
    Par Goblins dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/09/2008, 11h42
  5. Un select sans utiliser une clé primaire...
    Par Julio de Mendoza dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/02/2006, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo