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

  FORUM HardWare.fr
  Programmation
  PHP

  Requête PHP MySQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requête PHP MySQL

n°1359140
lynxia
Qui? Bah oui, bah...eh! ^^
Posté le 04-05-2006 à 04:30:20  profilanswer
 

Bonjour,
 
Ayant débuté en php y a quelques jours, il y aura forcément des notions basiques que je n'aurais peut-être pas saisies.  
J'ai essayé de me documenter un peu partout et je voulais vous demander ce que vous en pensez du fichier recherche.php, parce qu'il ne fonctionne pas.
 
J'essaie de faire une simple requête qui consiste à afficher le champ "data" de la table "config" en fonction du hostname à rentrer dans un formulaire.
 
Merci pour vos remarques.
 
 
 
Voici un extrait de mon index.php:

Code :
  1. [...]
  2. <form enctype=\"multipart/form-data\" action=\"recherche.php\" method=\"post\" onsubmit='return verif_form_doc(this)'>
  3. Poste à chercher : <input name='hostname' type='text'>  <input type=\"submit\" value=\"OK \" />
  4. [...]


 
Le fichier recherche.php:

Code :
  1. <?php
  2. $hostname = $_POST['hostname'];
  3. $link = mysql_connect('localhost', 'root', '');
  4. if (!$link) {die('Impossible de se connecter : ' . mysql_error());
  5. }
  6. $db_selected = mysql_select_db('database', $link);
  7. if (!$db_selected) {
  8.    die ('Impossible de sélectionner la base de données : ' . mysql_error());
  9. }
  10. $query = sprintf("data FROM config WHERE hostname='%s' ",
  11.     mysql_real_escape_string($hostname));
  12. $result = mysql_query($query);
  13. while ($row = mysql_fetch_assoc($result)) {
  14.    echo $row['hostname'];
  15.  
  16. }
  17. ?>

Message cité 2 fois
Message édité par lynxia le 04-05-2006 à 12:25:47
mood
Publicité
Posté le 04-05-2006 à 04:30:20  profilanswer
 

n°1359147
Sve@r
Posté le 04-05-2006 à 07:20:34  profilanswer
 

lynxia a écrit :

Code :
  1. $query = sprintf("data FROM config WHERE hostname='%s' ",
  2.     mysql_real_escape_string($hostname));



Code :
  1. $query = sprintf("select data FROM config WHERE hostname='%s' ",
  2.     mysql_real_escape_string($hostname));


 

lynxia a écrit :

Ayant débutée en php y a quelques jours


Tu te débrouilles bien pour une débutante (j'en ai pas beaucoup vu qui savaient faire un "return(verifie_form(this))" en js ou qui pensaient de suite à utiliser "mysql_error()" )...

Message cité 2 fois
Message édité par Sve@r le 04-05-2006 à 07:22:24

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1359171
the_bigboo
Posté le 04-05-2006 à 08:39:48  profilanswer
 

Sve@r a écrit :

j'en ai pas beaucoup vu qui savaient faire un "return(verifie_form(this))" en js ou qui pensaient de suite à utiliser "mysql_error()"...


 
Normalement , tout bon tutoriel se doit d'en parler car c'est un moyen essentiel de déboguage ;)
Ptits conseil, commenter le code, et bien respecter les indentations.
 
Enfin , apprends a déclarer tes fonction et a les apeler, l'avantage etant que dans le scripts appelant ca sera beaucoup plus clair, et ton code plus propre ;)

n°1359175
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 04-05-2006 à 08:45:39  profilanswer
 

Sve@r a écrit :

Code :
  1. $query = sprintf("select data FROM config WHERE hostname='%s' ",
  2.     mysql_real_escape_string($hostname));


 
 
Tu te débrouilles bien pour une débutante (j'en ai pas beaucoup vu qui savaient faire un "return(verifie_form(this))" en js ou qui pensaient de suite à utiliser "mysql_error()" )...


sans parler de la très très bonne habitude d'utiliser un mysql_real_escape_string

n°1359226
the_bigboo
Posté le 04-05-2006 à 09:34:56  profilanswer
 

il est clair que c'est plaisant d'aider des personnes qui s'investisent vraiment...

n°1359400
lynxia
Qui? Bah oui, bah...eh! ^^
Posté le 04-05-2006 à 11:58:48  profilanswer
 

Merci pour ces conseils :)

n°1359401
FlorentG
Posté le 04-05-2006 à 12:00:05  profilanswer
 

Rhaaaa les mecs. Ca aurait été un gars, ils auraient déjà trouvé 25 défauts :D

n°1359409
the_bigboo
Posté le 04-05-2006 à 12:05:32  profilanswer
 

