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 :

INSERT TO une valeur NULL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut INSERT TO une valeur NULL
    Bonjour,

    J'ai un petit soucis avec mon code INSERT TO, j'ai un formulaire qui est renseigné tout ce qui a de plus classique, seulement j'ai un champs qui me permet de renseigner plusieurs lignes, j'effectue un explode ce qui me permet d'obtenir autant de lignes dans ma table que j'ai renseigné dans le champs précédant.
    Exemple :

    Prep : Bernard
    Zone : Haut
    Order : 123
    234

    456


    Cette enregistrement donne dans ma table:

    Bernard Haut 123
    Bernard Haut 234
    Bernard Haut
    Bernard Haut 456

    Ma question est comment faire pour que le INSERT TO ne prenne que les lignes NOT NULL dans le champs Order pour donner ça, 3 enregistrements au lieu de 4 :

    Bernard Haut 123
    Bernard Haut 234
    Bernard Haut 456

    voici mon code INSERT TO:
    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
     
     
     
    <?php //Connexion au serveur
    $connexion=mysql_connect("localhost","root","");
     
    //Selcetion dela base de donnee
    $base=mysql_select_db("dispatch");
    $commande=explode("\n",$_POST['requiredcommande']);
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
    foreach($commande as $index=>$value){
     
     //Ecriture de la requete
    $sql = "INSERT INTO commande VALUES (NULL, '".
    $value."', CURRENT_TIMESTAMP, '".
    $_POST['requireddispatcheur']."',' ".
    $_POST['requiredpreparateur']."', '".
    $_POST['requiredservice']."', '".
    $date."', '".
    $today."', '".
    $_POST['requiredzone']."')";														 
    //Execution de la requete
    $resultat=mysql_query($sql);
    }

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Et en conditionnant l'insert à une valeur non-vide de $value, 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
     
    <?php //Connexion au serveur
    $connexion=mysql_connect("localhost","root","");
     
    //Selcetion dela base de donnee
    $base=mysql_select_db("dispatch");
    $commande=explode("\n",$_POST['requiredcommande']);
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
    foreach($commande as $index=>$value){
     
        if (!empty($value))
        {				
            //Ecriture de la requete
            $sql = "INSERT INTO commande VALUES (NULL, '".
            $value."', CURRENT_TIMESTAMP, '".
            $_POST['requireddispatcheur']."',' ".
            $_POST['requiredpreparateur']."', '".
            $_POST['requiredservice']."', '".
            $date."', '".$today."','".$_POST['requiredzone']."')";														 
            //Execution de la requete
            $resultat=mysql_query($sql);
        }
    }

  3. #3
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    En gros, il faudrait enlever des éléments à $_POST['requiredcommande'].

    Dans ce cas, je ferais quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function test($data)
    {
    return(!is_null($data) && $data!="");
    }
    array_filter($_POST['requiredcommande'],'test');
    Ou depuis php 5.3.0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    array_filter($_POST['requiredcommande'],function($data){return(!is_null($data) && $data!="");});

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Merci pour vos réponses, Pierre-Charles, ton codes n'a pas d'effet il enregistre quand meme les lignes vides.
    speedy_g, je vois pas comment intégrer ton code dans ma requete, de plus faut-il coder chaque POST ou juste le POST $value issue de l'explode?

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Les champs "blancs" sont-ils des chaînes vides ou y a-t-il des espaces cachés ?

    Sachant que la valeur NULL n'est pas assimilable à une chaîne vide...

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par Budy123
    je vois pas comment intégrer ton code dans ma requete, de plus faut-il coder chaque POST ou juste le POST $value issue de l'explode?
    Le plus simple serait de traiter le $value avant insertion.
    Si un empty() ne suffit pas, alors fait un var_dump($value), tu auras une idée plus précise de se quelle contient.
    C'est après tu pourras savoir comment traiter ça. Un simple trim($value) pourrait suffire par exemple.
    Faut faire attention quand même aux différents cas qu'il pourrait avoir, donc peut être ne pas se contenter de le faire sur 1 seule commande.

    Aussi, comme se sont des données que tu renvoies par formulaire, peut être faudrait il vérifier/filtrer/formater ces données avant de les renvoyer.
    En gros, faire en sorte de ne renvoyer que des lignes correctes, on limite ici les risques d'insertion non désirées/partielle/non conforme.

  7. #7
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    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
     
    <?php //Connexion au serveur
    $connexion=mysql_connect("localhost","root","");
     
    //Selcetion dela base de donnee
    $base=mysql_select_db("dispatch");
     
    function test($data)
    {
    return(!is_null($data) && $data!="");
    }
    array_filter($_POST['requiredcommande'],'test');
     
    $commande=explode("\n",$_POST['requiredcommande']);
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    ....
    Donc si $_POST['requiredcommande'] = 'a',,'b','c' ou $_POST['requiredcommande'] = 'a','','b','c'
    cela devrait donner $_POST['requiredcommande'] = 'a','b','c'

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Bonjour à tous,

    Décidement je progresse de jour en jour grace à votre aide, j'ai testé la methode de speedy_g qui génère une erreur :

    "Warning: array_filter() [function.array-filter]: The first argument should be an array in C:\wamp\www\dispatch\valider.php on line 27"

    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 //Connexion au serveur
    $connexion=mysql_connect("localhost","root","");
     
    //Selcetion dela base de donnee
    $base=mysql_select_db("dispatch");
     
    function test($data)
    {
    return(!is_null($data) && $data!="");
    }
    array_filter($_POST['requiredcommande'],'test');
     
    $commande=explode("\n",$_POST['requiredcommande']);
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
    foreach($commande as $index=>$value){
     
     //Ecriture de la requete
            $sql = "INSERT INTO commande VALUES (NULL, '".
            $value."', CURRENT_TIMESTAMP, '".
            $_POST['requireddispatcheur']."',' ".
            $_POST['requiredpreparateur']."', '".
            $_POST['requiredservice']."', '".
            $date."', '".$today."','".$_POST['requiredzone']."')";														 
            //Execution de la requete
            $resultat=mysql_query($sql);
     
    }
    pour ce qui est de la proposition de RunCodePhp, j'ai essayé d'intégrer le var_dump($value), et le trim($value), mais j'ai du mal codé puisque j'ai un message d'erreur..

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    $_POST['requiredcommande'] n'est pas un tableau mais une chaîne de caractères. Il faut que tu appliques le filtre sur $commande, non sur $_POST['requiredcommande'] ...

    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
    <?php //Connexion au serveur
    $connexion = mysql_connect("localhost", "root", "");
     
    //Selcetion dela base de donnee
    $base = mysql_select_db("dispatch");
     
    function test($data)
    {
        return(!is_null($data) && $data!="");
    }
     
    $commande = explode("\n",$_POST['requiredcommande']);
    array_filter($commande, 'test');
     
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
    foreach($commande as $index=>$value){
     
     //Ecriture de la requete
            $sql = "INSERT INTO commande VALUES (NULL, '".
            $value."', CURRENT_TIMESTAMP, '".
            $_POST['requireddispatcheur']."',' ".
            $_POST['requiredpreparateur']."', '".
            $_POST['requiredservice']."', '".
            $date."', '".$today."','".$_POST['requiredzone']."')";														 
            //Execution de la requete
            $resultat = mysql_query($sql);
     
    }

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Bonjour,

    Je n'ai plus de message erreur mais j'ai toujours une ligne vide au milieu de mes enregistrement.
    Dans mon formulaire, le champs 'requiredcommande' est une zone de teste à 13 lignes.

  11. #11
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par Budy123 Voir le message
    Bonjour,

    Je n'ai plus de message erreur mais j'ai toujours une ligne vide au milieu de mes enregistrement.
    Dans mon formulaire, le champs 'requiredcommande' est une zone de teste à 13 lignes.
    Si tu n'affiche pas les données à l'aide d'un echo, print_r ou encore var_dump, tu ne sauras jamais vraiment comment traiter le problème.
    C'est plutôt du "pifomètre" jusqu'à maintenant ...

    Exemple :
    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
     
    $commande = explode("\n",$_POST['requiredcommande']);
     
    echo '<pre>';
    print_r($commande);
    echo '</pre>';
     
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
    foreach($commande as $index=>$value) {
    	//Ecriture de la requete
    	$sql = "INSERT INTO commande VALUES (NULL, '".
    	$value."', CURRENT_TIMESTAMP, '".
    	$_POST['requireddispatcheur']."',' ".
    	$_POST['requiredpreparateur']."', '".
    	$_POST['requiredservice']."', '".
    	$date."', '".$today."','".$_POST['requiredzone']."')";
    	//
    	echo $sql.'<br />';
    	//
    	//Execution de la requete
    	//$resultat = mysql_query($sql);
    }
    Qu'est ce que tu obtiens avec le print_r et le echo ? Ne vois tu pas quelque chose d'anormal ?
    Affiche le contenu sur le forum.

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Voici ce que donne le print_r($commande) :

    Array
    (
    [0] => 23632
    [1] => 89632
    [2] =>
    [3] => 56589
    [4] =>
    )

    INSERT INTO commande VALUES (NULL, '23632 ', CURRENT_TIMESTAMP, 'Yamina',' Jean-Claude', 'CEX', '2010-03-03', '3-03-10-11-28-21','Nacelle')
    INSERT INTO commande VALUES (NULL, '89632 ', CURRENT_TIMESTAMP, 'Yamina',' Jean-Claude', 'CEX', '2010-03-03', '3-03-10-11-28-21','Nacelle')
    INSERT INTO commande VALUES (NULL, ' ', CURRENT_TIMESTAMP, 'Yamina',' Jean-Claude', 'CEX', '2010-03-03', '3-03-10-11-28-21','Nacelle')
    INSERT INTO commande VALUES (NULL, '56589 ', CURRENT_TIMESTAMP, 'Yamina',' Jean-Claude', 'CEX', '2010-03-03', '3-03-10-11-28-21','Nacelle')
    INSERT INTO commande VALUES (NULL, '', CURRENT_TIMESTAMP, 'Yamina Chabani',' Jean-Claude', 'CEX', '2010-03-03', '3-03-10-11-28-21','Nacelle')

  13. #13
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Essai 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
    foreach($commande as $index=>$value) {
    	if ((int)$value > 0) {
    		//Ecriture de la requete
    		$sql = "INSERT INTO commande VALUES (NULL, '".
    		$value."', CURRENT_TIMESTAMP, '".
    		$_POST['requireddispatcheur']."',' ".
    		$_POST['requiredpreparateur']."', '".
    		$_POST['requiredservice']."', '".
    		$date."', '".$today."','".$_POST['requiredzone']."')";
    		//
    		echo $sql.'<br />';
    	}
    	//
    	//Execution de la requete
    	//$resultat = mysql_query($sql);
    }

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    772
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2004
    Messages : 772
    Par défaut
    Tes chaînes qui paraissent vides ne le sont pas, elles comportent un espace... On le voit bien dans l'affichage de tes requêtes...

    change la fonction test comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function test($data)
    {
        return(!empty($data) && $data != " ");
    }

  15. #15
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Mais même quant il y a un nombre, il y a un espace : ... NULL, '23632 ', CURRENT_TIMESTAMP, 'Yamina' ...

    En typant la donnée ça résout le problème, sans avoir besoin de fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    foreach($commande as $index=>$value) {
    	if ((int)$value > 0) {
    		//Ecriture de la requete
    		$sql = "INSERT INTO commande VALUES (NULL, '".
    		(int)$value."', CURRENT_TIMESTAMP, '".
    		$_POST['requireddispatcheur']."',' ".
    		$_POST['requiredpreparateur']."', '".
    		$_POST['requiredservice']."', '".
    		$date."', '".$today."','".$_POST['requiredzone']."')";
    	}
    }

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    J'ai essayé et voilà ce que cela me donne avec le code suivant:

    Array
    (
    [0] => 23659
    [1] => 89654
    [2] =>
    [3] => 56956
    )

    INSERT INTO commande VALUES (NULL, '23659 ', CURRENT_TIMESTAMP, 'Jean-Claude',' Jean-Claude', 'CRP', '2010-03-03', '3-03-10-12-12-12','Chariot')
    INSERT INTO commande VALUES (NULL, '89654 ', CURRENT_TIMESTAMP, 'Jean-Claude',' Jean-Claude', 'CRP', '2010-03-03', '3-03-10-12-12-12','Chariot')
    INSERT INTO commande VALUES (NULL, ' ', CURRENT_TIMESTAMP, 'Jean-Claude',' Jean-Claude', 'CRP', '2010-03-03', '3-03-10-12-12-12','Chariot')
    INSERT INTO commande VALUES (NULL, '56956 ', CURRENT_TIMESTAMP, 'Jean-Claude',' Jean-Claude', 'CRP', '2010-03-03', '3-03-10-12-12-12','Chariot')

    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
     
    <?php //Connexion au serveur
    $connexion = mysql_connect("localhost", "root", "");
     
    //Selcetion dela base de donnee
    $base = mysql_select_db("dispatch");
     
    function test($data)
    {
        return(!empty($data) && $data != " ");
    }
     
    $commande = explode("\n",$_POST['requiredcommande']);
    echo '<pre>';
    print_r($commande);
    echo '</pre>';
    array_filter($commande, 'test');
     
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
    foreach($commande as $index=>$value){
     
     //Ecriture de la requete
            $sql = "INSERT INTO commande VALUES (NULL, '".
            $value."', CURRENT_TIMESTAMP, '".
            $_POST['requireddispatcheur']."',' ".
            $_POST['requiredpreparateur']."', '".
            $_POST['requiredservice']."', '".
            $date."', '".$today."','".$_POST['requiredzone']."')";
    	//
    	echo $sql.'<br />';
    	//														 
            //Execution de la requete
            $resultat = mysql_query($sql);
     
    }

  17. #17
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    As tu essayé en "typant" cette variable $value ?

    Dans ta boucle, fait une vérification + typage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    foreach($commande as $index=>$value){
    	if (is_numeric($value) && (int)$value > 0) {
    		$sql = "INSERT INTO commande VALUES (NULL, '".
            (int)$value."', CURRENT_TIMESTAMP, '". ...etc ...
    	}
    }

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Avec ce code il m'a inséré qu'un seul enregistrement :

    Array
    (
    [0] => 2563
    [1] => 2563
    [2] => 4589
    [3] =>
    [4] => 2569
    )

    INSERT INTO commande VALUES (NULL, '2569', CURRENT_TIMESTAMP, 'Jean-Claude',' Rezki', 'CEX', '2010-03-03', '3-03-10-12-51-22','Nacelle')

    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
     
    <?php //Connexion au serveur
    $connexion = mysql_connect("localhost", "root", "");
     
    //Selcetion dela base de donnee
    $base = mysql_select_db("dispatch");
     
    function test($data)
    {
        return(!empty($data) && $data != " ");
    }
     
    $commande = explode("\n",$_POST['requiredcommande']);
    echo '<pre>';
    print_r($commande);
    echo '</pre>';
    array_filter($commande, 'test');
     
    $date = date("Y-m-d");
    $heure = date("H:i:s");
    $today = date('j-m-y-H-i-s');
    $codebare = '*'.$today.'*';
    $dispatcheur = $_POST['requireddispatcheur'];
    $preparateur = $_POST['requiredpreparateur'];
     
     
    foreach($commande as $index=>$value){
    	if (is_numeric($value) && (int)$value > 0) {
    		$sql = "INSERT INTO commande VALUES (NULL, '".
            (int)$value."', CURRENT_TIMESTAMP, '".
            $_POST['requireddispatcheur']."',' ".
            $_POST['requiredpreparateur']."', '".
            $_POST['requiredservice']."', '".
            $date."', '".$today."','".$_POST['requiredzone']."')";
    				}		
    }		
    					//
    	echo $sql.'<br />';
    	//														 
            //Execution de la requete
            $resultat = mysql_query($sql);

  19. #19
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Normal, ta requête est après ton foreach !!!

    Mais la dedans.

  20. #20
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 164
    Par défaut
    Effectivement j'ai été trop cite, maintenant il m'indique une erreur à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $resultat = mysql_query($sql);

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2011, 12h40
  2. Insertion d'une valeur NULL
    Par Marc_27 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/08/2010, 09h10
  3. [MySQL] Insertion d'une valeur nulle, PHP->MySQL
    Par mattyeux dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/04/2010, 14h43
  4. Insertion d'une valeur null pour une colonne
    Par bigggalll dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 24/03/2010, 15h01
  5. pb d'insertion d'une valeur null
    Par new_wave dans le forum SQL
    Réponses: 7
    Dernier message: 16/10/2007, 18h51

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