Liens et Requêtes !

Résolu
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009 - 22 sept. 2007 à 14:20
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009 - 25 sept. 2007 à 21:28
Bonjour tout le monde !

Voila j'ai une petite question qui peu preter a sourir mais je ne vois pas la solution à mon "probleme".

Je voudrai juste savoir si il était possible et comment ?  De faire un "lien" sur une requete...

Exemple j'ai une liste, alimentée par une base de donnée, et bouclée avec while...jusque la parfait !

J'aimerai maintenant mettre un lien sur chaque ligne de ce tableau... par exemple :

Ligne 1 : nom - prenom - adresse - contact - etc... (premier lien)
Ligne 2 : nom2 - prenom2 - adresse2 -contact2 - etc...(deuxieme lien)

J'aimerai enfaite mettre un lien dynamique car les entrées le sont déja...étant donné quelles provienne de la base.

Donc on clique sur le premier lien et on arrive sur une page déja créer différente de celle du deuxieme lien ou du troisieme.
L'astuce réside a ne pas créer 1 page par liens... Je sais pas si je m'exprime bien.... ( 2000 entrées 2000 pages ? )

Et ma deuxieme petite question liée a la premiere est de savoir comment, faire un lien au dessu de ma colone qui quand on clique ré-ordonne ma liste... Ma réponse est dans la question ! Avec ORDER et / ou WHERE ?  mais comment ? lol

Par exemple nous avons des prix...Réorganisé la liste par prix...ou par nom, ou par date... Vous comprennez ?

merci de votre aide.

A bientot
A voir également:

13 réponses

lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
23 sept. 2007 à 13:52
Alors on fait plus simple, voila ton script il doit marché (juste le $ID la valeur prend celle dont tu as nommé ton ID dans ta table, et fais gaffe aux échappement, moi j'ai (") pour déclarer (') pour échapper, si tu as l'inverse tu les change).

Ta page qui contient le tableau et les liens. Tu met ça là ou tu veux ton tableau.
<?php
    echo "\";
  while($ListeNom= mysql_fetch_array($result ))
{
     $ID=$ListeNom['ID'];
     $Nom = $ListeNom['nom'];
     $Prenom= $ListeNom['prenom'];
     $Adresse= $ListeNom['adresse'];
     $Prix=$ListeNom['prix'];
     $Email=$ListeNom['email'];
echo \"----
\";
           echo \"";
    echo "  $Nom, \";
                echo \"";
    echo "  $Prenom, \";
             echo \"";
    echo "  $Adresse, \";
             echo \"";
    echo "  $Prix, \";
             echo \"";
    echo "  $Email, \";
    echo \"\";
    }
  echo "
";
  ?>

Maintenant dans ta page de résultat aprés avoir cliqué sur un des liens:
(là pareil, "ID" c'est le nom que tu as donné à ton id auto-incrémenté dans ta base)

mysql_select_db($database, $tabase);
$fiche = $_GET['VarID'];$query_select"SELECT ID,nom,prenom,prix,email FROM listeWHERE ID $fiche";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);

Voila, avec ça tu devrais avoir un site de champion
Envoi moi le lien que je vois ce que ça donne!!!
Bon dimanche!
Lolo
3
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
23 sept. 2007 à 13:57
Oupssss une petite erreur, remplace les lignes:

echo "  $Nom </td>";

par

echo "  $Nom </td>";

Lolo
3
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
22 sept. 2007 à 15:41
Salut Xeroxiss,
Je ne suis pas super calé, débutant meme, mais bon ce que tu essais de faire je l'ai fait, ça marche, voici mes solutions:
Déja pour mettre un lien dynamique c'est tout con:

Pour la page qui accueil le résultat de la ligne 1, tu fais un template, cad une page ou tu prépare une mise en page, puis aux endroits voulu une insertion dynamique des données appelées.
Appelons là "tapagedetemplate.php"
Ensuite lorsque tu clique sur un lien, par exemple à la ligne 1, il faut bien que ton serveur sache que tu appel cette ligne et pas une autre.
Ta requete est bassée sur une ID (celle de ta bdd) donc tu la récupére via une variable, nommont là $VarID

