Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2011, 15h20   #1
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
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 :
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 :
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>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 15h21   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
il fait mettre un mysql_real_escape_string sur les valeurs
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 15h57   #3
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Bonjour stealth35,

j'ai modifié ceci :
Code :
mysql_query("UPDATE ".morceaux_groupe." SET vote_groupe=vote_groupe+1 where titre='".$_POST['votez']."'");
par cela :
Code :
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.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 16h04   #4
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
mysql_query("UPDATE morceaux_groupe SET vote_groupe=vote_groupe+1 where titre='".mysql_real_escape_string($_POST['votez'])."'");
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 17h05   #5
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
regarde du côté de la fonction addslashes()
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/07/2011, 17h12   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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 ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 21h26   #7
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ 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
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2011, 21h45   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
t'as les magic_quote d'activé ?
http://www.php.net/manual/fr/securit....disabling.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 09h45   #9
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
désolé stealth35 mais je ne comprends pas où je dois mettre ce magic_quotes et comment ?
Merci de ton aide.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 09h50   #10
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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 :
addslashes(mysql_real_escape_string($_POST['toto']))
Je ne sais pas si c'est une bonne méthode mais cela fonctionnait bien
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 08/07/2011, 10h15   #11
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
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 :

Citation:
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"
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 10h28   #12
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
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.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 10h39   #13
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par heretik25 Voir le message
j'avais pour habitude de faire avant l'insertion en base :
Code :
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2011, 10h57   #14
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
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. J'avais appris cela sur le site du zéro il me semble.

Pour autant, j'en prends bonne note.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 15h24   #15
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
Que faut-il utliser alors pour un bon fonctionnement :
addslashes ou mysql_escape_string() ?
et je ne trouve toujours pas php.ini ?
merci.
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 15h52   #16
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
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...
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 16h06   #17
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
@ gwharl :

mon OS : Linux Ubuntu 10.10
package style WAMP, LAMP, etc... : je ne sais pas où cela se trouve ?
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 16h41   #18
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
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
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 12/07/2011, 09h58   #19
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Je suppose que tu as installé apache, mysql, etc... via une commande de ce style.
Code :
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...).
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2011, 15h37   #20
Membre du Club
 
Avatar de fazpedro
 
Homme
Inscription : août 2009
Messages : 360
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : août 2009
Messages : 360
Points : 64
Points : 64
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 :
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 :
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>
fazpedro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h31.


 
 
 
 
Partenaires

Hébergement Web