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 :

Vote en PHP MYSQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut Vote en PHP MYSQL
    Bonjour,

    je souhaite que les utilisateurs puissent voter pour des morceaux de musique :
    mon code ci-dessous fonctionne bien sauf :
    1 - on peut voter plusieurs fois pour le même morceau
    2 - le vote sur un titre qui contient des apostrophes n'est pas pris en compte

    (exemple de titre : "Le Rêve de l'Homme" et si on vote, le résultat est :
    Merci d'avoir voté pour : Le Rêve de l\'Homme
    et du coup n'est pas pris en compte dans le total des votes...)

    si vous pouvez m'aider pour les points 1 et 2 ci-dessus ? Merci d'avance.

    morceaux.php :
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
     
    <div id="mainContent">
    <br />
    <a><strong>Morceaux de la semaine :</strong></a>
    <p>
    <object type="application/x-shockwave-flash" data="dewplayer-playlist.swf" width="240" height="200" id="dewplayer" name="dewplayer">
    <param name="wmode" value="transparent" />
    <param name="movie" value="dewplayer-playlist.swf" />
    <param name="flashvars" value="showtime=true&amp;autoreplay=true&amp;xml=playlist.php" />
    </object>
    </p>
    <br />
    <a><strong>Informations sur les auteurs :</strong></a>
    <br />
    <br />
     
    <?php
    // connexion à la base
    require("configuration.php");
    $sql = connect_sql();
    // debut de la requête pour récupérer les informations des groupes de musique -->
    // on écrit la requête
    $select = "SELECT * FROM morceaux_groupe ORDER BY numero";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    //On vérifie que la table contient quelque chose
    if
    (mysql_num_rows($result) == 0)
    {
    echo '<p>'.'<b>'.'Aucun morceau ! '.'</b>'.'</p>'.'<br>'.'</br>';
    echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
    }
    //Si il y a des entrées
    else
    {
    //On fait une boucle pour sortir toutes les entrées
    while($affiche = mysql_fetch_array($result))
     {
    //On affiche les entrées
    echo '<br />';
    echo '<b>'.$affiche["nom_groupe"]."   ".'</b>';
    echo '<div class="autre">';
    echo '<span style="color:#8E236B;">';
    echo '<strong>';
    echo "     ".$affiche["titre"]."   ";
    echo '</strong>';
    echo '</span>';
    echo '<div class="cache">';
    echo '<strong>';
    echo '<br />';
    echo '<a href="'.$affiche["site_web"].'">'.'Site web du groupe'.'</a>';
    echo '<br />';
    echo "     ".$affiche["descriptif_groupe"]."   ";
    echo '<br />';
    echo '<br />';
    echo " mis en ligne par  ".$affiche["pseudo_groupe"]."   ";
    echo '</strong>';
    echo '</div>';
    echo '</div>';
    echo '<br />';
    }	//On ferme la boucle while
    }	//on ferme le else
     
     
    // début de la requête sur les morceaux
    echo '<form method="post" action="voter.php">';
    echo '<fieldset>';
    echo '<legend>'."VOTEZ POUR VOTRE MORCEAU PREFERE".'</legend>';
    echo '<label>'.'</label>';
    echo '<select name="votez" class="ev" tabindex="1" onfocus="this.className=\'textarea_focus\';" onblur="this.className=\'\';">';
    $affich_form3 = "SELECT * FROM morceaux_groupe" ;
    $resultat3 = mysql_query($affich_form3) or die ('Erreur : '.mysql_error() );
    $total3 = mysql_num_rows($resultat3);
    //On vérifie que la table contient quelque chose
    if
    (mysql_num_rows($resultat3) == 0)
    {
    echo '<option>Aucun</option>';
    } // fin si rien dans la liste
    else
    {
    while ( $list3 = mysql_fetch_array( $resultat3 ) )
    {
    echo '<option value="'.$list3['titre'].'">'.$list3['titre'].'</option>';
    } // fin du while
    } // fin du else
    echo '</select>';
    // fin de la requête sur les morceaux
    echo '<br />';
    echo '<br />';
    echo '<input type="submit" class="ev" tabindex="2" value="VOTER POUR CE MORCEAU" onfocus="this.className=\'textarea_focus\';" onblur="this.className=\'\';">';
    echo '</fieldset>';
     
    // Fermeture de la connexion à la base de données
    mysql_close();		
    ?>
     
    <br />
    <br />
     
    </div>
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
    </body>
    </html>
    action "submit" dans le fichier
    voter.php :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
     
    <body>
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
    <div id="mainContent">
    <?
    // insertion du fichier de configuration
    require("configuration.php");
    // si il y a action de vote sans selection de choix on affiche un message d'erreur et le formulaire
    if(empty($_POST['votez']))
    {
    echo"<center><font color='red'><b>vous devez faire un choix</b><center></font><br>";
    include"morceaux.php";
    // on arrête l'exécution du script avec exit()
    exit();
    }
    else
    {
    // on affiche un message de remerciement
    echo '<p></p>';
    echo "Merci d'avoir vot&eacute; pour :   ".'<font color="#8E236B">'.'<b>'.$_POST['votez'].'</b>'.'</font>';
    echo '<p></p>';
    echo '<p></p>';
    echo '<b>'.'<font color="##FF7F00">'." R&eacute;sultats des votes  : ".'</font>'.'</b>';
    echo '<p></p>';
     
    // Connexion à la base
    $connect=mysql_connect($host,$login,$pass) or die ("Connection impossible");
    mysql_select_db($base,$connect) or die ("selection impossible");
     
    // il y a un vote on cherche dans la base le titre
    $select = "SELECT * FROM morceaux_groupe ORDER BY vote_groupe DESC";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    //On fait une boucle pour sortir toutes les entrées
    while($affiche = mysql_fetch_array($result))
    {
    //On affiche les entrées
    echo '<b>'.$affiche["nom_groupe"].'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
    echo '&nbsp;'.'&nbsp;'.'&nbsp;'.'<font color="#7F00FF">'.$affiche["titre"].'</font>';
    echo '<br />';
    echo " Nombre de votes : ".'<b>'.$affiche["vote_groupe"].'</b>';
    echo '<p></p>';
    }	
    //On ferme la boucle while
     
    echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
    echo '<p></p>';
     
    // on ajoute 1 au choix qui a été fait
    mysql_query("UPDATE ".morceaux_groupe." SET vote_groupe=vote_groupe+1 where titre='".$_POST['votez']."'");
    // on affiche un message si correct
    }
    // on ferme la connection à la base
    mysql_close();
    ?>
     
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
    </body>
    </html>

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    il fait mettre un mysql_real_escape_string sur les valeurs

  3. #3
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    Bonjour stealth35,

    j'ai modifié ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE ".morceaux_groupe." SET vote_groupe=vote_groupe+1 where titre='".$_POST['votez']."'");
    par cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE ".morceaux_groupe." SET vote_groupe=vote_groupe+1 where titre='".mysql_real_escape_string(nl2br($_POST['votez'])."'");
    Mais cela ne change pas le fait qu'il ne prend pas en compte le vote :
    Merci d'avoir voté pour : Le Rêve de l\'Homme
    et du coup n'est pas pris en compte dans le total des votes...)

    où est mon erreur ?
    Merci.

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("UPDATE morceaux_groupe SET vote_groupe=vote_groupe+1 where titre='".mysql_real_escape_string($_POST['votez'])."'");

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    regarde du côté de la fonction addslashes()

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    regarde du côté de la fonction addslashes()
    en quoi addslashes est plus adapté que mysql_real_escape_string ?

  7. #7
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    @ gwharl

    cela ne fonctionne pas avec ton code, j'ai toujours le même souci :

    (exemple de titre : "Le Rêve de l'Homme" et si on vote, le résultat est :
    Merci d'avoir voté pour : Le Rêve de l\'Homme
    et du coup n'est pas pris en compte dans le total des votes...)

    j'ai oublié de préciser : dans ma base SQL, voici ce que j'ai dans la colonne "titre" :
    Le R&ecirc;ve de l&apos;Homme
    Type : varchar(255)
    interclassement : latin1_general_cs


    Encore merci

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920

  9. #9
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    désolé stealth35 mais je ne comprends pas où je dois mettre ce magic_quotes et comment ?
    Merci de ton aide.

  10. #10
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    en quoi addslashes est plus adapté que mysql_real_escape_string ?
    Bonjour,

    mysql_real_escape_string() - Protège les caractères spéciaux d'une commande SQL
    addslashes() - Ajoute des antislashs dans une chaîne

    j'avais pour habitude de faire avant l'insertion en base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addslashes(mysql_real_escape_string($_POST['toto']))
    Je ne sais pas si c'est une bonne méthode mais cela fonctionnait bien

  11. #11
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    mysql_real_escape_string() - Protège les caractères spéciaux d'une commande SQL
    Et comment il les protègent ? En ajoutant des slashs.

    tiré de la doc PHP addslashes :

    Il est fortement recommandé d'utiliser les fonctions de protection spécifiques à chaque base de données (telle que mysqli_real_escape_string() pour MySQL et pg_escape_string() pour PostGreSQL), mais si la base de données que vous utilisez n'a pas de fonction spécifique, et que cette base utilise \ pour protéger les caractères spéciaux, vous pouvez utiliser cette fonction.
    @fazpedro : magic_quote se configure dans le fichier "php.ini"

  12. #12
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    Pardon gwharl mais...
    magic_quote se configure dans le fichier "php.ini"

    OK mais où je trouve ce fichier php.ini : je ne le vois pas sur mon serveur chez Free ?
    Merci.

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    j'avais pour habitude de faire avant l'insertion en base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    addslashes(mysql_real_escape_string($_POST['toto']))
    Je ne sais pas si c'est une bonne méthode mais cela fonctionnait bien
    mauvaise méthode et qui ne ne fonctionne mal puisque tu vas doubler les slashes

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    mauvaise méthode et qui ne ne fonctionne mal puisque tu vas doubler les slashes

    En faite, j'utilisais la addslashes(mysql_escape_string()) mais je viens de voir qu'elle est deprecated.

    Pour autant, j'en prends bonne note.

  15. #15
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    Que faut-il utliser alors pour un bon fonctionnement :
    addslashes ou mysql_escape_string() ?
    et je ne trouve toujours pas php.ini ?
    merci.

  16. #16
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Utilise mysql_escape_string() car la fonction est spécifique à ton SGBD

    pour php.ini, dit nous ton OS et si tu utilise un package style WAMP, LAMP, etc...

  17. #17
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    @ gwharl :

    mon OS : Linux Ubuntu 10.10
    package style WAMP, LAMP, etc... : je ne sais pas où cela se trouve ?

  18. #18
    Membre expérimenté Avatar de Retrokiller069
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 217
    Par défaut
    Bonjour,

    si je puis me permettre change ta base de données et attribut un identifiant numérique pour chaque chanson (parce que utilisé le titre de la chanson comme identifiant...). Cela résoudra ton problème de vote .

    Sinon montre nous ta base de données stp

  19. #19
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Je suppose que tu as installé apache, mysql, etc... via une commande de ce style.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5
    Et le fichier doit être je pense dans /usr/local/etc/php/
    Dossier php et sous-dossier compris.

    edit : +1 pour l'idée de retrokiller, imagine le nom de la musique change (on ne sais pourquoi, censure, etc...).

  20. #20
    Membre éclairé Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 505
    Par défaut
    j'ai résolu le point 2 en modifiant ainsi :
    => vote par numéro unique et non par titre

    par contre, comment faire pour le point 1 ?
    1 - on peut voter plusieurs fois pour le même morceau
    Merci.

    morceaux.php :
    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
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
     
    <div id="mainContent">
    <br />
    <a><strong>Morceaux de la semaine :</strong></a>
    <p>
    <object type="application/x-shockwave-flash" data="dewplayer-playlist.swf" width="240" height="200" id="dewplayer" name="dewplayer">
    <param name="wmode" value="transparent" />
    <param name="movie" value="dewplayer-playlist.swf" />
    <param name="flashvars" value="showtime=true&amp;autoreplay=true&amp;xml=essai_playlist_12_07.php" />
    </object>
    </p>
    <br />
    <a><strong>Informations sur les auteurs :</strong></a>
    <br />
    <br />
     
    <?php
    // connexion à la base
    require("configuration.php");
    $sql = connect_sql();
    // debut de la requête pour récupérer les informations des groupes de musique -->
    // on écrit la requête
    $select = "SELECT * FROM morceaux_groupe ORDER BY numero";
    $result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
    //On vérifie que la table contient quelque chose
    if (mysql_num_rows($result) == 0)
    	{
    	echo '<p>'.'<b>'.'Aucun morceau ! '.'</b>'.'</p>'.'<br>'.'</br>';
    	echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>';
    	}	//retour en page precedente
     
    else	//Si il y a des entrees
    {
    //On fait une boucle pour sortir toutes les entrées
    while($affiche = mysql_fetch_array($result))
     {
    //On affiche les entrées
    echo '<br />';
    echo '<b>'.$affiche["nom_groupe"]."   ".'</b>';
    echo '<div class="autre">';
    echo '<span style="color:#8E236B;">';
    echo '<strong>';
    echo "     ".$affiche["titre"]."   ";
    echo '</strong>';
    echo '</span>';
    echo '<div class="cache">';
    echo '<strong>';
    echo '<br />';
    echo '<a href="'.$affiche["site_web"].'">'.'Site web du groupe'.'</a>';
    echo '<br />';
    echo "     ".$affiche["descriptif_groupe"]."   ";
    echo '<br />';
    echo '<br />';
    echo " mis en ligne par  ".$affiche["pseudo_groupe"]."   ";
    echo '</strong>';
    echo '</div>';
    echo '</div>';
    echo '<br />';
    }	//On ferme la boucle while
    }	//on ferme le else
     
     
    // début de la requête sur les morceaux
    echo '<form method="post" action="voter.php">';
    echo '<fieldset>';
    echo '<legend>'."VOTEZ POUR VOTRE MORCEAU PREFERE".'</legend>';
    echo '<label>'.'</label>';
    echo '<select name="votez" class="ev" tabindex="1" onfocus="this.className=\'textarea_focus\';" onblur="this.className=\'\';">';
    $affich_form3 = "SELECT * FROM morceaux_groupe" ;
    $resultat3 = mysql_query($affich_form3) or die ('Erreur : '.mysql_error() );
    $total3 = mysql_num_rows($resultat3);
    //On vérifie que la table contient quelque chose
    if
    (mysql_num_rows($resultat3) == 0)
    {
    echo '<option>Aucun</option>';
    } // fin si rien dans la liste
    else
    {
    while ( $list3 = mysql_fetch_array( $resultat3 ) )
    {
    echo '<option value="'.$list3['numero'].'">'.$list3['titre'].'</option>';
    } // fin du while
    } // fin du else
    echo '</select>';
    // fin de la requête sur les morceaux
    echo '<br />';
    echo '<br />';
    echo '<input type="submit" class="ev" tabindex="2" value="VOTER POUR CE MORCEAU" onfocus="this.className=\'textarea_focus\';" onblur="this.className=\'\';">';
    echo '</fieldset>';
     
    // Fermeture de la connexion à la base de données
    mysql_close();		
    ?>
     
    <br />
    <br />
     
    </div>
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
    </body>
    </html>
    action si "submit => voter.php :
    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />	
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
     
    <body>
     
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
     
    <div id="mainContent">
     
    <?
    // insertion du fichier de configuration
    require("configuration.php");
    // si il y a action de vote sans selection de choix on affiche un message d'erreur et le formulaire
    if(empty($_POST['votez']))
    	{
    	echo"<center><font color='red'><b>vous devez faire un choix</b><center></font><br>";
    	include"morceaux.php";
    	// on arrête l'exécution du script avec exit()
    	exit();
    	}
    else
    	{
     
    	// Connexion à base
    	$connect=mysql_connect($host,$login,$pass) or die ("Connection impossible");
    	mysql_select_db($base,$connect) or die ("selection impossible");
     
    	// on affiche un message de remerciement
    	setlocale (LC_TIME, 'fr_FR.UTF8');
    	$select_titre = ("SELECT titre FROM morceaux_groupe WHERE numero LIKE '".$_POST['votez']."' ");
    	$vote_titre = mysql_query($select_titre) or die ('Erreur : '.mysql_error() );
    	$affiche_titre = mysql_fetch_array($vote_titre);
    	echo '<p></p>';
    	echo '<p></p>';
    	echo "Merci d'avoir vot&eacute; pour :   ".'<font color="#8E236B">'.'<b>'.$affiche_titre["titre"].'</b>'.'</font>';
    	echo '<p></p>';
    	echo '<b>'.'<font color="##FF7F00">'.$hote_client.'</font>'.'</b>';
    	echo '<p></p>';
    	echo '<b>'.'<font color="##FF7F00">'." R&eacute;sultats des votes  : ".'</font>'.'</b>';
    	echo '<p></p>';
     
    	// il y a un vote on cherche dans la base le titre
    	$select = "SELECT * FROM morceaux_groupe ORDER BY vote_groupe DESC";
    	$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
    	$total = mysql_num_rows($result);
    	//On fait une boucle pour sortir toutes les entrées
    	while($affiche = mysql_fetch_array($result))
    	{
    	//On affiche les entrées
    	echo '<b>'.$affiche["nom_groupe"].'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
    	echo '&nbsp;'.'&nbsp;'.'&nbsp;'.'<font color="#7F00FF">'.$affiche["titre"].'</font>';
    	echo '<br />';
    	echo " Nombre de votes : ".'<b>'.$affiche["vote_groupe"].'</b>';
    	echo '<p></p>';
    	}	
    	//On ferme la boucle while
     
    	echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente
    	echo '<p></p>';
     
    	// on ajoute 1 au choix qui a été fait
    	mysql_query("UPDATE morceaux_groupe SET vote_groupe=vote_groupe+1 WHERE numero LIKE '".$_POST['votez']."'");
    	}	// fin du ELSE
     
    // on ferme la connection à la base
    mysql_close();
    ?>
     
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
     
    </body>
    </html>

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

Discussions similaires

  1. [MySQL] Optimisation de scripts PHP/MySQL
    Par DgG dans le forum PHP & Base de données
    Réponses: 368
    Dernier message: 20/11/2013, 18h59
  2. [php][mysql]Enlever message d'erreur
    Par Destampy dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 31/05/2005, 10h19
  3. [MySQL] [Script]Optimisation de scripts Php/MySQL (2)
    Par copy dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/08/2004, 08h33
  4. [php / mysql] pb if ( mysql_query() )
    Par dkmatt dans le forum Requêtes
    Réponses: 5
    Dernier message: 12/01/2004, 20h07

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