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

Langage PHP Discussion :

Récupérer le dernier identifiant en auto-incrémentation


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Récupérer le dernier identifiant en auto-incrémentation
    Salut !

    Je voudrais simplement savoir pourquoi j'ai ce résultat "Resource id #3" quand je tape ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php $reponse = mysql_query("SELECT MAX(ID) FROM base_rma"); ?>
     
     
    		<p align="center"><strong><font color="#FF0000" size="6" face="Arial, Helvetica, sans-serif"><?php echo $reponse; ?> </font></strong></p></br></br></br></br></br>

    Pourtant en requete SQL dans phpmyadmin ça fonctionne !
    Oui je sais je débute...

    Merci d'avance pour vos réponses !

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    C'est parce que mysql_query() renvoie un objet Resource.
    Pour le lire, il faut utiliser les fonctions mysql_fetch_row, mysql_fetch_assoc et surtout mysql_fetch_array.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while($data = msyql_fetch_array($query)) {
        print_r($data);
    }

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Ok ! ça fonctionne ! Mais...

    soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p align="center"><strong><font color="#FF0000" size="6" face="Arial, Helvetica, sans-serif">
    		<?php $reponse = mysql_query("SELECT MAX(ID) FROM base_rma"); // Requête SQL
    		00000<?php $reponse = mysql_query("SELECT MAX(ID) FROM base_rma"); // Requête SQL
    		while($data = mysql_fetch_array($reponse)) {
    		print_r($data);
    J'ai bon ?

    A ça le résultat affiche : Array ( [0] => 34 [MAX(ID)] => 34 )

    Et moi je ne voudrais que la valeur 34.

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    mysql_fetch_array($reponse) te renvoi chaque ligne retournée par ton select sous forme de tableau indicé ou chaque indice correspond a une colonne .

    donc

    te renvoi ton 34 lol
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup !!

    Je pense pouvoir me débrouiller grâce à vous.

    Juste une petite question :

    Concernant le : Array ( [0] => 34 [MAX(ID)] => 34 )

    Si echo $data[0]; affiche ma valeur 34, à quoi correspond le [MAX(ID] ?

    Car quand j'écris echo $data[MAX(ID)], ça me fais une erreur.

    J'espère que ma question est bien formulé !

    Encore merci !!

  6. #6
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    mysql_fecth_array() te renvoi les colonnes dans un tableau indicé ET avec les noms des colonnes . Max(ID) est le nom de la colonne 0 !

    SI tu avais fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(ID) as max FROM base_rma
    ton parametre se nomerait max
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  7. #7
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    La fonction mysql_fetch_array renvoie un tableau qui contient les données en double, sous 2 formes :
    - indexées numériquement (c'est le 0) : on l'appelle avec $data[0]
    - indexées alphanumériquement (c'est le MAX(ID)) : on l'appelle avec $data['MAX(ID)'] - ne pas oublier les quotes.
    Les index alphanumériques sont très pratiques si tu as des requêtes dont les champs peuvent changer de place, et les numériques sont utiles si tu veux garder un ordre précis dans ton tableau (si les champs appelés sont susceptibles de changer).

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

Discussions similaires

  1. [Etats & Requêtes] Récupérer le dernier auto incrément sur base SQL Server
    Par droliprane dans le forum WinDev
    Réponses: 6
    Dernier message: 25/05/2013, 16h16
  2. Réponses: 7
    Dernier message: 12/06/2011, 17h22
  3. Réponses: 8
    Dernier message: 08/06/2006, 11h20
  4. Récuperer l'identifiant d'un auto-incrémente
    Par MANU_2 dans le forum Bases de données
    Réponses: 5
    Dernier message: 19/10/2005, 01h18
  5. [auto-incrémentation] récupérer la valeur insérée
    Par laffreuxthomas dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 16/01/2005, 15h53

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