FlorentG a écrit :

Rhaaaa les mecs. Ca aurait été un gars, ils auraient déjà trouvé 25 défauts :D


:o :o :o :o :o

n°1359417
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-05-2006 à 12:11:22  profilanswer
 

FlorentG a écrit :

Rhaaaa les mecs. Ca aurait été un gars, ils auraient déjà trouvé 25 défauts :D


Moi j'aimerais bien savoir d'ou vous tirer que c'est une fille, la seule chose qui pourrait le laisser croire c'est le:

lynxia a écrit :

Ayant débutée


et c'est une faute de français :o
 
 

n°1359420
the_bigboo
Posté le 04-05-2006 à 12:15:29  profilanswer
 

sépafo [:alarmclock119]

mood
Publicité
Posté le 04-05-2006 à 12:15:29  profilanswer
 

n°1359429
lynxia
Qui? Bah oui, bah...eh! ^^
Posté le 04-05-2006 à 12:26:07  profilanswer
 

Pardon pour la faute, je corrige ça tout de suite ^^
 
Même si les filles sont en minorité en info, ça existe quand même :)
Bon la prog n'étant pas mon domaine de prédilection... (je suis plutôt dans les réseaux) je voulais un peu d'aide comme je sais qu'ici en général vous êtes super réactifs (bon tet pas forcément à 4h30 du matin ^^; quoique...)

n°1359435
the_bigboo
Posté le 04-05-2006 à 12:33:42  profilanswer
 

ya pas mal de noctambules quand meme :D

n°1359546
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 04-05-2006 à 13:55:44  profilanswer
 

anapajari a écrit :

Moi j'aimerais bien savoir d'ou vous tirer que c'est une fille, la seule chose qui pourrait le laisser croire c'est le:
 
et c'est une faute de français :o


Y a aussi le "etudiante" dans son profil qui pourrait etre un signe :o

n°1359565
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-05-2006 à 14:04:52  profilanswer
 

joce a écrit :

Y a aussi le "etudiante" dans son profil qui pourrait etre un signe :o


c'est vrai mais je ne passe pas non plus ma vie à étudier les profils des gens du forum, ni les arachnides d'ailleurs :o :o :o

n°1359662
jedebute75
Posté le 04-05-2006 à 14:56:32  profilanswer
 

bon alors puisque vous aidez les filles :-))) ça mévitera de poster un nouveau message, je me suis arrêtée sur le "mysql_real_escape_string" j'ai :  
[code]$query_resultatenquete = "SELECT * FROM information WHERE nom = '$choix'"; [code]  
marche très bien
mais  
[code]$query_resultatenquete = "SELECT * FROM information WHERE nom = mysql_real_escape_string('$choix')"; [code]  marche pas ????
 
et puis je voudrais que la sélection ce fasse si au moins les 3 première lettre de $choix corresponde à "nom" .Merci

n°1359673
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-05-2006 à 15:01:50  profilanswer
 

jedebute75 a écrit :

bon alors puisque vous aidez les filles :-))) ça mévitera de poster un nouveau message, je me suis arrêtée sur le "mysql_real_escape_string" j'ai :  

Code :
  1. $query_resultatenquete = "SELECT * FROM information WHERE nom = '$choix'";

 
marche très bien
mais  

Code :
  1. $query_resultatenquete = "SELECT * FROM information WHERE nom = mysql_real_escape_string('$choix')";

 marche pas ????
 
et puis je voudrais que la sélection ce fasse si au moins les 3 première lettre de $choix corresponde à "nom" .Merci


Lecon 1: la concaténation -> http://www.phpdebutant.org/article55.php

Code :
  1. $query_resultatenquete = "SELECT * FROM information WHERE nom = ".mysql_real_escape_string($choix);


 
edit: grrr de balises imbriquées


Message édité par anapajari le 04-05-2006 à 15:04:33
n°1359689
jedebute75
Posté le 04-05-2006 à 15:10:29  profilanswer
 

