Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
844 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Variable dans sql? lien dynamiques?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable dans sql? lien dynamiques?

n°1201851
pitcauvet
Posté le 18-09-2005 à 15:32:02  profilanswer
 

Salut tout le monde,
Voila mon problème: j'ai donc un site de jeux vidéo et dans une table que l'on va appeller "jeux" il y a tous les jeux de mon site avec leurs informations. Moi je sais comment faire pour afficher sur une page tous les jeux vidéo. Mais j'aimerais en afficher un seul en fonction du lien sur lequel le visiteur à cliquez. Mais je ne sais pas comment faire? En faite je voudrais avoir un lien du type fiches.php?jeux=battlefield_2 par exemple. Mais comment faire pour que ce lien marche? J'ai pensé à mettre une variable dans le sql quand je sélectionne ma table mais ça ne marche pas ---> $ma_variable = mysql_query('SELECT * FROM jeux WHERE jeux=$jeux');
 
Voila donc mon problème. J'espère que vous avez compris et je vous remercie de bien vouloir prendre la peine de m'aider.  :)


Message édité par pitcauvet le 18-09-2005 à 15:33:45

---------------
Venez visiter mon site d'actualité des jeux vidéo de guerre ---> http://www.WarVideoGames.fr.tc
mood
Publicité
Posté le 18-09-2005 à 15:32:02  profilanswer
 

n°1201862
sielfried
Posté le 18-09-2005 à 15:53:27  profilanswer
 

Qu'est-ce qui ne marche pas ?
 
Vu comme ça il a l'air de te manquer des concepts simples, parce que c'est un peu un problème de base, ce que tu décris...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1201867
pitcauvet
Posté le 18-09-2005 à 16:08:35  profilanswer
 

En faite j'aimerais savoir comment faut il faire pour afficher une seul entré d'une table sur une page en cliquant sur un lien.


---------------
Venez visiter mon site d'actualité des jeux vidéo de guerre ---> http://www.WarVideoGames.fr.tc
n°1201868
sielfried
Posté le 18-09-2005 à 16:11:00  profilanswer
 
n°1201877
pitcauvet
Posté le 18-09-2005 à 16:43:46  profilanswer
 

Merci mais cela ne me dit pas comment faire?!


---------------
Venez visiter mon site d'actualité des jeux vidéo de guerre ---> http://www.WarVideoGames.fr.tc
n°1201878
sielfried
Posté le 18-09-2005 à 16:46:34  profilanswer
 

Ben pour afficher une seule entrée d'une table t'en sélectionnes qu'une dans ton SELECT. Avec un WHERE donc.
 
Et si "ça marche pas" (comme tu dis dans ton post de base), faut nous dire en quoi, on n'est pas devins. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1201885
pitcauvet
Posté le 18-09-2005 à 17:41:31  profilanswer
 

"Ben pour afficher une seule entrée d'une table t'en sélectionnes qu'une dans ton SELECT"
Oui mais je veux pouvoir afficher un enregistrement en fonction du lien sur lequel j'ai cliqué.
Par exemple j'ai 2 liens:
---> jeux.php?après je sais pas Brothers In Arms
---> jeux.php?après je sais pas battlefield 2
Les deux liens amèneront sur la même page (jeux.php) mais ce ne sera pas les mêmes enregistrements.
 
voila merci de m'aider


---------------
Venez visiter mon site d'actualité des jeux vidéo de guerre ---> http://www.WarVideoGames.fr.tc
n°1201886
sielfried
Posté le 18-09-2005 à 17:47:01  profilanswer
 
n°1201910
pitcauvet
Posté le 18-09-2005 à 19:18:12  profilanswer
 

Non ce n'est pas ça que je veux faire. Car mes données sont dans une base de données. Je veux que en fonction du lien sur lequel on à cliquez sa affiche une ligne de ma table. Par exemple:
 
Je clique sur le lien Battlefield ---> j'arrive sur la page jeux.php avec la ligne de la table qui a le champs nom qui est "battlefild".
 
Je clique sur le lien Brothers In Arms ---> j'arrive sur la page jeux.php avec la ligne de la table qui a le champs nom qui est "brothers in arms".
 
PS: dans ma base de données il y a un table avec un jeu pour chaques ligne (enregistrement), et dans la ligne d'un jeu il y a toutes ses infos en colones (champs).


---------------
Venez visiter mon site d'actualité des jeux vidéo de guerre ---> http://www.WarVideoGames.fr.tc
n°1201932
sielfried
Posté le 18-09-2005 à 19:58:37  profilanswer
 

