Faire de liens avec des variables

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 : Faire de liens avec des variables

par Truc » 05 janv. 2006, 03:05

De rien :)
bonne continuation.

n'oublis pas le tag [Résolu] (bouton en haut à gauche) :wink:

par Grichka » 05 janv. 2006, 01:45

Ca marche!!!!!!!! :P

Enfin je vois mes albums!!!!

Bon il faut que j'arrange leur présentation mais ca c'est rien!!
C'est trop cool!!!!!

J'ai pas encore essayer après le codage de chroniquesindiv.php mais je pense que ca ira (sinon je reviendrais vous enquiquiner!!!! ^^ )

En tous cas, un ENORME merci à toi pour ton aide précieuse et ta patiente (car il en a fallu avec moi!! :p ). Merci aussi à cyrano!!! ;)

par Truc » 05 janv. 2006, 01:30

Alors je crois que j'ai réussi!
(...)mais de tout facon, la page, dans mon navigateur affiché bien les groupes donc c'est normale!
Bien sur mais fallais bien se baseer sur quelque chose qui marche et pour que tu puisse faire tes premiers pas dans phpmyadmin :wink:

tu n'avais pas changé la méthode d'affichage dans la boucle permettant d'afficher les albums, essaie comme ça:

en début de script:
$groupe = (isset($_GET['groupe'])) ? htmlentities($_GET['groupe']) : null;
if(isset($groupe))
{   
   $search = mysql_query('SELECT DISTINCT album,pochette,note FROM chroniques WHERE groupe="'.$groupe.'"');
   
   while($result = mysql_fetch_array($search))
   {
        echo('<a href="Chroniquesindiv.php?album='.$result['album'].'">'.$result['album'].'</a>');
    }    
} 
ensuite tu dois récupérer la variable "album" par $_GET['album'] sur la page "Chroniquesindiv.php".

par Grichka » 05 janv. 2006, 01:20

Alors je crois que j'ai réussi!

pour la page qui affiche les groupes sa me mets bien la liste des groupes! ca me la trouver! donc je pense que c'est bon! mais de tout facon, la page, dans mon navigateur affiché bien les groupes donc c'est normale!

requête SQL:
SELECT DISTINCT groupe
FROM chroniques
WHERE groupe LIKE 'A%'
LIMIT 0 , 30

Par contre pour la page qui doit afficher les albums d'un groupe selectionner, quand je fais "test" dans phpmyadmin, ca me trouve les 2 albums qui doivent s'afficher, mais pourtant ca ne me les affiches pas sur ma page! :shock:

requête SQL:
SELECT DISTINCT album, pochette, note
FROM chroniques
WHERE groupe LIKE 'Angra%'
LIMIT 0 , 30

Bizarre!

par Truc » 05 janv. 2006, 01:09

il m'affiche la liste de groupe commencant par cette lettre! Et si y a pas de groupe ca m'affiche bien : "Il n\'y a aucun groupe commençant par la lettre A"!
c'est en contradiction avec :
]
Mais je n'ai qu'une page vide! j'ai quand meme le header, menu, fond etc...mais pas de texte!!
si tu as la liste tu devrai avoir l'affichage de la requete aussi !


sur la 3eme page celle qui doit afficher le détail des groupes tu refait les memes opérations pour afficher (en décomposant requete et exécution) et copier /coller

par Grichka » 05 janv. 2006, 00:59

Mon code pour la liste des lettres à changer!
au lieu d'avoir ceci :
<a href="list_chro.php?lettre=A">A</a></span>
<a href="list_chro.php?lettre=B">B</a>
j'ai ceci :
<?php

foreach (range('A', 'Z') as $letter)  {

   echo('<a href="list_chro.php?lettre='.$letter.'">'.$letter.'</a>');
}

?>
Normalement, la variable existe, car quand je clic sur une lettre, A par exemple, il m'affiche la liste de groupe commencant par cette lettre! Et si y a pas de groupe ca m'affiche bien : "Il n\'y a aucun groupe commençant par la lettre A"!

Donc logiquement ca devrai être bon non?

par Truc » 05 janv. 2006, 00:55

le test :
if(isset($lettre))
verifis si la variable $lettre existe ou est égal a null !!

Il faut donc que tu arrives sur cette page en ayant cliqué sur un des liens de l'alphabet:
<a href="list_chro.php?lettre=A">A</a></span>
<a href="list_chro.php?lettre=B">B</a> 
sinon effectivement tu n'auras aucun affichage :wink:

par Grichka » 05 janv. 2006, 00:48

je dois être nul c'est pas possible!

