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 :

Formulaire & MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Points : 17
    Points
    17
    Par défaut Formulaire & MySQL
    Bonjour

    J'utilise un formulaire pour enregistrer des informations, mais mon souci c'est que j'utilise plusieurs tables au lieu d’une seul.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <form action="" method="post">
    <p>
     
    <select name="choix">
        <option value="HD1">Camera HD (1)</option>
        <option value="HD2">Camera HD (2)</option>
        <option value="HD3">Camera HD (3)</option>
        <option value="MPEG1">Camera MPEG (1)</option>
        <option value="MPEG2">Camera MPEG (2)</option>
        <option value="MPEG3">Camera MPEG (3)</option>
    </select>
     
     
    <input type="text" name="IP" value="Ex : 192.168.1.10:1010" onFocus="if(this.value=='Ex : 192.168.1.10:88')this.value=''" /><br />
    <input type="text" name="utilisateur" value="Utilisateur" onFocus="if(this.value=='Utilisateur')this.value=''" /><br />
    <input type="password" name="motdepass" value="Mot de passe" onFocus="if(this.value=='Mot de passe')this.value=''" /><br />
        <input type="submit" name="valider" value="Valider" onClick='alert("Formulaire enregistré")' />
     
    </p>
    </form>
    <br/>
     
     
    <?php
     
     
     
     
    if(isset($_POST['valider'])){
    						//si pseudo vide
    						if(empty($_POST['utilisateur'])){
    							echo '<div id="erreur">Veuillez saisir un pseudo!</div>';
    						}
     
     
    else{
     
    $choix = $_POST['choix'];
    $ip = $_POST['IP'];
    $utilisateur = $_POST['utilisateur'];
    $motdepass = $_POST['motdepass'];
     
    include("formulaire_bd.php");
    connexion_bd();
     
     
    switch ($choix) { 
     
    case HD1 :
    $sql = "TRUNCATE TABLE HD1";
    mysql_query($sql) or die(mysql_error()); 
    $sql = mysql_query("INSERT INTO HD1  VALUES ('$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD1-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break;  
     
    case HD2 :
    $sql = "TRUNCATE TABLE HD2";
    mysql_query($sql) or die(mysql_error());
    $sql = mysql_query("INSERT INTO HD2 VALUES ('$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD2-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break; 
     
    case HD3 :
    $sql = "TRUNCATE TABLE HD3";
    mysql_query($sql) or die(mysql_error());
    $sql = mysql_query("INSERT INTO HD3 VALUES ('$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD3-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break; 
     
    }
     
    }
     
    close_bd();
     
    }
     
    	?>
    J'utilise la fonction TRUNCATE car je veux que les anciennes informations soient supprimées


    J'ai essayé de modifier mon code (extrait) comme ci-dessous en rajoutant une valeur pour l'id mais cela ne fonctionne 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
    switch ($choix) { 
     
    case HD1 :
    $sql = "TRUNCATE TABLE HD1";
    mysql_query($sql) or die(mysql_error()); 
    $sql = mysql_query("INSERT INTO HD1 (id, IP, utilisateur, motdepass) VALUES (1, '$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD1-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break;  
     
    case HD2 :
    mysql_query($sql) or die(mysql_error());
    $sql = mysql_query("INSERT INTO HD1 (id, IP, utilisateur, motdepass) VALUES (2, '$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD2-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break;

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Bonjour,

    pouvez-vous préciser "cela ne fonctionne pas" en donnant le message d'erreur par exemple ?

    Vous dites utiliser "plusieurs tables" mais dans votre code je ne vois que la table HD1.
    Christophe

    Pensez à mettre quand c'est le cas.

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Tu as vraiment des constantes nommées HD1 et HD2 dans ton code ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    1) Effectivement j'avais oublié les logs ( En plus N_BaH me la dit ), comme message d’erreur j’ai cherché dans les logs d’apache et j’ai trouvé ça :

    PHP Notice: Use of undefined constant HD1 - assumed 'HD1'
    [Tue May 05 17:27:58 2015] [error] [client 192.168.1.43] PHP Notice: Use of undefined constant HD2 - assumed 'HD2'
    [Tue May 05 17:27:58 2015] [error] [client 192.168.1.43] PHP Notice: Undefined variable: sql

    J'ai vu que pour undefined variable: sql c'est ma fonction TRUNCATE TABLE HD1 & HD2 qui n'est plus valable, il faut que je la modifie pour ne supprimer que la ligne concernée avant d'enregistrer les nouvelles informations


    2) J’utilise plusieurs tables dans le 1er code

    " $sql = mysql_query("INSERT INTO HD1 "
    "$sql = mysql_query("INSERT INTO HD2 "
    etc...


    3) Oui j’ai des constantes nommées HD1 et HD2 par rapport à ma liste déroulante, cela fonctionnait très bien avec mon 1er code mais il semble d’après les logs que maintenant ça pose problème

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Points : 17
    Points
    17
    Par défaut
    Le code fonctionne, j'ai modifié la fonction TRUNCATE en mettant a la place " DELETE FROM `HD1` WHERE `id`= " et pour l'erreur PHP Notice: Use of undefined constant HD, j'ai remplacé HD1 par 'HD1' pareil pour 'HD2'

    Merci

    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
    switch ($choix) { 
     
    case 'HD1' :
    $sql = "DELETE FROM `HD1` WHERE `id`=1";
    mysql_query($sql) or die(mysql_error()); 
    $sql = mysql_query("INSERT INTO HD1  VALUES (1, '$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD1-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break;  
     
    case 'HD2' :
    $sql = "DELETE FROM `HD1` WHERE `id`=2";
    mysql_query($sql) or die(mysql_error());
    $sql = mysql_query("INSERT INTO HD1 VALUES(2, '$ip', '$utilisateur', '$motdepass')");
     
    $file = '
    -HD2-={
    	     IP= '.$_POST['IP'].'
                 user= '.$_POST['utilisateur'].'
                 psw= '.$_POST['motdepass'].'
    }' ;
                 file_put_contents('/var/id.txt', $file, FILE_APPEND) ;
    break;

Discussions similaires

  1. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  2. Formulaire PHP-MySQL
    Par fara morgana dans le forum Langage
    Réponses: 11
    Dernier message: 09/05/2006, 15h46
  3. [MySQL] Bug Formulaire PHP-MySQL
    Par Davboc dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 01/03/2006, 15h15
  4. comment inserer les entrée d'une formulaire dans MySQL
    Par horri dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 28/02/2006, 19h16
  5. inserer des donnees issues d'un formulaire dans mysql
    Par sousou207 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/12/2005, 23h50

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