Et ben c'est exactement ça, tu passes le nom ou l'id (c'est mieux) du jeu par url, tu le récupères sur ta page et tu fais la requête en fonction...


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
mood
Publicité
Posté le 18-09-2005 à 19:58:37  profilanswer
 

n°1201951
pitcauvet
Posté le 18-09-2005 à 20:47:19  profilanswer
 

J'écris quoi?
 
$_GET['id'] = $id;
$retour = mysql_query('SELECT * FROM news WHERE id=$id');
while ($donnees = mysql_fetch_array($retour))
 
ou
 
$retour = mysql_query('SELECT * FROM news');
while ($donnees = mysql_fetch_array($retour))
 
???


---------------
Venez visiter mon site d'actualité des jeux vidéo de guerre ---> http://www.WarVideoGames.fr.tc
n°1202181
omega2
Posté le 19-09-2005 à 11:00:24  profilanswer
 

A chercher dans la documentation php ou dans tout bon tutoriel (et même beaucoup de mauvais d'ailleur ) :

  • Mais qu'elle est donc la différence entre les chaines mises entre ' et celles mises entre "?


Désolé mais en voyant plusieurs fois par jour ce probléme sur le forum, j'en ai marre de donner toujours la même réponse.

n°1202199
dwogsi
Défaillance cérébrale...
Posté le 19-09-2005 à 11:03:10  profilanswer
 

pitcauvet a écrit :

J'écris quoi?
 
$_GET['id'] = $id;
$retour = mysql_query('SELECT * FROM news WHERE id=$id');
while ($donnees = mysql_fetch_array($retour))
 
ou
 
$retour = mysql_query('SELECT * FROM news');
while ($donnees = mysql_fetch_array($retour))
 
???


$id = $_GET['id']; //C'est mieux
 WHERE id=$id'); =>$id arrive par GET, tu tiens pas a ta BDD toi...  :sweat:

Message cité 1 fois
Message édité par dwogsi le 19-09-2005 à 11:08:37

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1202238
gatsusat
Posté le 19-09-2005 à 11:25:28  profilanswer
 

dwogsi a écrit :

$id = $_GET['id']; //C'est mieux
 WHERE id=$id'); =>$id arrive par GET, tu tiens pas a ta BDD toi...  :sweat:


 
 
A po pigé pourquoi tu marques ça ?
Heu j'aurai faire aussi un select * where id="monid".
 
pitetre qu'on peut faire du sql injection dans sa page vu la requete un peu pourrie, je me trompe ?
 
aulors verifier que $id est bien un entier

n°1202241
omega2
Posté le 19-09-2005 à 11:29:09  profilanswer
 

La colone id, c'est un nombre ou un chiffre? (spa pareil)
Ca sert à rien de forcer mysql à perdre du temps en transtypage si c'est évitable facilement.

n°1202244
dwogsi
Défaillance cérébrale...
Posté le 19-09-2005 à 11:31:34  profilanswer
 

On peut bien saisir ce qu'on veut dans l'url, donc moi ce que je fais lorsqu'il sagit d'une donnée qui doit forcément être numérique je fait un test dessus avec is_numeric() et ensuite pour être tout à fait certain qu'il n'y a pas de risque je met aussi un cou de mysql_real_escape_string(). On pourrait aussi mettre encore un cou de ceil() pour être certain d'avoir un entier.


Message édité par dwogsi le 19-09-2005 à 11:32:18

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1202253
omega2
Posté le 19-09-2005 à 11:36:49  profilanswer
 

Toujours est il que son erreur est surtout dans sa façon d'utiliser les chaines entre '.

n°1202257
dwogsi
Défaillance cérébrale...
Posté le 19-09-2005 à 11:40:24  profilanswer
 

Certes et si ya bien une chose que je déteste c'est de voir une variable directement dans une chaîne entre quote, moi je préfére:
 
$retour = mysql_query("SELECT * FROM `news` WHERE `id` = '".mysql_real_escape_string($id)."'" );


Message édité par dwogsi le 19-09-2005 à 11:40:51

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1202261
omega2
Posté le 19-09-2005 à 11:43:22  profilanswer
 

Mieux :  
$retour = mysql_query('SELECT * FROM `news` WHERE `id` = "'.mysql_real_escape_string($id).'"');
 
(les ' comme délimiteurs de chaines et les " comme chaines niveau sql)

n°1202268
dwogsi
Défaillance cérébrale...
Posté le 19-09-2005 à 11:46:01  profilanswer
 

Et en quoi c'est mieux?
J'veux élargir mes connaissances!


Message édité par dwogsi le 19-09-2005 à 11:46:29

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1202275
titione
addicted
Posté le 19-09-2005 à 12:02:14  profilanswer
 

paske si tu veux insérer du texte comme "l'arbre est joli" tu auras l'air bête si tu mets des '' comme délimiteur... alors qu'avec les "" ça passe nickel !!

n°1202277
omega2
Posté le 19-09-2005 à 12:04:14  profilanswer
 

avec des ' comme délimiteur, php ne perdra pas son temps à chercher s'il y a des noms de variables dans la chaine ou des caractéres spéciaux (les \n et companie).
Avec des ", il les cherchera, s'il en trouve, il devra remplacer les nom de variables par la valeur de la variable, et s'il y a des caractéres spéciaux, il devra aussi les remplacer.
Finalement, php mettra plus de temps pour traiter cette chaine là même s'il n'y a rien à changer dedans et beaucoup plus de temps s'il doit y changer pleins de trucs.

n°1202280
omega2
Posté le 19-09-2005 à 12:10:51  profilanswer
 

titione a écrit :

paske si tu veux insérer du texte comme "l'arbre est joli" tu auras l'air bête si tu mets des '' comme délimiteur... alors qu'avec les "" ça passe nickel !!

Par ce que si tu veux insérer des citations donc des chaines entouré de ", des symboles monétaires (le $ détermine le début d'un nom de variable qui sera rempalcé)ou si t'as des textes contennat des \ colé à un mot ca sera mieux? Parfois, même les {} dans une telle chaine entre " posent problémes.
Ca demande de penser à beaucoup plus de trucs quand tu tapes ton code en mettant les chaines entres ".
Les chaines entre " ne devraient idéalement servir qu'a une chôse : pour le rajout de caractéres spéciaux dans une chaine. C'est le seul cas où cette notation soit supérieure à l'autre.


Message édité par omega2 le 19-09-2005 à 12:11:29
n°1202282
dwogsi
Défaillance cérébrale...
Posté le 19-09-2005 à 12:18:32  profilanswer
 

Ouai mais voilà tout mon prodblème, je sais bien que l'idéal est d'utiliser les ' puisqu'on donne moins de travail à php, cela dit avant de commencer à toucher au php j'étais sur d'autres langages qui eux n'acceptais pas les quotes simples. Et c'est pourquoi j'ai pris la facheuse habitude sur php d'utiliser tout le temps les doubles.
 
En passant les anciens langages dont je parle sont, par exemple, Basic sur amstrad 464+, QBasic, etc... La bonne époque!


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1202285
omega2
Posté le 19-09-2005 à 12:23:05  profilanswer
 

L'époque des goto tu veux dire? :lol:
Mais bon, moi aussi, j'utilises des langages qui n'acceptent que des simples quotes et d'autres des doubles, là n'est pas le probléme, il faut juste arriver à prendre les bonnes habitudes en fonction des langages.

n°1202289
dwogsi
Défaillance cérébrale...
Posté le 19-09-2005 à 12:27:01  profilanswer
 

Oui oui l'époque des goto ou tu devais indiquer le numéro de ligne! C'était géant!!! lol :D Faut que je fasse remarcher mon Amstrad avec les programme sauvegarder sur des cassettes audio, monumental!
 
Enfin bon cette histoire de quotes c'est quand même chiant! Vais essayer de m'habituer! Et sinon l'autre avec son problème il devient quoi?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
n°1202735
pitcauvet
Posté le 19-09-2005 à 19:16:26  profilanswer
 

Et sinon l'autre avec son problème il devient quoi?
Bin attends à cette heure ci je suis au lycée. Sinon je vous remercie car j'ai pu résoudre mon problème!!!  :)  
 

Code :
  1. $id = $_GET['id'];
  2. $retour = mysql_query('SELECT * FROM news WHERE id = "'.mysql_real_escape_string($id).'"');
  3. while ($donnees = mysql_fetch_array($retour))


 
Et sa marche nikel! Solution proposé par dwogsi et reprise par omega2, mais en tous cas merci  aux autres d'avoir cherché à résoudre mon problème! Bon bin maintenant je n'est plus qu'à aller programmer.....
 
Encore merci et à la prochaine....  :hello:  

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Variable dans sql? lien dynamiques?

 

Sujets relatifs
lien sur un bouton : du html tout simple...tester si une variable est nul
Lien vers un fichierUn lien pour deux url
Remplcer un lien texte par une imageUtilisation d'une variable en Flash depuis PHP
Aide substitution de variable DOS SVP (mille merci nglechau)[Résolu]Syntaxe Range avec variable
ouvrir un lien dans le navigateur par défautcréer un fichier .txt et faire un lien sur la .jsp / href (Websphere)
Plus de sujets relatifs à : Variable dans sql? lien dynamiques?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR