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 :

Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'numSalle' cannot be null


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'numSalle' cannot be null
    Bonjour j'ai cette erreur

    Enfaite je remplis des informations dans un formulaire puis je vais sur une page et encore une autre c'est sur cette page que je veux insérer mes données

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php
    session_start();  // démarrage d'une session
        $_SESSION['lettre'] = $lettre; 
        $_SESSION['numSalle'] = $numSalle;
    try { 
        $bdd  = include 'includes/connexion_bdd.php'; 
        $sql = 'INSERT INTO salle(numSalle,lettreBatimentSalle) VALUES (:numSalle, :lettre)';
        //la ligne qui lance la requête préparée
        $stmt = $bdd->prepare($sql);
        $stmt->execute(array(
    	    ':numSalle' => $numSalle,
    	    ':lettre' => $lettre
        ));
    ?>
     
    <!DOCTYPE html>
    <html >
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <form  action="" method="post">
     
            <?php
                $nb_insert = $stmt->rowCount();
                     echo '<h3> '.$lettre.' '.$numSalle.' </h3>';
                              }catch (Exception $e) {
                //s'il y a un problème PHP ou SQL, tout s'affichera ici
                    echo "Erreur ! " . $e->getMessage() . "<br/>";
                }
            ?>
        </form>
    </body>
    </html>
    Ma table :
    CREATE TABLE `salle` (
    `idSalle` int(11) NOT NULL,
    `numSalle` int(11) NOT NULL,
    `lettreBatimentSalle` varchar(50) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Et $numSalle. D’où vient sa valeur ? Je ne vois pas de $_GET ou $_POST qui rempliraient cette variable.
    A moins que tu voulais écrire $numSalle = $_SESSION["numsalle"];

  3. #3
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    Le $numSalle vient d'un formulaire POST qui se trouve sur une autre page. Donc j'ai écris "$_SESSION['numSalle'] = $numSalle" pour récupérer la valeur ou le traitement php doit ce faire. Et sur ma page ou il y a le formulaire j'ai écris le code php suivant pour déclarer la variable session

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    session_start();  // démarrage d'une session
    $lettre = $_POST['sltBatiment'];
    $numSalle = $_POST['numSalle'];
     
    $_SESSION['lettre'] = $lettre; 
    $_SESSION['numSalle'] = $numSalle;
    ?>

  4. #4
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Et il n’y a rien qui te choques ?

  5. #5
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    Bah c'est erreur de syntaxe ?

  6. #6
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Tu affectes $numSalle à la variable de session cf. ton premier message. De ce que tu écris ensuite est-ce que ce ne devrait pas être le contraire ?

  7. #7
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    Tu veux dire que ça serait plutôt comme ceci ?

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php
    session_start();  // démarrage d'une session
        $lettre = $_SESSION['lettre']; 
        $numSalle = $_SESSION['numSalle'];
    try { 
        $bdd  = include 'includes/connexion_bdd.php'; 
        $sql = 'INSERT INTO salle(numSalle,lettreBatimentSalle) VALUES (:numSalle, :lettre)';
        //la ligne qui lance la requête préparée
        $stmt = $bdd->prepare($sql);
        $stmt->execute(array(
    	    ':numSalle' => $numSalle,
    	    ':lettre' => $lettre
        ));
    ?>
     
    <!DOCTYPE html>
    <html >
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        <form  action="" method="post">
     
            <?php
                $nb_insert = $stmt->rowCount();
                     echo '<h3> '.$lettre.' '.$numSalle.' </h3>';
                              }catch (Exception $e) {
                //s'il y a un problème PHP ou SQL, tout s'affichera ici
                    echo "Erreur ! " . $e->getMessage() . "<br/>";
                }
            ?>
        </form>
    </body>
    </html>

  8. #8
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    As-tu essayé ?

  9. #9
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    Oui bien sur

    Petite précision je sais pas si ça change quelque chose mais mon formulaire se trouve sur une page et je dois parcourir une page php pour arriver sur la page qui traitera les information pour les insérer

  10. #10
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Ce qui est sûr c’est qu’il faut affecter $numSalle avec la variable de session et pas le contraire. Donc si ça ne fonctionne pas c’est que la variable de session n’est pas renseignée.

    Comment arrive t’on sur la page qui pose problème ?
    As tu toujours le message d’erreur ou bien un autre ?

    Que donne ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    session_start();  // démarrage d'une session
        $lettre = $_SESSION['lettre']; 
        $numSalle = $_SESSION['numSalle'];
    
    print "lettre $lettre<br/>";
    
    print "numSalle $numSalle<br/>";
    

  11. #11
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    Alors oui mais avec un ça en plus
    "lettre
    numSalle
    Erreur ! SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'numSalle' cannot be null"


    et j'ai compris l'erreur de syntaxe aussi

  12. #12
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Ca prouve que les variables de session sont vides.

  13. #13
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    Donc le problème vient du formulaire ?

  14. #14
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    La question est. Comment accèdes-tu à la page qui pose problème ?

  15. #15
    Membre confirmé Avatar de IamKanagawa
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 114
    Par défaut
    D'accord j'ai trouvé mon erreur enfaite je mettais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      $lettre = $_POST['sltBatiment'];
      $numSalle = $_POST['numSalle'];
     
      $lettre = $_SESSION['lettre'];
      $numSalle = $_SESSION['numSalle'];
    et la j'ai mis cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      $_SESSION['lettre']= $_POST['sltBatiment'];
      $_SESSION['numSalle']= $_POST['numSalle'];
     
      $lettre = $_SESSION['lettre'];
      $numSalle = $_SESSION['numSalle'];

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/08/2017, 23h02
  2. Integrity constraint violation: 1048 Column 'abc' cannot be null
    Par Elwood J. Blues dans le forum Doctrine2
    Réponses: 6
    Dernier message: 13/06/2015, 16h43
  3. Réponses: 2
    Dernier message: 16/03/2013, 18h06
  4. Réponses: 2
    Dernier message: 14/08/2011, 14h25
  5. Réponses: 3
    Dernier message: 04/03/2011, 09h30

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