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 :

dernier enregistrement et incrementation [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut dernier enregistrement et incrementation
    Bonjour,

    Je souhaite récupérer la valeur maximum du champ 'id',
    puis insérer un nouvel enregistrement avec id +1 (je ne souhaite pas auto-incrémenter id).
    çà ne marche pas... pouvez-vous m'aidez svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mysql_connect("$host","$base","$passe");
    mysql_selectdb("$base");
     
    $select="SELECT id FROM table ORDER BY id DESC LIMIT 1;";
    $result=mysql_fetch_object(mysql_query($select));
    $id=$result->id;
     
    $sql="INSERT INTO table (id, champs) VALUES ('$id', '$champs')";
    mysql_query($sql, @mysql_connect("$host","$base","$passe"));
    exit;

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Hum il est ou ton +1 ?

    Au passage, tu pourrais utiliser max().
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    - oups : $id=$id++; (si je ne me trompe pas...)

    - utiliser max() pourquoi pas, mais j'ai essayé dans tous les sens je n'y arrive pas...

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Au passage encore, tu abuses des guillemets
    et ton mysql_connect, dans le mysql_query ce n'est pas joli joli.

    Ca devrait marcher comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mysql_connect($host,$base,$passe);
    mysql_selectdb("$base");
     
    $select="SELECT max(id) as id FROM table";
    $result=mysql_query($select);
    $row = mysql_fetch_array($result);
    $id=$row['id']++
     
    $sql="INSERT INTO table (id, champs) VALUES ($id, '$champs')";
    mysql_query($sql);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    et non le nouvel enregistrement n'a pas été inséré...

    [$id=$row['id']++;]

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    As-tu regardé l'erreur ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($sql) or die($sql . '<br/>' . mysql_error());
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    il n'y a pas de message d'erreur,
    et le nouvel enregistrement n'est pas inséré dans phpmyadmin...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    heu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql="INSERT INTO table (id, champs) VALUES ($id, '$champs')";
    echo $sql;
    mysql_query($sql);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    voici le message retourné :
    INSERT INTO url (id, champs) VALUES (, 'texte')

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ba affiche les erreurs sur la premiere requete alors, execute la eventuellement dans phpmyadmin pour voir ce qu'elle retourne.
    Fait un print_r($row); pour voir ce qu'il retourne.

    Bref n'attends pas seulement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    ah excuse moi

    INSERT INTO table (id, champs) VALUES (, 'texte')
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'texte')' at line 1

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Comme tu peux le voir, $id est vide donc le probleme se situe au dessus donc :
    Ba affiche les erreurs sur la premiere requete alors, execute la eventuellement dans phpmyadmin pour voir ce qu'elle retourne.
    Fait un print_r($row); pour voir ce qu'il retourne.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    sur la première requete :

    Query was empty

    Array ( [id] => 1 )

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Essai comme ca mais c'est etrange :
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    c'est ce que j'essayais justement mais :

    Parse error: syntax error, unexpected '[' in /.../essai.php on line 25

    ligne 25: $id = $row['id'] + 1;

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu peux montrer ton code actuel ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 57
    Par défaut
    Voici la solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    mysql_connect("$host","$base","$passe");
    mysql_selectdb("$base");
     
    $sql1 = "SELECT MAX(id) AS id FROM table LIMIT 1;";
    $result = mysql_fetch_assoc( mysql_query($sql1) );
    $id = $result['id'] + 1;
     
    $sql = "INSERT INTO table (id, champs) VALUES ('$id', '$champs')";
    mysql_query($sql);
    Merci sabotage pour ton aide

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

Discussions similaires

  1. [debutant] selection des 6 derniers enregistrements
    Par LoLoSS dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/07/2004, 15h27
  2. Recupération du ID du dernier enregistrement
    Par mustang-gx dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/03/2004, 10h04
  3. Récupérer dernier enregistrement d'une table?
    Par Invité dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/01/2004, 11h38
  4. Réponses: 10
    Dernier message: 01/08/2003, 13h45
  5. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 14h54

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