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 :

Php/mysql problème débutant ! [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut Php/mysql problème débutant !
    Bonjour,
    je suis tout à fait novice en programmation php/mysql et je dois créer un site permettant de gérer un parc informatique. Parmi plusieurs choses, je dois permettre aux utilisateurs de déclarer la panne d'un ordinateur.
    J'ai donc créer une page php où je mets un formulaire pour que l'utilisateur rentre le nom de l'ordi. Et je veux que quand il valide en appuyant sur le bouton, la table SQL Ordinateur change et que l'état devienne défaillant.
    Je vous mets ici le code qui doit être très loin du résultat attendu mais je suis extrêmement novice et je vous demande un peu d'indulgence ^^.

    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
     
    <?php
    $db_conn = mysql_connect("localhost","root","") or die (mysql_error());
    mysql_select_db("lif4",$db_conn) or die (mysql_error());
    ?>
     
    <html>
    <head>
    <title>Declaration de Panne</title>
    </head>
     
    <body>
    <h2><center> Declaration de Panne pour Etudiant</center></h2>
    <br><h3><center> Veuillez insérer le nom de l'ordinateur défaillant </center></h3>
    <br><form>
    <br><center>Nom Ordinateur <input  TYPE="text" NAME="Ordinateur" ></center>
    <br><center><input type="submit" nom ="Panne" value="Envoyer"></center>
    </form>
     
    <?php
    if (isset($_POST['Panne'])AND $_POST['Ordinateur'] != "") {
    	$nom=$_POST['Ordinateur'];
        $requete = "
    				UPDATE 'ordinateur' 
    				SET etat= 'defaillant' 
    				Where nom = $nom  ";
    	$resultat = mysql_query($requete) or die(mysql_error());
    }
    ?>
     
    </body>
    </html>

  2. #2
    Membre averti Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Points : 413
    Points
    413
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ...Where nom = '$nom'

  3. #3
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    salut,

    pas loin en effet

    ton form n'a pas d'action ni de method <form method="POST" action="ta_page.php"apres, pour plus de clarete, separe le php du html (avec une bonne concatenation)
    => avec la colorisation syntaxique, ca aide en plus

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requete = "UPDATE 'ordinateur' 
    SET etat= 'defaillant' 
    Where nom = '".$nom."' ";

    pour ton if(), je te conseillerai de tester directement si une variable n'est pas vide
    => if(!empty($$_POST['Panne']) && !empty($_POST['Ordinateur']))ca evite le double test : est-ce que la variable existe et est-ce qu'elle n'est pas vide

    Bon courrage

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Merci pour l'aide, c'est très sympa, j'arrive donc à ce code :

    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
     
    <?php
    $db_conn = mysql_connect("localhost","root","") or die (mysql_error());
    mysql_select_db("lif4",$db_conn) or die (mysql_error());
    ?>
     
    <html>
    <head>
    <title>Declaration de Panne</title>
    </head>
     
    <body>
    <h2><center> Declaration de Panne pour Etudiant</center></h2>
    <br><h3><center> Veuillez insérer le nom de l'ordinateur défaillant </center></h3>
    <br><form method="POST" action="DeclarationPanne.php">
    <br><center>Nom Ordinateur <input  TYPE="text" NAME="Ordinateur" ></center>
    <br><center><input type="submit" nom ="Panne" value="Envoyer"></center>
    </form>
     
    <?php
    if(!empty($$_POST['Panne']) && !empty($_POST['Ordinateur'])) {
    	$nom=$_POST['Ordinateur'];
        $requete = "
    				UPDATE 'ordinateur' 
    				SET etat= 'deffaillant' 
    				Where nom = '".$nom."'  ";
    	$resultat = mysql_query($requete) or die(mysql_error());
    }
    ?>
     
    </body>
    </html>
    mais ça ne fait toujours rien...

  5. #5
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    Citation Envoyé par hazaki Voir le message
    mais ça ne fait toujours rien...
    t'es alle voir dans phpmyadmin si ta table avait changee ?
    t'as un message d'erreur ?

    ps : t'as un double dollar dans ton if() : !empty($$_POST['Panne'])
    il nous faut plus de details

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Oui, je suis bien allé vérifier dans PhpMyAdmin mais l'etat n'a pas changé !
    Et non je n'ai pas de message d'erreur, tout se passe normalement, à part qu'il n'y a pas d'actualisation ^^

  7. #7
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    t'as essaye d'afficher $requete
    et de copier/coller la requete generee directement dans phpmyadmin ?

  8. #8
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 51
    Points
    51
    Par défaut
    dans ta balise input pour ton bouton tu utilises la propriété "nom" qui n'existe pas essaies avec "name":
    <input type="submit" name ="Panne" value="Envoyer">

  9. #9
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    Citation Envoyé par PtiteA2 Voir le message
    dans ta balise input pour ton bouton tu utilises la propriété "nom" qui n'existe pas essaies avec "name":
    <input type="submit" name ="Panne" value="Envoyer">
    ah oui, bien vue

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    J'ai ajouté echo $requete dans le if mais ça ne m'affiche rien !
    Et j'ai remplacé nom par name (désolé pour l'erreur)

  11. #11
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    comme l'a precise PtiteA2, tu as mis "nom" au lieu de "name" pour ton bouton submit
    donc, il ne connait pas $_POST["Panne"], donc il ne rentre jamais ton ton if()

    dis nous si ca change quelque chose

    [edit]ah ok, t'as aussi modifie "name"
    fais un echo 'toto'; juste a l'entree de ton if(), s'il ne l'affiche pas, il ne rentre jamais dans ton test
    => utilise var_dump($variable) pour commencer a verifier si tes variables sont correctement renseignees.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    J'ai rajouté un echo dans le if et il ne l'affiche pas.
    Par contre je sais pas comment on utilise var_dump($variable)

  13. #13
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    bah... var_dump($ta_variable);
    php.net/manual/fr/function.var-dump.php

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    oui ><, ça me renvoie NULL, mais vu qu'il passe pas dans le if c'est normal !

  15. #15
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    fais tes var_dump() avant ton if(), justement pour savoir quelle variable est mal renseignee, pour savoir pourquoi tu ne rentre pas dans ton if

  16. #16
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 51
    Points
    51
    Par défaut
    c'est bizarre moi avec ton code il rentre dans le if, j'ai rien changé sauf le name et le $ en trop (j'ai juste ajouté un echo après le if):

    <?php
    $db_conn = mysql_connect("localhost","root","") or die (mysql_error());
    mysql_select_db("lif4",$db_conn) or die (mysql_error());
    ?>

    <html>
    <head>
    <title>Declaration de Panne</title>
    </head>

    <body>
    <h2><center> Declaration de Panne pour Etudiant</center></h2>
    <br><h3><center> Veuillez insérer le nom de l'ordinateur défaillant </center></h3>
    <br><form method="POST" action="DeclarationPanne.php">
    <br><center>Nom Ordinateur <input TYPE="text" NAME="Ordinateur" ></center>
    <br><center><input type="submit" name ="Panne" value="Envoyer"></center>
    </form>

    <?php
    if(!empty($_POST['Panne']) && !empty($_POST['Ordinateur'])) {
    echo "coucou";
    $nom=$_POST['Ordinateur'];
    $requete = "UPDATE 'ordinateur'
    SET etat= 'deffaillant'
    Where nom = '".$nom."' ";
    $resultat = mysql_query($requete) or die(mysql_error());
    }
    ?>

    </body>
    </html>

    T'as le même code que moi?

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Mais tu veux que je mette var_dump($Panne) et var_dump($Ordinateur) ?
    Parce que les deux me renvoient NULL

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 95
    Points : 52
    Points
    52
    Par défaut
    Maintenant que j'ai pris ton code oui ça rentre dedans en effet ! J'avais du faire une petite erreur !
    Par contre cette erreur s'affiche :

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''ordinateur' SET etat= 'deffaillant' Where nom = 'Tosh1'' at line 1

  19. #19
    Membre du Club
    Femme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 26
    Points : 51
    Points
    51
    Par défaut
    Oui ça c'est dû à ta requête SQL et à la base de donnée...la question c'est tu veux faire quoi exactement dans la base de donnée???

    Pour l'instant ta requête SQL essaie de modifier un enregistrement qui a pour nom celui que tu tapes dans ton formulaire...or si tu tapes un nom qui ne correspond à aucun enregistrement tu as cette erreur.

  20. #20
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    Citation Envoyé par hazaki Voir le message
    Maintenant que j'ai pris ton code oui ça rentre dedans en effet ! J'avais du faire une petite erreur !
    comme dit plus haut, t'avais un $ en trop dans ton nom de variable

    pour ton erreur sql, affiche la requete generee et execute la dans phpmyadmin, lui te donnera une erreur un peut plus complete

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

Discussions similaires

  1. [MySQL] Php/mysql problème débutant !
    Par hazaki dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/12/2011, 10h22
  2. Réponses: 3
    Dernier message: 13/04/2007, 19h43
  3. [PHP/MySQL] Problème d'encodage
    Par ymoreau dans le forum Outils
    Réponses: 13
    Dernier message: 11/01/2007, 12h08
  4. [Flash MX 2004] Php Mysql (débutant)
    Par mooky dans le forum Flash
    Réponses: 7
    Dernier message: 08/02/2006, 20h55

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