[tapagede template.php?VarID=<?php echo $tarequete['IDdelalignevoulu']; ?> <?php echo $tarequete['Nom']; ?><?php echo $tarequete['Prenom']; ?> et ainsi de suite]

Ensuite dans ta page de template, avec ta requete tu rajoute:
$recupID = $_GET['VarID'];
Ca te permet de récupérer l'ID envoyé, donc celui de la ligne 1 par exemple.
Ensuite quand tu récupére tes donnée "SELECT IDligne1, nom, prénom,... WHERE IDligne1 = $recupID...
Voila, chez moi ça marche sans problème, mais tu peux aussi réupérer par nom, ou autre...
Lolo
0
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
22 sept. 2007 à 15:46
Pour réorganisé les prix et tout c'est trés simple:

Trier par ordre croissant
Trier par ordre décroissant

if($_GET[”orderby”] == “asc”) // si on veut un ordre croissant
{ $sql = “SELECT * FROM mabase ORDER BY id ASC”;
}
elseif($_GET[”orderby”] == “desc”) // si on veut un ordre décroissant
{ $sql = “SELECT * FROM mabase ORDER BY id DESC”;
}
else // si rien n’a été précisé
{ $sql = “SELECT * FROM mabase”;
}

Je l'ai recopier du site de valhalla pour faire plus simple, mais c'est ça...

Lolo
0

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

Posez votre question
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
22 sept. 2007 à 18:52
Bonjour lolo, et tout dabors merci d'avoir voulu m'aider.

Tes propositions pourrait marcher...J'ai l'impression qu'il ne manque pas grand chose...

Peu etre est-ce moi qui ne les applique pas bien ?

