Classement

davm -  
 davm -
Bonjour,
Je suis un debutant et je voulais creer un classement des artistes fonctionnant par votes pour mon site de musiques!
Est-ce qu'il y a quelqu'un qui pourrait m'aider pour realiser ca?

merci par avance,

17 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

quelles technologies utilises-tu, où en es-tu du développement, de quoi as-tu besoin exactement ?
0
davm
 
Salut,
en faite j'ai un site sur la musiques, que je fais avec le logiciel pspad, et je suis entrain de refaire a nouveau le site, la j'ai creer un formulaire pour stocker les artistes dans ma bdd, et maintenant j'avais besoin d'un classement pour que les visiteurs puissent voter pour leurs titres préférés, et j'avais besoin que quelqu'un puisse m'aider pour realiser ca.

merci par avance,
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
oki !

ton formulaire fonctionne ?

dans ta BDD, qu'as-tu prévu comme champ ?

pour un classement il te faut au moins un identifiant (évidemment, hein !) et la note (avec par défaut la valeur "0").

pour le vote, dans l'affichage il faut prévoir un formulaire par artiste avec juste un bouton "voter" et en hidden, l'identifiant dudit artiste.

en face tu mettras un script qui récupérera l'id et incrémentera la note dans la base.

par la suite tu pourras ajouter du Javascript pour ne pas avoir recharger la page à chaque vote, mais dans un premier temps il faut le faire tourner en PHP !

sachant cela et si ça te convient, de quoi as-tu besoin maintenant ?
0
davm
 
salut,
dans la bdd j'ai plusieurs tables y compris la table artiste c'est la que les artistes sont stockés et voici les champs:
-ID, int, auto increment, clé primaire
-nom, varchar,
-vrai_nom, varchar,
-biographie, text,
-vote, int.


mais j'ai besoin d'un premier temps une table classement?
apres pour ecrire les noms de l'artiste et les titre je dois ouvrire une fichier classement?

merci par avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
davm
 
salut,
dans la bdd j'ai plusieurs tables y compris la table artiste c'est la que les artistes sont stockés et voici les champs:
-ID, int, auto increment, clé primaire
-nom, varchar,
-vrai_nom, varchar,
-biographie, text,
-vote, int.


et pour le classement j'ai besoin d'un premier temps une table classement?
apres pour ecrire les noms de l'artiste et les titres je dois ouvrire une fichier classement?

merci par avance
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
dans la bdd j'ai plusieurs tables y compris la table artiste c'est la que les artistes sont stockés et voici les champs:
nikel

pour le classement j'ai besoin d'un premier temps une table classement?
non le classement c'est la requête SQL qui le définit :
SELECT `ID`, `nom` FROM `artistes` ORDER BY `vote` DESC, `nom' ASC;"

comme ça c'est classé de la plus grande note à la plus petite en cas d'égalité, classé par nom ascendant.

pour ecrire les noms de l'artiste et les titres je dois ouvrire une fichier classement?
ben je sais pas comment tu veux présenter ça.
tu peux l'insérer dans un document HTML (par exemple dans un bloc sur le côté) ou créer un document exprès avec la liste.
0
davm
 
salut,

donc si je met par exemple les artistes sur une fichier xhtml je dois mettre les noms et les titres normalement? c'est a la fin que j'implique le php?
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

on va partir d'une liste (liste.php) :
<?php
	session_start();
/*
	* ici tu te connectes à la BDD et tu récupères la liste des artistes
	* pour l'exemple je fais comme si la liste des artistes étais contenu dans $artistes
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=iso-8859-15"/>
		<meta http-equiv="content-language" content="fr"/>

		<title>Titre de la page</title>
	</head>
	<body>
		<h1>Liste des artistes</h1>
<?php
	if(isset($_SESSION['message']))
	{
		echo '<p>'.$_SESSION['message'].'</p>';
		unset($_SESSION['message']);
	}
?>
		<ul>
<?php
	foreach($artists as $artist)
	{
		echo '<li>'.$artiste['nom'].' <form action="vote.php" method="post"><p><input type="submit" value="Voter !"/><input type="hidden" id="id" name="id" value="'.$artiste['id'].'"</p></form></li>';
	}
?>
		</ul>
	</body>
</html>

et dans le script de traitement :
<?php
	session_start();
	
	// tu récupères l'ID
	$vars['id'] = $_POST['id'];

	// tu te connectes à la BDD et tu exécutes la requête
	$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
	$sql = 'UPDATE `artistes` SET `vote` = `vote` + 1 WHERE `id` = :id;';
	$sth = = $dbh->prepare($sql);
	
	// je stocke les messages de réussite/échec dans la session, c'est plus simple
	if($sth->execute($vars))
		$_SESSION['message'] = 'Vote pris en compte&nbsp;!';
	else
		$_SESSION['message'] = 'Vote échoué&nbsp;!';

	header('Location:liste.php');
?>
0
davm
 
salut,
donc je n'ai besoin qu'une seule fichier...
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

moi je le ferais plutôt en deux comme dans mon exemple.
un liste.php pour l'affichage et un vote.php pour le traitement.

je trouve ça plus propre de séparer les deux mais tu peux aussi mettre le traitement en haut de liste.php.
0
davm
 
Salut,
ok, merci je vais essayer de le faire, mais juste une petite question, pour les artistes je peux marquer en bas <h1>liste des artistes</h1>?

merci,
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
pour les artistes je peux marquer en bas <h1>liste des artistes</h1>?
je ne vois pas trop ce que veux savoir.
mais oui, pour la liste il vaudrait mieux mettre un titre de niveau 1 dans le corps du document.
0
davm
 
en faite, dans la doc, je dois mettre des artistes pour que les internautes puissent voter, et les artistes je voulais savoir on peut ecrire comme ca: <p>nom artiste<br />titre</p>
si oui je marque ou dans le fichier.
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
comme c'est une liste il faut utiliser une liste énumérative (<ul>), une liste numérotée (<ol>) ou une liste de définitions (<dl>), cf. SelfHTML.

prenons le plus simple, une liste énumérative :
<ul>
	<li>
		Nom de l'artiste,
		<span>titre du morceau</span>
		<form method="post" action="traitement.php">
			<p>
				<input type="button" value="voter"/>
				<input type="hidden" value="A REMPLACER" name="id" id="id"/>
			</p>
		</form>
	</li>
</ul>

comme ça tu as le nom de l'artiste, le nom du morceau et le bouton pour voter.
évidemment, il faut répéter le <li> pour chaque artiste !
0
davm
 
donc, si j'ai bien compris a chaque fois dans liste.php je dois marquer ca:

<ul>
<li>
Nom de l'artiste,
<span>titre du morceau</span>
<form method="post" action="traitement.php">
<p>
<input type="button" value="voter"/>
<input type="hidden" value="A REMPLACER" name="id" id="id"/>
</p>
</form>
</li>
</ul>
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
je t'ai fait un exemple simpliste pour te montrer le principe.

dans ce cas j'ai pas utiliser de BDD mais un fichier CSV pour stocker les données mais le travaille est exactement le même avec une BDD sauf que tu ajouteras en plus le classement par note.

+ source liste.php

+ source traitement.php
0
davm
 
Ok! merci, je vais le faire.
0