mouais ça marche pas chez moi :-((( sûr de sûr

n°1359706
jedebute75
Posté le 04-05-2006 à 15:20:11  profilanswer
 

sinon je me repons si yen a que ça interresse pour la requete c'est LIKE% à priori (en tout cas ça marche)
 
sinon rien a faire pour mysql_real_escape_string c dingue...

n°1359709
FlorentG
Posté le 04-05-2006 à 15:21:36  profilanswer
 

J'ai déjà vu qu'il fallait être connecté à mysql, genre :

$link = mysql_connect(....);
 
 
mysql_real_escape_string($choix, $link);


A vérifier toutefois

n°1359735
jedebute75
Posté le 04-05-2006 à 15:52:49  profilanswer
 

ok merci!!! je test

n°1359804
naceroth
Posté le 04-05-2006 à 16:47:19  profilanswer
 

FlorentG a écrit :

J'ai déjà vu qu'il fallait être connecté à mysql, genre :

$link = mysql_connect(....);
 
 
mysql_real_escape_string($choix, $link);


A vérifier toutefois


 
Exact, le manuel étant notre ami (ahem...) :
 

Citation :

mysql_escape_string() est identique à la fonction mysql_real_escape_string() hormis le fait que mysql_real_escape_string() requiert une ressource de connexion et protège la chaîne en fonction du jeu de caractères courant. mysql_escape_string() ne demande pas de connexion comme argument, et ne resepecte pas le jeu de caractères courant.

n°1360028
lynxia
Qui? Bah oui, bah...eh! ^^
Posté le 04-05-2006 à 21:16:16  profilanswer
 

the_bigboo a écrit :

Normalement , tout bon tutoriel se doit d'en parler car c'est un moyen essentiel de déboguage ;)
Ptits conseil, commenter le code, et bien respecter les indentations.
 
Enfin , apprends a déclarer tes fonction et a les apeler, l'avantage etant que dans le scripts appelant ca sera beaucoup plus clair, et ton code plus propre ;)


 
Sinon j'ai pas très bien saisi... Tu pourrais préciser par rapport à la déclaration et à l'appel des fonctions stp?

n°1360087
lynxia
Qui? Bah oui, bah...eh! ^^
Posté le 05-05-2006 à 00:00:28  profilanswer
 

Par rapport à ma requête  
 

Code :
  1. $query = sprintf("select data FROM config WHERE hostname='%s'",
  2. mysql_real_escape_string($hostname));


 
J'aimerais modifié cette requête de sorte à ce que je puisse intégrer des %, je m'explique, j'aimerais pouvoir faire une recherche sur  "%$hostname%"
Savez-vous comment intégrer ces %?

n°1360104
joce
Architecte / Développeur principal
&#034;BugHunter&#034;
Posté le 05-05-2006 à 00:32:16  profilanswer
 

remplace le hostname par hostname LIKE '\%%s\%'", ...

n°1360155
the_bigboo
Posté le 05-05-2006 à 08:01:53  profilanswer
 

SELECT * FROM config WHERE hostname LIKE '%%s%'

n°1360207
lynxia
Qui? Bah oui, bah...eh! ^^
Posté le 05-05-2006 à 10:16:44  profilanswer
 

Merci ça fonctionne, je pensais pas que c'était aussi simple

n°1360521
the_bigboo
Posté le 05-05-2006 à 15:54:31  profilanswer
 

lynxia a écrit :

Merci ça fonctionne, je pensais pas que c'était aussi simple


SQL = Simple Query Lanquage :ange:

n°1360616
Sve@r
Posté le 05-05-2006 à 17:42:20  profilanswer
 

the_bigboo a écrit :

SQL = Simple Query Lanquage :ange:


SQL=Structured Query Language !!! [:aloy] => http://www.google.fr/search?hl=fr& [...] DcountryFR


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1361530
the_bigboo
Posté le 08-05-2006 à 03:27:41  profilanswer
 


Méaculpa... J'avoue... Je me suis trompé, mais quand c'est bien structuré , c'est simple a utiliser ^^
 
( T'a vu comment je me suis rattrapé !! :whistle: :p )

n°1361598
Sve@r
Posté le 08-05-2006 à 11:40:47  profilanswer
 

the_bigboo a écrit :

Méaculpa... J'avoue... Je me suis trompé, mais quand c'est bien structuré , c'est simple a utiliser ^^
 
( T'a vu comment je me suis rattrapé !! :whistle: :p )


 
Très jolie pirouette...
 
En plus, tu as des excuses parce qu'il y a des endroits où c'est écrit "Simple Query Language" => http://www.bonweb.com/glo_S.php


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le   profilanswer
 


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

  Requête PHP MySQL

 

Sujets relatifs
petit probléme de requete MySQL avec l'utilisation d'une variable PHPPHP/MySQL: requete de tri et LEFT JOIN
[PHP]Utiliser le resultat d'un DATE_FORMAT de requete mysql sous dreamAfficher le résultat d'une requête PHP et MySQL
Requête sur MySQL [PHP](RESOLU) [PHP / Mysql] Requete SELECT très complexe
[Php MySql] Limites d'une requête[PHP - MySQL] Que donne cette requête ?
[PHP - MYSQL] optimisation d'une requete[PHP] peut on inserer une fonction php dans une requete Mysql ?
Plus de sujets relatifs à : Requête PHP MySQL


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