<?php
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$select = 'SELECT nom,prenom,prix,email FROM liste';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
if($total) {
    // debut du tableau
    echo ''.\"\n\";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '----
';
        echo ' Nom |';
        echo 'Prenom |';
        echo '<gras>[template.php?VarID =<?php echo '1'; ?> '.$row["prix"].']</td>';

Cette ligne veut dire que sur tout les prix de mon tableau j'arriverai a la meme page avec l'id numéro 1....

Maintenant pour le ORDER... Cela ne fonctionne pas dans le sens ou la page ne se rafraichi pas... et que ma colone prix par exemple ne se "trie" pas. 

Voila le code est ci dessous, si tu voit la faille, mon erreur ou que tu as tout simplement un conseil

Merci beaucoup
0
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
22 sept. 2007 à 19:29
Alors attend, on va commencer par l'affichage du tableau en lui meme.
Je te donne un script à moi comme exemple, c'est celui de news sur un site.
Dans la colonne 1 il doit afficher la date de la news, dans la colonne 2 le titre de la news.
Sur le titre je met un lien qui amméne vers la page de template qui contient mon affichage pour les news, avec en plus le contenue de la news et les machines concernées (pour du jeu video en l'occurence).

<?php
    echo "\";
  
    while($NewsDefil = mysql_fetch_array($NewsListe))
//j'appel NewsDefil une variable, mais tu l'appel comme tu veux. NewsListe est de nom de ma connection mysql
 {
 
$tab = $NewsDefil['DateDePost'];
 $tab2 = $NewsDefil['News'];
 $tabid = $NewsDefil['IDNews'];
       
    echo \"----
\";
    echo \"$tab";
       echo ", \";
    echo \" $tab2 </td>\";
//VarID est le nom que j'ai donné pour récupéré l'ID mais tu met ce que tu veux
    echo \"\";
    }
  echo "
";
  ?>

Donc comme tu vois c'est aussi une boucle mais tu récupére l'id via la variable $tabid.
La table se compose d'un auto-increment IDNews, puis de la News, le Content, la Date de Post, et une table adjacente gére les machines.
Contrairement à ce que tu as écris l'ID récupéré est celui de chaque entrée.
Exemple, ta première ligne:
ID1, Dupont, jean paul...
ID2, Bauer, Jack...
Voila pour cette partie, tu devrais y arriver là je pense, comme tu vois c'est tres simple (je débute aussi alors...).
En revanche pour le tri je te donne une adresse avec un tuto vraiment bien fait (il est en milieu de page), si tu n'y arrive pas avec relance moi demain et je te donnerai un truc maison.
http://www.valhalla.fr/index.php/2005/09/25/construire-une-base-de-donnees-simple-avec-php-et-mysql/
Voila, bonne soirée, moi je vais faire le feu pour un bon BBQ!

Lolo
0
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
23 sept. 2007 à 14:32
J'ai un probleme avec fetch pour l"insant je test j'arrive
0
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
23 sept. 2007 à 14:53
Salut lolo,

Voila perfecto

Pour les id c'est parfait ca marche a merveille pour l'instant, un tout grand merci !

Me reste juste les order by... différent pour chaque entête de colone...

Merci beaucoup

A bientot lolo
0
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
25 sept. 2007 à 12:13
Pour le tri:

echo "<td>";
echo "Nom:";
echo "+";
echo "-";
echo "</td>";
echo "<td>";

echo "Prenom:";

echo "+";

echo "-";

echo "</td>";
echo "<td>";
if($_GET[”orderby”] == “asc”) //
{ $select = “SELECT * FROM liste ORDER BY Nom ASC”;
}
elseif($_GET[”orderby”] == “desc”) // si on veut un ordre décroissant
{ $select  = “SELECT * FROM liste ORDER BY Nom DESC”;
}
else // si rien n’a été précisé
{ $select = “SELECT * FROM liste;
}

if($_GET[”orderby”] == “asc”) //
{ $select = “SELECT * FROM liste ORDER BY Prenom ASC”;
}
elseif($_GET[”orderby”] == “desc”) // si on veut un ordre décroissant
{ $select  = “SELECT * FROM liste ORDER BY Prenom DESC”;
}
else // si rien n’a été précisé
{ $select = “SELECT * FROM liste;
}

    echo "  $Nom </td>";
                echo "<td>";
    echo "  $Prenom</td>";
             echo "<td>";
    echo "<a href='nomdelapage...

Voila, ça devrait être un truc du genre.
Mais bon là je le fais sans filets, alors je pense que le mieu est de chercher un tuto sur le tri, puis d'observer le fonctionnement et de l'intégrer à ta boucle par la suite...
Par contre faut vraiment que tu plonge les mains dedans si tu veux pouvoir assurer un minimum de suivi pour le site.

Lolo
0
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
25 sept. 2007 à 12:15
Juste avant le "-" il faut remplacer par DESC
Lolo
0
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
25 sept. 2007 à 19:03
Hello,

je ne vois pas dans ton script comment les liens du order by interferes ?

Par expemple comment le lien [page.php?orderby=desc -]

Sait t'il qu'il doit trier par prix ?

ou par email ?

Merci
0
lolowar Messages postés 30 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 24 juin 2008
25 sept. 2007 à 20:38
Non c'est juste que je ne me suis pas relu.
Tu l'appel comme tu veux...
Pour nom ordernom
pour prenom orderprenom...
Banco

Lolo
0
xeroxiss Messages postés 85 Date d'inscription samedi 30 juillet 2005 Statut Membre Dernière intervention 7 mai 2009
25 sept. 2007 à 21:28
Bon bref bilan, chez moi je n'arrive pas a le faire fonctionner.

Après l'avoir retourné dans tout les sens... Soit j'ai des parse erreur, ou des index undefined au niveau des orderby...

Enfin je ne me plaint pas merci de ton aide, je continue de chercher...

Si tu sais m'éclairer n'hésite pas.

Bonne soirée..

Xerox
0
Rejoignez-nous