xeroxiss
Messages postés85Date d'inscriptionsamedi 30 juillet 2005StatutMembreDernière intervention 7 mai 2009
-
22 sept. 2007 à 14:20
xeroxiss
Messages postés85Date d'inscriptionsamedi 30 juillet 2005StatutMembreDerniè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:
"Le code à recopier et à mettre sur votre site avant de commencer"
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 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
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 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
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
xeroxiss
Messages postés85Date d'inscriptionsamedi 30 juillet 2005StatutMembreDerniè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
lolowar
Messages postés30Date d'inscriptionmercredi 22 août 2007StatutMembreDernière intervention24 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
{
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!
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;
}
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.