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 :

Insérer données avec champs à 0 PAR DEFAUT


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut Insérer données avec champs à 0 PAR DEFAUT
    Bonjour à tous.
    Merci pour votre aide.

    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
     
    $servername = "localhost";
    $database = "philippe";
    $username = "root";
    $password = "";
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);
    // Check connection
    mysqli_close($conn);
    // session_start();
     
    // if(isset($_POST["conducteur"], $_POST["lieudepart"], $_POST["lieuarrive"],$_POST["participation"],$_POST["debutActivite"], $_POST["finActivite"] )) {
     
     
        $conducteur = htmlspecialchars( $_POST['conducteur']) ;
        $lieudepart = htmlspecialchars( $_POST['lieudepart']);
        $lieuarrive = htmlspecialchars( $_POST['lieuarrive']);
        $participation = htmlspecialchars( $_POST['participation']);
        $datedepart = htmlspecialchars( $_POST['$datedepart']);
        $datearrive = htmlspecialchars( $_POST['$datearrive']);
     
        $datedepart = date('Y/m/d', strtotime($datedepart));
        $datearrive = date('Y/m/d', strtotime($datearrive));
     
     
        $conn = mysqli_connect('127.0.0.1', 'root', '', 'philippe');
     
     
    $req = " INSERT INTO `orders` (`order_number`, `conducteur`, `lieudepart`, `lieuarrive`, `participation`, `datedepart`, `datearrive`,' 
    idtrajet', 'idmembre') VALUES (NULL,'$conducteur','$lieudepart','$lieuarrive','$participation','$debutActivite','$finActivite',0,0)";
    try {$conn->query($req);} catch (Exception $e) {$e->getMessage();}
    echo 'Success';
    Ca ne fontionne pas malgres un copier coller d'un INSERT avec PHPMYSL

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 327
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 327
    Billets dans le blog
    17
    Par défaut
    Il existe plusieurs manières de faire.

    Tu peux par exemple procéder ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = <<<SQL
        INSERT INTO orders (column, ...)
        VALUES (NULLIF('$value', ''), ...)
        SQL;
    Avec NULLIF() si $value (qui doit être proprement échappée !) vaut chaîne vide => Alors NULL est retourné, sinon $value est retourné.

    https://dev.mysql.com/doc/refman/8.0...unction_nullif

    Important : il ne faut pas enregistrer tes valeurs codées en HTML (cela permet d'avoir de la data neutre de la techno de rendu) et il faut les échapper correctement pour SQL, donc pas de htmlspecialchars(), mais plutôt un mysqli_real_escape_string()

    https://www.php.net/manual/fr/mysqli...ape-string.php

  3. #3
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 327
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 327
    Billets dans le blog
    17
    Par défaut
    Par défaut inserer donnee avec champs à PAR DEFAUT 0
    Ah tiens, il me semble que c'était NULL par défaut, soit j'ai mal lu, soit il y a eu du changement entre temps

    Pour poursuivre sur une solution purement SQL, on peut utiliser COALESCE() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = <<<SQL
        INSERT INTO orders (column, ...)
        VALUES (COALESCE(NULLIF('$value', ''), 0), ...)
        SQL;
    Si $value vaut chaine vide on le valorise NULL (avec NULLIF()), si NULLIF() retourne NULL COALESCE() permet d'obtenir 0.

    https://dev.mysql.com/doc/refman/8.0...ction_coalesce

  4. #4
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    Merci pour ton attention.
    Je comprend pas grand chose.

  5. #5
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    J'essaye ceci en dure dans myphp admin et ca fonctionne.
    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
     
    <?php
     
    $servername = "localhost";
    $database = "philippe";
    $username = "root";
    $password = "";
    // Create connection
    $conn = mysqli_connect($servername, $username, $password, $database);
    // Check connection
    mysqli_close($conn);
     
        $conn = mysqli_connect('127.0.0.1', 'root', '', 'philippe');
     
        $req = " INSERT INTO `orders` (`order_number`, `conducteur`, `lieudepart`, `lieuarrive`, `participation`, `datedepart`, `datearrive`,'
    idtrajet', 'idmembre') VALUES (NULL,$conducteur,$lieudepart,$lieuarrive,$participation,$datedepart,$datearrive,0,0)";
     
        try {$conn->query($req);} catch (Exception $e) {$e->getMessage();}
    echo 'Success';
     
    // ceci fonction dans php myadmin.
    // INSERT INTO `orders` (`order_number`, `conducteur`, `lieudepart`, `lieuarrive`, `participation`, `datedepart`, `datearrive`, `idtrajet`, `idmembre`) VALUES (NULL, 'Philippe', 'Paris', 'Limoge', '50', '2022-08-15 12:31:27.000000', '2022-08-31 14:31:27', '0', '0');
    Comment l'adapter Merci. En sachant que les variables seront fournies avec required dans la propritee des champs du formulaire.

  6. #6
    Membre éclairé Avatar de Philcmoi
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 666
    Par défaut
    J ai aussi fait cela mais ca ne marche pas.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <?php
    if(isset($_POST["conducteur"], $_POST["lieudepart"], $_POST["lieuarrive"],$_POST["participation"],$_POST["debutActivite"], $_POST["finActivite"] )) {
     
    $order_number = NULL;
    $conducteur = htmlentities($_POST['conducteur']) ;
    $lieudepart = htmlentities($_POST['lieudepart']);
    $lieuarrive = htmlentities($_POST['lieuarrive']);
    $participation = htmlentities($_POST['participation']);
    $datedepart = htmlentities($_POST['$datedepart']);
    $datearrive = htmlentities($_POST['$datearrive']);
    $idtrajet = '0';
    $idmembre = '0';
    try
     
    {
     
        $bdd = new PDO('mysql:host=localhost;dbname=philippe','root', '');
        $req = $bdd->prepare("INSERT INTO 'orders' ('order_number', 'conducteur', 'lieudepart`, 'lieuarrive', 'participation', 'datedepart', 'datearrive','idtrajet', 'idmembre') 
    VALUES (:order_number,:conducteur,:lieudepart,:lieuarrive,:participation,:datedepart,:datearrive,:idtrajet,:idmembre)");
     
        $req->execute(array(
     
            'order_number' => NULL,
     
            'conducteur' => $conducteur,
     
            'lieudepart' => $lieudepart,
     
            'lieuarrive' => $lieuarrive,
     
            'participation' => $participation,
     
            'datedepart' => $datedepart,
     
            'datearrive' => $datearrive,
     
            'idtrajet' => $idtrajet,
     
            'idmembre' => $idmembre
     
        ));
    }
     
    catch(Exception $e)
     
    {
     
        die('Erreur : '.$e->getMessage());
     
    }
     
    echo 'Success';
    }

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

Discussions similaires

  1. WHERE avec champ renseigné par l'utilisateur
    Par yuyuch dans le forum iReport
    Réponses: 1
    Dernier message: 20/03/2008, 12h11
  2. Mélange de données avec champ MEmo : Risque reconnu ?
    Par petitours dans le forum Sécurité
    Réponses: 1
    Dernier message: 18/09/2007, 11h39
  3. Réponses: 1
    Dernier message: 23/07/2007, 11h00
  4. Créer une fenêtre avec la couleur par defaut d'une dialog
    Par NicolasJolet dans le forum Windows
    Réponses: 2
    Dernier message: 03/08/2006, 16h01
  5. Réponses: 16
    Dernier message: 12/05/2006, 10h20

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