REQUETE SQL AVEC ID ET ORDER [RESOLU] - SQL/NoSQL - Programmation
Marsh Posté le 18-02-2014 à 10:26:14
C'est normal "RUBRIQUE" écrit en majuscule dans ton $_GET T'as vraiment une url du genre http://monsite.fr/index.php?RUBRIQUE=5 ???
T'as conscience que le "RUBRIQUE" du GET n'a rien à voir avec celui en base...
Par ailleurs, si tu fais un where rubrique = $id, si ton ID est unique, je vois pas à quoi va te servir le order by
Marsh Posté le 19-02-2014 à 07:41:44
Merci pour ta réponse...
Un ID est unique OUI et NON...
Exemple, si dans ta requête SQL tu demande "L'equipe de foot numéro "40", ton $_GET de RUBRIQUE sera "40" mais ton ARRAY sera 11 noms (tous les joueurs de la colonne RUBRIQUE appelé par le $_GET) mais bien sûr je voudrais classer ces joueurs, donc interviendrait ma demande sur l'ORDER BY.
Pour l'instant cette requête marche, simplement je voudrait ordonner un classement. Derrière ".$id pour l'instant je ne trouve pas la solution...
Marsh Posté le 19-02-2014 à 08:44:57
Normalement c'est tout simplement
$reponse = mysql_query ("SELECT * FROM $base WHERE RUBRIQUE=".$id." ORDER BY nom");
Faudra que tu adaptes en utilisant la bonne colonne, pas sûr que ce soit "nom" dans ton cas
Marsh Posté le 19-02-2014 à 09:30:21
Par contre c'est pour faire un site en ligne que tu vas utiliser ça ?
Parce que là la SQL injection est hyper simple à faire avec ce code. Si tu connais pas : http://fr.wikipedia.org/wiki/Injection_SQL
Marsh Posté le 19-02-2014 à 10:50:06
Non pas du tout...cette partie est inaccessible sauf à celui qui a des codes restreints. Mais merci pour le lien je vais voir ça.
Marsh Posté le 19-02-2014 à 11:01:17
Ok fais gaffe parce que même en interne tu dois être conscient de cet aspect et adapter ton code pour l'empêcher
Marsh Posté le 21-02-2014 à 08:35:52
je viens de lire ces posts... et j'ai une question style, le php pour les nuls ...
Les instructions SQL sont keysensitves en PhP ?
$reponse = mysql_query ("SELECT * FROM $base WHERE RUBRIQUE=".$id);
<>
$reponse = mysql_query ("SELECT * FROM $base WHERE rubrique=".$id);
?
Marsh Posté le 21-02-2014 à 08:55:51
En fait ta question est plus au niveau de mySQL. Et la réponse est non, tu peux l'écrire en majuscules ou non.
Marsh Posté le 21-02-2014 à 14:37:00
Je ne comprends pas alors ce que dis alors Rufo...
(c'est pas bien grave, lol, car c'était vraiement une question de béautien ...)
Marsh Posté le 21-02-2014 à 15:01:48
Ce que je voulais dire, c'est que le "RUBRIQUE" qui est écrit dans la variable $_GET['RUBRIQUE'] n'a rien à voir, du point de vue des variables en mémoire ou en base avec le "RUBRIQUE" (champ d'une table en base) qui est écrit dans ta requête SQL.
En résumé, c'est pas parce que tu as un champ en base nommé "RUBRIQUE" et que tu veux utiliser dans une requête SQL que le nom de la variable dans $_GET doit porter le même nom.
Tu peux faire :
$id = $_GET['Toto'];
$reponse = mysql_query("SELECT * FROM $base WHERE RUBRIQUE = $id" );
Ca veut dire que l'url du script sera du genre http://siteweb/script.php?Toto=5
C'est plus clair ?
Marsh Posté le 21-02-2014 à 15:28:27
okok
Oui, je comprends ... merci .
l'instruction $_GET['XXXX'] : te permet de te connecter (on va simplifier...)
et vu que tu es connecté après:
tu fais une requete sql avec le mysql_query ("Chaines de caractères = requête SQL" ).
Si c'est ça: il faut juste que hogz concatene correctement son "order by SON_CHAMP" à la 1er partie de sa requête, non?
Encore une petite question est ce que $base est le nom de la table ou une variable? (ou est-ce que je vais acheter un bouquin sur le php? )
Marsh Posté le 21-02-2014 à 16:01:13
Pas du tout. $_GET comme $_POST permet de récupérer une ou plusieurs données provenant d'un formulaire posté avec la méthode "get" ou "post".
En "get", les valeurs des champs du formulaire sont transmises dans l'url du script chargé de traiter le formulaire, d'où une url de la forme mentionnée précédemment : http://siteweb/script.php?champ1=T [...] amp2=25...
Marsh Posté le 17-02-2014 à 15:47:26
Bonjour,
je voudrai faire un ORDER BY après une récupération de l'ID en GET voici mon exemple...
Mon GET:
<?php $id=$_GET['RUBRIQUE'];?>
Ma requete:
<?
$reponse = mysql_query ("SELECT * FROM $base WHERE RUBRIQUE=".$id);
while ($donnees = mysql_fetch_array ($reponse))
{
?>
J'ai essayé de mettre mon ORDER BY à la suite, mais ma récupération de GET ne fonctionne pas.
Merci pour votre aide.
Cordialement
Message édité par hogz le 19-02-2014 à 15:20:57