Débutant demande de l'aide

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Débutant demande de l'aide

Re: Débutant demande de l'aide

par Spols » 29 août 2010, 23:31

echo '<tr>
<td><a href="tapage;php?tri=artiste&valeur=$data['artiste']">'.$data['artiste'].'</a></td>
<td><a href="tapage;php?tri=album&valeur=$data['album']">'.$data['album'].'</td>
<td align="center">'.$data['année'].'</td>
<td align="center">'.$data['genre'].'</td>
<td align="center">'.$data['pays'].'</td>
<td align="center">'.$data['label'].'</td></tr>';
J'ai pas continuer après album, mais l'idée est la. Lors du ré affichage de la page, tu récupère dans $_GET['tri'] le nom de la colonne de tri et dans $_GET['valeur'] la valeur du tri, tu injecte cela dans ta requête et tu obtiens ce que tu désire

Re: Débutant demande de l'aide

par albat » 29 août 2010, 23:12

Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP !", "Aidez-moi", "J'ai un problème", "Ça marche pas",...
n'apportent rien à la compréhension de ta demande.

Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

Re: Débutant demande de l'aide

par BloodyM » 28 août 2010, 13:21

Merci Spols.
J'ai approfondi mes recherches, je trouve quelques ressources mais je me sens dépassé, surtout pour la question 2...

Pour en revenir à la 1/ , je me suis peut-être mal expliqué...
Mes données s'affichent comme ceci:

Artiste - Album - Année - Genre - Pays - Label
Phoenix - Too Young - 1995 - Pop - France - EMI
Radiohead - OK Computer - 1998 - Pop - UK - EMI
....

Ce que j'aimerais, c'est que lorsque je clique sur 1998 par exemple, le tri se fasse automatiquement et que uniquement les albums de 1998 s'affichent. Mais pas uniquement pour 1990 comme tu l'as écrit plus haut. Ça implique dont de créer un lien 'dynamique' et je ne sais pas du tout comment faire cela :(

Re: Débutant demande de l'aide

par Spols » 28 août 2010, 01:40

ce sera plus simple de gerer les année avec un entier, surtout si tu veux avec le lien 1990 avoir tous les albums de 1990 à 1999 sinon un WHERE `annee` = '1990' peut fonctionner (ne met pas d'accent dans tes noms de colonnes)

pour le switch, fait une recherche dans ton livre php de référence ou sur le net, cette instruction te sera utile
ca correspond à un
if (){}
elseif(){}
...
else{}
quand tu tese la valeur d'une même variable

Re: Débutant demande de l'aide

par BloodyM » 28 août 2010, 01:15

Bonsoir,
j'ai créé avec Varchar. J'ai effectivement essayé WHERE avec = mais je suis un gros débutant, je ne comprends pas trop comment mettre en forme exactement. En gros, je sais à peu près ce dont je dois me servir mais pas comment...
Pour la deuxième question, un switch au niveau de ta préparation de requête sur la valeur de ta variable de formulaire de ton select fera l'affaire
Je t'avoue que pour moi c'est du chinois :oops:

Merci pour ta réponse.

Re: Débutant demande de l'aide

par Spols » 28 août 2010, 01:05

Pour la première question, sous quelle format a tu créer les champs dans ta base
si les années sont en int, tu peux alors tester avec des comparateur < et >
pour les varchar, soit avec = soit avec LIKE

Pour la deuxième question, un switch au niveau de ta préparation de requête sur la valeur de ta variable de formulaire de ton select fera l'affaire

Débutant demande de l'aide

par BloodyM » 28 août 2010, 00:58

Bonsoir,
je suis actuellement en train de faire une base de données de tous mes CDs, MP3s et Vinyles. Cet exercice me permet de me mettre un peu à PHP et la gestion d'une BdD MySQL puisque je n'y connais pas grand chose...

Du coup, j'ai trois tables différentes dans la Base "music":
****cds****
(id) - Artiste - Album - Année - Genre - Pays - Label
****mp3s****
(id) - Artiste - Album - Année - Genre
****vinyles****
(id) - Artiste - Album - Année - Genre - Pays - Label
Le tout est affiché sur 3 pages PHP différentes.

1/ Ce que j'aimerais beaucoup réussir à faire c'est la chose suivante:
lorsque je clique sur une année, par exemple 1990, ne s'affichent que les résultats de cette même année. Et puis appliquer la même chose à Artiste Genre, Pays et Label. Voila mon code actuel:
// connexion MySQL
$db = mysql_connect('localhost', 'root', '');

// on sélectionne la base
mysql_select_db('music',$db);

// on crée la requête SQL
$sql = 'SELECT artiste,album,année,genre,label,pays FROM vinyles';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
    echo '<tr><td>'.$data['artiste'].'</td><td>'.$data['album'].'</td><td align="center">'.$data['année'].'</td><td align="center">'.$data['genre'].'</td><td align="center">'.$data['pays'].'</td><td align="center">'.$data['label'].'</td></tr>';
    }

// on ferme la connexion à mysql
mysql_close();
J'ai essayé avec WHERE mais je n'arrive pas à grand chose... tout ce que je tente semble mauvais.

J'ai aussi créé un petit formulaire pour ajouter des CDs, ce qui m'amène à ma question suivante:
2/ Actuellement, mon code me permet de n'ajouter que des CDs mais j'aimerais pouvoir ajouter un objet de formulaire Select (options: CDs/MP3s/Vinyles) pour que l'écriture se fasse dans la base correspondante.
Voici mon code actuel:
// On récupère les champs 
if(isset($_POST['artiste']))      $artiste=$_POST['artiste']; 
else      $artiste=""; 
 
if(isset($_POST['album']))      $album=$_POST['album']; 
else      $album=""; 
 
if(isset($_POST['année']))      $année=$_POST['année']; 
else      $année=""; 
 
if(isset($_POST['genre']))      $genre=$_POST['genre']; 
else      $genre=""; 
 
if(isset($_POST['pays']))      $pays=$_POST['pays']; 
else      $pays=""; 
 
if(isset($_POST['label']))      $label=$_POST['label']; 
else      $label=""; 
 
    $db = mysql_connect('localhost', 'root', '');  // connexion à la base 
    mysql_select_db('music',$db);                  // sélection de la base 
     
        $sql = "INSERT INTO cds(artiste,album,année,genre,pays,label) VALUES('$artiste','$album','$année','$genre','$pays','$label')"; 
        mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());  
         
        // on affiche le résultat pour le visiteur 
        echo 'Le disque a été ajouté!'; 
 
    mysql_close();  // on ferme la connexion 
Un grand merci à vous à l'avance. Je prends beaucoup de plaisir à découvrir ces méthodes mais c'est quand même assez compliqué tout seul...