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 :

[Conception] écriture et update dans BDD


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut [Conception] écriture et update dans BDD
    Bonjour
    Voila j'ai fais un script qui permet d'updater des votes a partir de la personne qui recois sinon si la personne n'est pas encore dans la base de donnée s'a l'ajoute (nom et vote acquis) ! mon probleme c'est que ni l'update ni l'ecriture dans la bdd ne fonctionne
    Vous pouvais me dire ce qui ne va pas pourquoi svp!
    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <h1>Ajouter un Bonus de votes</h1>
    <form action="bonus.php" method="post">
    <table border="0" cellspacing="0" cellpadding="4">
    <tr>
    <td align="right" width="174">Receveur</td>
    <td><input type="text" name="receveur" size="40"/></td>
    </tr>
    <tr>
    <td align="right" width="174">Vote recu</td>
    <td><input type="checkbox" name="vote_recu" size="40" value=""/> 10 votes</td>
    </tr>
    <tr>
    <td align="right" width="174">Envoyeur</td>
    <td><input type="text" name="envoyeur" size="40"/></td>
    </tr>
    <tr>
    <td align="right" width="174">Vote envoyer</td>
    <td><input type="checkbox" name="vote_envoyer" size="40" value=""/> J'envoie 10 votes</td>
    </tr>
     
    <tr>
    <td align="right" width="174"></td>
    <td><input type="submit" name="bonus" value="Envoyer"/></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <?php
     
    // On récupère les champs (voir plus haut)
    // On commence par récupérer les champs
    if(isset($_POST['reveveur'])) $receveur=$_POST['receveur'];
    else $receveur="";
     
    if(isset($_POST['vote_recu'])) $vote_recu=$_POST['vote_recu'];
    else $vote_recu="";
     
    // On vérifie si les champs sont vides
    if(empty($receveur) OR empty($vote_recu))
    {
    echo '<font color="red">Attention, seul le champs <b>envoyeur et vote envoyé</b> peut rester vide !</font>';
    }
    // Aucun champ n'est vide, on peut enregistrer dans la table
    else
    {
    $db = mysql_connect('xxx', 'yyy', 'zzz'); // connexion à la base
    mysql_select_db('wwwwwww'); // sélection de la base
     
    // on regarde si l'url existe déjà
    $sql = "SELECT * FROM special WHERE vote_recu='$vote_recu'";
    $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    // on compte le nombre de résultats
    $res = mysql_num_rows($req);
     
    if($res!=0) // l'url existe déjà, on affiche un message d'erreur
    {
    $fonction = $_GET['fonction'];
     
    function plus() {
    global $receveur;
    $sql = "UPDATE special SET vote_recu=vote_recu+10 WHERE receveur=".$receveur;
    mysql_query($sql);
    echo 'Vos votes on été updatés.';
    }
    if($fonction == 'vote_recu'){
    $fonction();
    }
    }
    else // L'url n'existe pas, on insère les informations du formulaire dans la table
    {
    $sql = "INSERT INTO special(id, receveur, vote_recu, envoyeur, vote_envoyer, total) VALUES('','$receveur','$vote_recu','$envoyeur','$vote_envoyer','$total')";
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    // on affiche le résultat pour le visiteur
    echo 'Nouveau ajouté.';
    }
    mysql_close(); // on ferme la connexion
    }
    ?>

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    bonjour ,

    qu'entends tu par 'uploader des votes' ?

    comment ça ça ne marche pas ? tu as des messages d'erreur ? ou autre ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par RideKick
    bonjour ,

    qu'entends tu par 'uploader des votes' ?

    comment ça ça ne marche pas ? tu as des messages d'erreur ? ou autre ?

    salut! je voulez dire UPDATER les votes desolé ( je sais pas pourquoi j'ai ecris upload c'est vrai arfffff surement parce que j'ai passé ma nuit a chercher le probleme de mon script ), ce qui correspond a ex: si Marie a deja dix vote aquis , bien si elle en recois de nouveau 10 votes d'un coup la base de donnée se mettra a jour (10+10 =20 votes) en se qui conscerne Marie ! mais si marie n'existe pas encore dans la BDD bien on la crée !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "UPDATE special SET vote_recu=vote_recu+10 WHERE receveur=".$receveur;
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "INSERT INTO special(id, receveur, vote_recu, envoyeur, vote_envoyer, total) VALUES('','$receveur','$vote_recu','$envoyeur','$vote_envoyer','$total')";

    et le probleme ici est que la ca ne s'ecrit pas dans la BDD , n'y l'ajout d'un nouveau ni le calcul s'effectue ! et aucun message d'erreur s'affiche. c'est comme si l'action s'etait effectuée mais en verrifiant les champs dans la table bien rien n'a bouger

    si tu as une solution plus simple je suis preneur ridekick

    voila

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    L'idée est là pour moi, par contre dans ton update il manque des quotes pour entourer le nom du receveur.

    As tu tenté d'afficher les requetes à l'écran et de vérifier leur comportement sous phpMyAdmin ?
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par ratapapa
    L'idée est là pour moi, par contre dans ton update il manque des quotes pour entourer le nom du receveur.

    As tu tenté d'afficher les requetes à l'écran et de vérifier leur comportement sous phpMyAdmin ?
    salut ratapapa
    oui j'ai regarder directement sous phpadmin bien rien ne bouge et sa n'ecris ni l'ajout ni le calcul

    tu peux me l'ecrire le quote manquant ! je vois pas ou et c'est surrement du a ca vu que je commence par la recherche de l'update des votes par rapport au receveur ca se pourai que sa vienne de la sinon je vois pas ou sa peux cloché

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql = "UPDATE special SET vote_recu=vote_recu+10 WHERE receveur='".$receveur."'";
    Apparemment receveur est un champ texte donc l'utilisateur indique directement le nom (attention aux multiples dangers des majuscules, mauvaise syntaxe, etc. dans ce cas personnellement j'utilise un système de sélection, via liste déroulante ou autre).

    D'autre part ton code me semble assez peu orthodoxe, puisque tu déclares une fonction au milieu du code pour l'appeler une seule fois, et par le biais d'une variable.

    EDIT : quand je parlais de regarder sous phpMyAdmin je sous entendais faire un echo de ta requete et l'exécuter dans phpMyAdmin ^^
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci j'avais pas vu le point manquant !

    lol j'utilise une fonction car je vais m'en servir ensuite pour ma partie soustraction pour que l'on puisse agir sur les votes dans les 2 sens

    j'ai pas encore testé si sa marche mais je te tiens au courant de l'evolution !

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2007
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bon! Bien j'ai corrigé le quote mais sa ne s'ecris toujours pas dans ma BDD sa me stress ! on m'a parler d'un probleme au niveau des premiers "if" moi perso je vois pas de probleme ??

Discussions similaires

  1. [Conception] stocker lien image dans bdd
    Par aurelie1981 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/02/2007, 16h38
  2. [Conception] Lecture de mp3 dans BDD
    Par PerePinard dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 24/07/2006, 10h59
  3. [Conception] Pb d insertion dans une BDD des données d un formulaire
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 02/06/2006, 18h18
  4. [SGBD] [PHP/MySQL] pb d'UPDATE dans la bdd
    Par sagitarium dans le forum Requêtes
    Réponses: 7
    Dernier message: 19/05/2006, 17h25
  5. [Conception] pièce jointe dans BDD
    Par davasm dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/05/2006, 08h59

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