Voila mon code en entier (avec la modife que tu m'as dit) :
<!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" >
   <head>
       <title>Bienvenue sur mon site !</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	   <link rel="stylesheet" media="screen" type="text/css" title="Design sombre" href="metaliquechronique.css" />
   </head>
   <?php
mysql_connect("localhost", "root", "");
mysql_select_db("test");
$lettre = (isset($_GET['lettre'])) ? htmlentities($_GET['lettre']) : null;
?>

   <body>
   
   <div id="en_tete">
       </div>
   
   <div id="menu">
     <span class="accueil"><a href="accueil.php">Accueil</a></span>
	 <span class="news"><a href="news.php">News</a></span>
	 <span class="chroniques"><a href="chroniques.php">Chroniques</a></span>
	 <span class="live_reports"><a href="live-reports.php">Live Reports</a></span>
	 <span class="interviews"><a href="interviews.php">Interviews</a></span>
	 <span class="staff"><a href="staff.php">Staff</a></span>
	 <span class="liens"><a href="liens.php">Liens</a></span>
	 <span class="forum"><a href="forum.php">Forum</a></span>
    </div>
	
	<div id="list">
<?php
if(isset($lettre))
{
    $sql="SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre ."%'";

echo "la requete doit s'afficher sous ce commentaire: <br /><br />".$sql."<br /><br /> fin de l'affichage de la requete.";

$search = mysql_query($sql);

    if(mysql_num_rows($search) > 0)
    {
        while($result = mysql_fetch_array($search))
        {
           echo('<a href="list_chro2.php?groupe='.$result['groupe'].'">'.$result['groupe'].'</a>');
        }
    }
    else
    {
        echo '<p>Il n\'y a aucun groupe commençant par la lettre '.$lettre.'.</p>';
    }
}
?> 
	</div>
	
	</body>
	</html>
J'ai bien placé le code non?

J'enregistre, et via easyphp, j'ouvre cette page!

Mais je n'ai qu'une page vide! j'ai quand meme le header, menu, fond etc...mais pas de texte!! :cry:

par Truc » 05 janv. 2006, 00:39

En affichant ma page, j'ai strictement rien qui s'affiche dans mon navigateur!
c'est étonnant meme pas les liens ?

voila reprend ce code:
$sql="SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre ."%'";

echo "la requete doit s'afficher sous ce commentaire: <br /><br />".$sql."<br /><br /> fin de l'affichage de la requete.";

$search = mysql_query($sql);
a la place de:
$search = mysql_query("SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre ."%'");
    echo ($search);
la tu fait un copier/coller de ce qui est entre les 2 commentaires
Vous voulez pas me dire mots pour mots ce que je dois écrire dans mon code pour faire afficher la requète dans le navigateur?
c'est ce qu'on a fait :wink:
avec un echo de la chaine de caractère correspondant à la requete et non son exécution (donc PAS apres son passage dans mysql_query() !! )

par Grichka » 05 janv. 2006, 00:12

Je suis pas sur d'avoir plus compris!

voila ce que j'ai mis dans mon code :
$search = mysql_query("SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre ."%'");
    echo ($search);
En affichant ma page, j'ai strictement rien qui s'affiche dans mon navigateur!

J'ai ensuite essayé ceci:
$search = mysql_query("SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre ."%'");
    echo ($lettre);
mais toujours rien qui s'affiche!
Je suppose que je fais pas ce qu'il faut....


Voila mon code php de ma première page :
<?php
if(isset($lettre))
{
    $search = mysql_query("SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre ."%'");

    if(mysql_num_rows($search) > 0)
    {
        while($result = mysql_fetch_array($search))
        {
           echo('<a href="list_chro2.php?groupe='.$result['groupe'].'">'.$result['groupe'].'</a>');
        }
    }
    else
    {
        echo '<p>Il n\'y a aucun groupe commençant par la lettre '.$lettre.'.</p>';
    }
}
?> 
Vous voulez pas me dire mots pour mots ce que je dois écrire dans mon code pour faire afficher la requète dans le navigateur?
Je suis désolé, mais je pige vraiment que dalle! :(

par Cyrano » 04 janv. 2006, 23:52

Dans ton code, ajoute une ligne avec
echo($sql);
Où $sql est la variable qui contient ta requête.

Affiche ta page pour faire afficher la requête dans ton navigateur.

Copie cette requête affichée.

Bascule dans phpMyAdmin et colle cette requête dans la fenêtre de saisie SQL et exécute-là

Et reviens-nous avec le résultat.

par Grichka » 04 janv. 2006, 23:48

Désolé, j'ai oublié de m'indentifier! :roll:

par Invité » 04 janv. 2006, 23:47

Je comprend rien du tout de ce qui faut faire! :?

Je dois taper quoi EXACTEMENT dans phpmyadmin?

par Truc » 04 janv. 2006, 21:18

la tu as exécuté la requete avec le php...

le "echo" affiche la requete générée sur la page et c'est elle qu'il faut copier et non celle du code (qui n'est pas terminée, en fonction de la variable "lettre")

Et pour le 2eme cas regarde bien la différence entre mon exemple et ce que tu as fait. Il faut décomposer la requete et l'exécution mysql_query().

par Grichka » 04 janv. 2006, 20:40

alors pour ceci :
$sql="SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '". $lettre;

echo $sql;// a l'affichage tu fait un copier et un coller dans la fentre SQL de phpmyadmin.

$search = mysql_query($sql);
ca ma répondu ca :
#1064 - Erreur de syntaxe pr�s de '$sql="SELECT DISTINCT groupe FROM chroniques WHERE groupe LIKE '' � la ligne 1

et pour la 2ème requète de l'autre page à savoir ceci :
$search = mysql_query('SELECT DISTINCT album,pochette,note FROM chroniques WHERE groupe="'.$groupe.'"');
echo $sql;// a l'affichage tu fait un copier et un coller dans la fentre SQL de phpmyadmin.
$search = mysql_query($sql);
ca ma répondu ca:
#1064 - Erreur de syntaxe pr�s de '$search = mysql_query('SELECT DISTINCT album,pochette,note FROM ' � la ligne 1