Script simple php

Fermé
xraptor Messages postés 45 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2011 - 18 nov. 2010 à 17:33
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 - 22 nov. 2010 à 15:32
Bonjour,

J'aimerais gérer une base de donnée toute simple où je pourrais trier l'affichage selon différents critères un peu comme sur les sites marchands (prix, note, nom etc)

Je dispose d'un site joomla, je sais grosso modo insérer mes données dans mysql, la ou ca se complique c'est que je ne connais pas php, si vous avez des scripts ou des références a me communiquer merci pour votre aide.

A voir également:

5 réponses

coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
19 nov. 2010 à 15:10
<?php

// Connexion à la base de données ; la variable $bd te sert de lien vers celle-ci.
$bd = mysql_connect("localhost","mysql_user","mysql_pwd");

// Déclaration de la requête SQL

$requete = "SELECT nom, surnom, mot_passe FROM Person";
$resultat = mysql_query($requete, $bd);

// Récupérer tes résultats et les afficher

while ($tab = mysql_fetch_array($resultat)) {
	print $tab['nom'];
	print $tab['surnom'];
	print $tab['mot_passe'];
}

?>


Dis-moi si quelque chose te paraît flou, ça va me faire plaisir de te donner un peu plus de détails. ;-)

Note : si tu fais une requête qui ne retourne pas de résultat (par exemple un INSERT ou un UPDATE), tu n'as pas besoin de la boucle avec le mysql_fetch_array().
Elle n'est là que pour lorsque tu fais un SELECT.

Je n'en ai pas mis, mais je t'encourage à mettre par-ci par-là des if() qui vérifient tes étapes et qui te retournent un message d'erreur s'il y a lieu. Je te laisse faire ça à ton goût !
2
xraptor Messages postés 45 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2011
Modifié par xraptor le 19/11/2010 à 18:20
j'ai une erreur
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files (x86)\wamp\www\Islam\index.php on line 20
la ligne 20 :
while ($tab = mysql_fetch_array($resultat)) {
0
xraptor Messages postés 45 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2011
Modifié par xraptor le 19/11/2010 à 19:20
j'ai trouvé un script qui fonctionne ^^ pour présenter la base de donnée sous forme de tableau mais je me demandais si on pouvait utiliser des liens au dessus du tableau pour trier par champ ???
0
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
19 nov. 2010 à 20:45
Je ne suis pas sûr de comprendre ta question, veux-tu dire que, si par exemple on a la commande :

SELECT utilisateur_id id, utilisateur_nom nom, utilisateur_adresse adresse FROM ma_table;

on peut faire :

SELECT utilisateur_id id, utilisateur_nom nom, utilisateur_adresse adresse FROM ma_table ORDER BY id, nom;

au lieu d'un ORDER BY utilisateur_id, utilisateur_nom ?
Si là est la question, alors la réponse est oui.

Sinon, peux-tu la reposer en d'autres termes ? :S
0
xraptor Messages postés 45 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2011
19 nov. 2010 à 22:10
euh...oui mais en fait j'essaie de faire des petits liens au dessus du tableau sur lesquels je peux cliquer pour trier les colonnes une peu comme "trier par prix" sur les sites marchand.

Je sais que l'on peut le faire en javascript, mais j'en suis pas vraiment fan.
0
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
22 nov. 2010 à 15:32
Ok je comprends ce que tu veux dire.

Dans ce cas, tu affiches l'entête de ton tableau normalement (avec echo ou print en PHP, par exemple) et tu mets le texte de l'entête dans un lien. Exemple de ce que ça devrait donner à la fin :
<table>
	<tr>
		<th><a href="?ordre=utilisateur_id">ID</a></th>
		<th><a href="?ordre=utilisateur_nom">Nom</a></th>
		<th><a href="?ordre=utilisateur_adresse">Adresse</a></th>
	</tr>
</table>

La valeur associée à "?ordre=" doit être un nom de colonne. Ensuite, dans ta requête SQL, tu changes pour :
$ordre = (isset($_GET['ordre']) && $_GET['ordre'] != '' ? $_GET['ordre'] : 'utilisateur_id');
$requete = 'SELECT utilisateur_id, utilisateur_nom, utilisateur_adresse FROM ma_table ORDER BY ' . $ordre . ';';

Et tu n'as plus qu'à passer $requete dans un mysql_query. Ainsi, cliquer sur le lien rechargera la page, et ordonnera la table de la manière désirée.

Après, tu peux rajouter une variable dans tes liens (ex : <th><a href="<gras>?ordre=utilisateur_id&sens=ASC">ID</a></th></gras>) qui déterminera si la colonne doit être classée en ordre croissant ou décroissant. Dans ce cas il faudra que la variable $_GET['sens'] alterne entre ASC et DESC. Dis-nous si tu as des problèmes avec cette partie (si tu décides de l'implémenter bien sûr) mais j'ai confiance que tu comprendras comment faire ;)
0
coeus Messages postés 3021 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 19 juin 2013 119
18 nov. 2010 à 17:48
www.w3schools.com/php/php_ref_mysql.asp

Et plus précisément :

www.w3schools.com/php/func_mysql_connect.asp
www.w3schools.com/php/func_mysql_query.asp
www.w3schools.com/php/func_mysql_fetch_array.asp

Je ne pense pas que tu auras de sitôt à te servir de bien d'autres fonctions que celles-là ;)
0
xraptor Messages postés 45 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2011
Modifié par xraptor le 19/11/2010 à 05:56
J'ai dû mal avec lien.
Est ce que quelqu'un pourrais me donner un tout petit exemple?
merci
0
xraptor Messages postés 45 Date d'inscription jeudi 8 avril 2010 Statut Membre Dernière intervention 20 avril 2011
19 nov. 2010 à 08:18
up
0

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

Posez votre question
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
19 nov. 2010 à 15:29
Pour trier les données, tu peux rajouter par exemple:

$requete = "SELECT nom, surnom, mot_passe FROM Person ORDER BY nom ASC";
0