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 :

Problème avec insert into


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Tchad

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Problème avec insert into
    Bonjour. Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql='INSERT INTO message (id_expéditeur, id_destinataire, contenu, date_message ) VALUES ("'.$_SESSION['id_patient '].'","'.$id_destinataire.'", "'.$message.'", "'.$date.'")';
    La requête m'insert normalement dans la base de données mais quand j'essaie d'envoyer un deuxième message avec le même id_destinataire et le même id_expéditeur ça n'insert pas dans la base de données pourtant le id auto incrémente dans la base de données augmenté. Je veux que la requête m'insert autant des message dans la base de données avec le même id_expéditeur Et le même id_destinataire.

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Veuillez nous montrer la structure complète de la table (avec les index).
    N'avez vous aucune erreur quand vous exécuter cette quête ?

    Si vous faites ces requêtes avec un accès direct à MySQL (via PhpMyAdmin par exemple), n'avez-vous pas d'erreur ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Tchad

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Voici la structure complète de ma table message : id_message, id_expéditeur, id_destinataire, contenu, photo, data_message.
    La requête s'exécute sans erreur mais quand je lance la même requête pour la 2e fois avec les mêmes clés id_expéditeur et id_destinataire Ça refuse d'insérer dans la base de données . J'ai copié la requête j'amène dans phpmyadmin voici le message d'erreur qui s'affiche:
    #1062- Duplicate entry '16-7' for 'id_patient '.
    Et voici l'exemple de la requête que j'ai fait avec phpmyadmin
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO message (id_expéditeur,id_destinataire,contenu )VALUES ("16","17", "vous");
    ça prend mais quand j'essaie la même requête pour la 2e fois avec les mêmes clés id_expéditeur et id_destinataire ça marche pas.

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Bonjour,

    Oui c'est bien ce qu'il me semblait, c'est pour ça que je demandais la structure ET les index.

    Actuellement, vous avez un index de type PRIMARY (probablement pas) ou UNIQUE (probablement) sur les champs id_expéditeur et id_destinataire.
    Si une clé est unique, cela veut dire -comme son nom l'indique- que le record qui compose cette clé ne doit exister qu'une seule fois en base de données.
    Il faut donc changer ou supprimer cet index.

    Ce qui m'intrigue est que vous testez avec des valeurs 16 et 17 et le message d'erreur indique 16-7.
    De plus, la clé s'emble s'appeler "id_patient" mais à part dans le message d'erreur, il n'y a aucune référence à ce nom.

    Bref, comme demandé initialement, il faut nous fournir TOUTES les infos si on veut pouvoir répondre précisément.
    Le plus simple est souvent d'aller dans PhpMyAdmin, faire un export de la table (sans les données) et copier/coller ce résultat ici.
    Il doit normalement commencer par CREATE TABLE ...

  5. #5
    Membre à l'essai
    Homme Profil pro
    graphiste
    Inscrit en
    Septembre 2021
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : graphiste
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2021
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par darkstar123456 Voir le message
    Ce qui m'intrigue est que vous testez avec des valeurs 16 et 17 et le message d'erreur indique 16-7.
    De plus, la clé s'emble s'appeler "id_patient" mais à part dans le message d'erreur, il n'y a aucune référence à ce nom.
    Effectivement cette erreur est étrange, si le champ id_expediteur est pas typé en entier il est possible qu'une ligne ai déjà la valeur "16-17" ?!
    +1 Je pense également qu'il y à une clef unique, je crois qu'il y à une confusion :
    j'imagine que vous n'êtes pas en production, dans la table message mettez un identifiant unique id_message auto incrémenté, les clefs id_expediteurs et id_destinataires sont des clefs étrangères

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Tchad

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2019
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Effectivement vous avez raison j'ai vérifié les clés étrangères id_expéditeur et id_destinataire sont sur UNIQUE . J'ai pu corriger grand merci

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 386
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    mettre en SVP.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. problème avec insert into
    Par ulysse031 dans le forum JDBC
    Réponses: 14
    Dernier message: 04/05/2007, 20h01
  2. problème avec insert into
    Par ulysse031 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 29/04/2007, 15h40
  3. Problème avec INSERT INTO
    Par Armaklan dans le forum Oracle
    Réponses: 3
    Dernier message: 28/02/2007, 11h15
  4. Réponses: 12
    Dernier message: 25/11/2005, 12h29
  5. Réponses: 3
    Dernier message: 10/05/2005, 11h02

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