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

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  422  423  424  ..  1454  1455  1456  1457  1458  1459
Auteur Sujet :

blabla@web

n°1657614
omega2
Posté le 13-12-2007 à 11:31:58  profilanswer
 

Reprise du message précédent :
cytrouille > L'attribut "selected" sert à désigner les options sélectionné par défaut au chargement de la page. Ca ne sert pas à indiquer ou trouver les éléments actuellement sélectionné.
Voilà pourquoi ça ne servait à rien de modifier l'attribut "selected"

mood
Publicité
Posté le 13-12-2007 à 11:31:58  profilanswer
 

n°1657615
Profil sup​primé
Posté le 13-12-2007 à 11:32:32  answer
 

Le contenu de ce message a été effacé par son auteur

n°1657616
Profil sup​primé
Posté le 13-12-2007 à 11:33:10  answer
 

Le contenu de ce message a été effacé par son auteur

n°1657640
koskoz
They see me trollin they hatin
Posté le 13-12-2007 à 12:37:28  profilanswer
 

Dj YeLL a écrit :

Oui et non, le SELECT COUNT(pseudo) ne sert à rien dans le cas présent, donc tu peux mettre SELECT 1
 
Pour le "list" c'est du chipotage oui :D (je n'ai d'ailleurs jamais utilise list pour faire ça)


 
En fait si j'ai bien compris le fonctionnement, la requête va renvoyer "1" si elle trouve une ligne qui match ?
 

FlorentG a écrit :


Pour ce petit bout de code, je te conseillerais plusieurs trucs.


 
Merci pour toutes ces précisions, mais je n'ai pas encore du tout abordé la fonction de classe :(
 
J'ai bien peur que ça me prenne énormément de temps à tout assimiler :/


---------------
Twitter
n°1657643
FlorentG
Posté le 13-12-2007 à 12:43:22  profilanswer
 

koskoz a écrit :

Merci pour toutes ces précisions, mais je n'ai pas encore du tout abordé la fonction de classe :(/


Bof, spatrès compliqué à piger.

n°1657644
koskoz
They see me trollin they hatin
Posté le 13-12-2007 à 12:43:38  profilanswer
 

FlorentG a écrit :


 
Pour ce petit bout de code, je te conseillerais plusieurs trucs.
 
1) Fait-toi une classe pour les requêtes sql liés à l'authentification.
 

Code :
  1. <?php
  2. class KKZ_Mysql_Auth
  3. {
  4.  
  5.    public function __construct()
  6.    {
  7.    }
  8.  
  9.  
  10.    public function userExists($user, $pass)
  11.    {
  12.        $user = mysql_real_escape_string($user);
  13.        $pass = hash('md5', $pass);
  14.  
  15.        $result = mysql_query(
  16.            'SELECT COUNT(`pseudo`) AS nb FROM ' . TBL_MEMBRES
  17.          . ' WHERE `pseudo`=\'' . $user . '\' AND `pass`=\'' . $pass . '\' AND ADMIN=1');
  18.  
  19.        $row = mysql_fetch_assoc($result);
  20.  
  21.        return (int)$row['nb'] === 1;
  22.    }
  23.  
  24. }
  25. ?>


 
Vaut mieux se faire des classes comme ça avec les requêtes, ça soulagera
grandement ton code au-dessus.


 
Plusieurs trucs que je comprend pas :
1) A quoi sert function __construct si celle-ci est vide ?
2) Je ne vois pas où est effectué le test pour vérifier si la requête renvoie un résultat ou pas.
3) Pourquoi faire une classe alors que je n'utilise cette requête qu'une seule fois (pour me loguer à l'espace admin) ?
4) (mais pas en rapport avec toi), pourquoi dois-je créer un alias de "pseudo" avec la fonction COUNT pour pouvoir l'utiliser ?


---------------
Twitter
n°1657647
FlorentG
Posté le 13-12-2007 à 12:51:40  profilanswer
 

koskoz a écrit :

Plusieurs trucs que je comprend pas :
1) A quoi sert function __construct si celle-ci est vide ?


Effectivement à rien, mais par convention je le met quand-même
 

koskoz a écrit :

2) Je ne vois pas où est effectué le test pour vérifier si la requête renvoie un résultat ou pas.


Oublié :D
 

koskoz a écrit :

3) Pourquoi faire une classe alors que je n'utilise cette requête qu'une seule fois (pour me loguer à l'espace admin) ?


Parce que c'est très mal de mettre du SQL ailleurs au beau milieu de tout. Même si t'utilises la fonction qu'une seule fois, il vaut mieux la mettre dans une fonction à part. Si jamais tu ne veux plus de mysql, t'as juste à switcher la classe pour une autre, l'appel à la fonction reste la même. Le code aussi est plus clair.
 

koskoz a écrit :

4) (mais pas en rapport avec toi), pourquoi dois-je créer un alias de "pseudo" avec la fonction COUNT pour pouvoir l'utiliser ?


T'as pas besoin. Avec mysql_data_seek ou je-sais-plus-quoi, tu peux chercher le premier champ de la première ligne retournée (donc ne pas utiliser mysql_fetch_array)

n°1657651
Shinuza
This is unexecpected
Posté le 13-12-2007 à 12:53:48  profilanswer
 

J'ai fais un test sous IE, et quand tu fais .setAttribute('checked','checked') .checked reste à false [:bien]
 
Ca doit être le même truc ici


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1657654
ratibus
Posté le 13-12-2007 à 12:54:44  profilanswer
 

FlorentG a écrit :


T'as pas besoin. Avec mysql_data_seek ou je-sais-plus-quoi, tu peux chercher le premier champ de la première ligne retournée (donc ne pas utiliser mysql_fetch_array)


Tu fais un fetch_array et tu chopes le array[0] ça marche aussi :)

n°1657759
Profil sup​primé
Posté le 13-12-2007 à 14:52:02  answer
 

Le contenu de ce message a été effacé par son auteur

mood
Publicité
Posté le 13-12-2007 à 14:52:02  profilanswer
 

n°1657762
theredled
● REC
Posté le 13-12-2007 à 14:54:33  profilanswer
 

FlorentG a écrit :


T'as pas besoin. Avec mysql_data_seek ou je-sais-plus-quoi, tu peux chercher le premier champ de la première ligne retournée (donc ne pas utiliser mysql_fetch_array)


mysql_result($res,0)

 

Sinon, le mieux étant de te (koskoz) faire des propres fonctions pour les requetes, genre sql2array($sql) qui prendrais du SQL et renvoie un tableau, ou sql2value($sql) qui prend du sql et renvoie la première valeur etc,
- Ca t'évite d'écrire les 3 mêmes lignes à chaque requetes partout sur ton site.
- Tu peux faire un message d'erreur universel (genre 'Err SQL > '.$sql.' > '.mysql_error()) pour le déboggage
- Le jour ou tu veux passer de mysql_ à mysqli_ ou PDO ou je sais pas quoi, t'aura 5 pauvres lignes à modifier, même pour un site de 12000 pages.
- Et autres

 

Tu peux même mettre ces fonctions dans une classe pour les regrouper, à la florentG-styaïle


Message édité par theredled le 13-12-2007 à 15:01:42

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657768
FlorentG
Posté le 13-12-2007 à 15:08:43  profilanswer
 

Moi j'ai comme ça un objet Mysql_Query avec des méthodes pour retourner des types simples :

  • execute(), qui retourne un mysql_result normal (wrappé dans un iterator + arrayobjet)
  • executeSingle(), qui retourne un tableau (adapté lorsqu'on retourne juste une ligne
  • executeValue(), qui retourne juste une valeur (c'est ce qu'il nous faut dans notre cas avec le COUNT)

n°1657774
theredled
● REC
Posté le 13-12-2007 à 15:16:33  profilanswer
 

Moi j'ai Requete() (:o) pour retourner une ligne ou faire des UPDATE etc
req2array() me retourne un tab multi-dimensionnel
mysql_val() une valeur simple
req2arrayVals() un tableau de valeurs simples
req2arrayIds() un tableau indexé id => valeur
etc
 
Admirez la cohesion des nommages :o
Mais c'est mieux que rien et on s'y habitue merde :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657777
FlorentG
Posté le 13-12-2007 à 15:19:57  profilanswer
 

Moi j'ai même mes propres prepared statements. Au lieu d'avoir des ? pour les valeurs, j'ai typé. Exemple :

Code :
  1. SELECT * FROM @id WHERE `nom`=@string AND `id`=@int


Et après je fais comme ça :

Code :
  1. $this->mysql
  2.      ->query('SELECT * FROM @id WHERE `nom`=@string AND `id`=@int LIMIT 1')
  3.      ->executeSingle($this->tableName, 'zeNom', 1234);


Et ça me retourne la ligne sous forme de tableau associatif. Ca m'a énormément facilité le debugging d'avoir typé les paramètres.

n°1657781
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 13-12-2007 à 15:22:22  profilanswer
 

Et y a moyen d'avoir le source de vos merdes, les gars ? :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°1657782
FlorentG
Posté le 13-12-2007 à 15:22:51  profilanswer
 

Chez moi c'est closed-source :( (mais pas très compliqué à implémenter)

n°1657784
theredled
● REC
Posté le 13-12-2007 à 15:24:01  profilanswer
 

FlorentG a écrit :

Moi j'ai même mes propres prepared statements. Au lieu d'avoir des ? pour les valeurs, j'ai typé. Exemple :

Code :
  1. SELECT * FROM @id WHERE `nom`=@string AND `id`=@int


Et après je fais comme ça :

Code :
  1. $this->mysql
  2.      ->query('SELECT * FROM @id WHERE `nom`=@string AND `id`=@int LIMIT 1')
  3.      ->executeSingle($this->tableName, 'zeNom', 1234);


Et ça me retourne la ligne sous forme de tableau associatif. Ca m'a énormément facilité le debugging d'avoir typé les paramètres.


Et après tu peux plus utiliser les variables mysql :o
 
Moi c'est "SELECT maman FROM famille WHERE id=".intval($id), plus proche du peuple :o


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657788
Shinuza
This is unexecpected
Posté le 13-12-2007 à 15:27:38  profilanswer
 

Shinuza a écrit :

J'ai fais un test sous IE, et quand tu fais .setAttribute('checked','checked' ) .checked reste à false [:bien]
 
Ca doit être le même truc ici

J'ai jamais dis le contraire, je te fais juste remarquer que le setAttribute sous IE n'aura pas necessairement l'effet escompté sur l'attribut associé, de meme pour le rendu visuel.
 
Et accessoirement c'est le même problème d'inconsistence avec selected, sous IE selected vaudra true si tu fais un .setAttribute('selected','selected' );, mais la valeur pour selectionner visuellement l'option sous FF c'est defaultSelected.


---------------
Mains power can kill, and it will hurt the entire time you’re dying from it.
n°1657790
theredled
● REC
Posté le 13-12-2007 à 15:29:14  profilanswer
 

Taiche a écrit :

Et y a moyen d'avoir le source de vos merdes, les gars ? :o


Un petit teaser alors :o

Code :
  1. // Retourne la requete dans un tableau
  2. function req2array($sql, $showSql=false) {
  3.     if ($showSql) echo $sql;
  4.     $req = mysql_query($sql) or die ('Err SQL >'.(DEBUGGING ? $sql : '').' > '.mysql_error());
  5.     $tab = array();
  6.     while ($lg = mysql_fetch_array($req)) $tab[] = $lg;
  7.     return $tab;
  8. }


Voilà, impresionnant hein :D


Message édité par theredled le 13-12-2007 à 15:30:25

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657793
skeye
Posté le 13-12-2007 à 15:32:12  profilanswer
 

FlorentG a écrit :

Moi j'ai même mes propres prepared statements. Au lieu d'avoir des ? pour les valeurs, j'ai typé. Exemple :

Code :
  1. SELECT * FROM @id WHERE `nom`=@string AND `id`=@int


Et après je fais comme ça :

Code :
  1. $this->mysql
  2.      ->query('SELECT * FROM @id WHERE `nom`=@string AND `id`=@int LIMIT 1')
  3.      ->executeSingle($this->tableName, 'zeNom', 1234);


Et ça me retourne la ligne sous forme de tableau associatif. Ca m'a énormément facilité le debugging d'avoir typé les paramètres.


 
M'enfin avec mysql les paramètres sont pas nommés et bindés aux variables explicitement?[:pingouino]


---------------
Can't buy what I want because it's free -
n°1657796
FlorentG
Posté le 13-12-2007 à 15:39:18  profilanswer
 

theredled a écrit :

Et après tu peux plus utiliser les variables mysql :o


 

skeye a écrit :

M'enfin avec mysql les paramètres sont pas nommés et bindés aux variables explicitement?[:pingouino]


 
 
J'ai rien compris à vos deux posts [:dawa]

n°1657797
Dj YeLL
$question = $to_be || !$to_be;
Posté le 13-12-2007 à 15:39:50  profilanswer
 

Moi j'ai :

 
Code :
  1. $var = DB::getVar('SELECT var FROM maTable WHERE id = 5');
  2. echo $var;
  3.  
  4. $vars = DB::getRow('SELECT var1, var2 FROM maTable WHERE id = 5');
  5. echo $vars->var1;
  6. echo $vars->var2;
  7.  
  8. $results = DB::getCol('SELECT var FROM matable');
  9. foreach($results as $result) echo $result;
  10.  
  11. $results = DB::getResults('SELECT var1, var2 FROM matable');
  12. foreach($results as $result){
  13.    echo $result->var1;
  14.    echo $result->var2;
  15. }

Message cité 1 fois
Message édité par Dj YeLL le 13-12-2007 à 15:41:19

---------------
Gamertag: CoteBlack YeLL
n°1657798
theredled
● REC
Posté le 13-12-2007 à 15:41:25  profilanswer
 

FlorentG a écrit :

J'ai rien compris à vos deux posts [:dawa]


pour le mien : http://dev.mysql.com/doc/refman/5. [...] ables.html


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657799
theredled
● REC
Posté le 13-12-2007 à 15:43:06  profilanswer
 

Dj YeLL a écrit :

Moi j'ai :

 
Code :
  1. $var = DB::getVar('SELECT var FROM maTable WHERE id = 5');
  2. echo $var;
  3.  
  4. $vars = DB::getRow('SELECT var1, var2 FROM maTable WHERE id = 5');
  5. echo $vars->var1;
  6. echo $vars->var2;
  7.  
  8. $results = DB::getCol('SELECT var FROM matable');
  9. foreach($results as $result) echo $result;
  10.  
  11. $results = DB::getResults('SELECT var1, var2 FROM matable');
  12. foreach($results as $result){
  13.    echo $result->var1;
  14.    echo $result->var2;
  15. }



Voilà, moi ce sera ça pour mon prochain site :o (à part le result dans un objet, chépo)


Message édité par theredled le 13-12-2007 à 15:43:39

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657800
FlorentG
Posté le 13-12-2007 à 15:43:35  profilanswer
 


Ah tiens, je savais même pas que ça existait :D

n°1657801
ratibus
Posté le 13-12-2007 à 15:44:48  profilanswer
 

Moi je fais plus de SQL en direct, ORM powa :D

n°1657802
ratibus
Posté le 13-12-2007 à 15:45:06  profilanswer
 

FlorentG a écrit :


Ah tiens, je savais même pas que ça existait :D


Super pratique pourtant ;)

n°1657805
FlorentG
Posté le 13-12-2007 à 15:47:03  profilanswer
 

ratibus a écrit :

Super pratique pourtant ;)


Il faudrait quand-même un jour que je lise la doc de mysql pour découvrir les différentes features...

n°1657806
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 13-12-2007 à 15:47:26  profilanswer
 

ratibus a écrit :

Moi je fais plus de SQL en direct, ORM powa :D


Oui bin vala justement, y a quoi comme ORM bien pour PHP ? [:petrus75] J'en ai vu pas mal mais jamais testé et je me sens pas taper sur un qui serait pas terrible.
Je précise que je cherche juste un bon ORM, pas tout un framework (comme Symfony par exemple) dont je n'aurais pas l'utilité de 90 % des fitioures [:romf]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°1657810
omega2
Posté le 13-12-2007 à 15:54:52  profilanswer
 

Et moi, je me suis pas fait chier, j'utilise le bordel de zend. D'ailleurs, il a un gros défaut, il te prévient pas si la requette plante. (super pas pratique pour débugguer de ne pas savoir si la requête à pas marché ou si elle a juste rien trouvé)

n°1657813
skeye
Posté le 13-12-2007 à 16:04:37  profilanswer
 

FlorentG a écrit :

J'ai rien compris à vos deux posts [:dawa]


version oracle/oci8 de ton truc:
 

Code :
  1. $query = "SELECT * FROM MATABLE WHERE nom = :nom AND id=:id";
  2.  
  3. $statement = oci_parse($query);
  4.  
  5. oci_bind_by_name($statement, 'nom', 'zeNom', $nom_maxlength, SQLT_CHR);
  6. oci_bind_by_name($statement, 'id', 1234, $id_maxlength, SQLT_INT);
  7.  
  8. oci_execute($statement);


---------------
Can't buy what I want because it's free -
n°1657814
FlorentG
Posté le 13-12-2007 à 16:07:36  profilanswer
 

skeye a écrit :

version oracle/oci8 de ton truc:


Ah ok oui. Mais justement, c'est ce genre d'API qui me saoûle, avec les fonctions de bind.

n°1657815
skeye
Posté le 13-12-2007 à 16:09:51  profilanswer
 

FlorentG a écrit :


Ah ok oui. Mais justement, c'est ce genre d'API qui me saoûle, avec les fonctions de bind.


[:pingouino]
Tu refais la même chose en te basant sur l'ordre des paramètres. En moins bien.[:roane]


---------------
Can't buy what I want because it's free -
n°1657822
FlorentG
Posté le 13-12-2007 à 16:19:31  profilanswer
 

skeye a écrit :


[:pingouino]
Tu refais la même chose en te basant sur l'ordre des paramètres. En moins bien.[:roane]


Ca suffit pour mes besoins. J'ai pas une ultra-longue liste de binds... Et je vois que tu mets les maxlength, ça aussi, j'ai déjà les fonctions de validations ailleurs, j'vais pas encore les remettre là. J'ai juste les 3 types de bases qui servent à gérer si on rajoute des quotes ou pas autour de la valeur :

  • @id : identifiant de table. Comme y'a aucune fonction de protection qui existe (mres ne sert à rien), je limite à une regexp style [a-z0-9_].
  • @string : mres + quotes
  • @int : ctype_digit, mais pas de quotes

n°1657827
masklinn
í dag viðrar vel til loftárása
Posté le 13-12-2007 à 16:25:59  profilanswer
 

skeye a écrit :


[:pingouino]
Tu refais la même chose en te basant sur l'ordre des paramètres. En moins bien.[:roane]


THIS IS FLORANGEEEEE
 
Sa passion, réinventer la roue :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1657828
FlorentG
Posté le 13-12-2007 à 16:27:15  profilanswer
 

masklinn a écrit :


THIS IS FLORANGEEEEE
 
Sa passion, réinventer la roue :o


Nan :o c'est parce que j'ai juste l'extension mysql sur le serveur, donc impossibilité d'accéder aux fonctions avancées de mysql 5 :( Donc je suis forcé de tout réinventer, sinon j'aurais utilisé les choses existantes...

n°1657831
skeye
Posté le 13-12-2007 à 16:33:39  profilanswer
 

[:el g]


---------------
Can't buy what I want because it's free -
n°1657846
bixibu
Ca ... c'est fait!
Posté le 13-12-2007 à 16:56:00  profilanswer
 

question JS:
 
comment passer un nom de fonction en parametre d'une autre et l'executer ?
 
blabla : function (str_fonction){
     eval("this."+str_fonction+"();" );
}
 
ca me semble mega dangereux,faillé, et anti-performant mais comment faire sinon ?
 
merci

n°1657847
theredled
● REC
Posté le 13-12-2007 à 16:56:23  profilanswer
 

Pensée du jour : Quand le chef décide, malgré mes recommandations, de passer en phase de test 2 jours avant la mise en ligne d'un site ça fait mal [:dawa]

Message cité 1 fois
Message édité par theredled le 13-12-2007 à 16:57:44

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657848
theredled
● REC
Posté le 13-12-2007 à 16:58:30  profilanswer
 

bixibu a écrit :

question JS:
 
comment passer un nom de fonction en parametre d'une autre et l'executer ?
 
blabla : function (str_fonction){
     eval("this."+str_fonction+"();" );
}
 
ca me semble mega dangereux,faillé, et anti-performant mais comment faire sinon ?
 
merci


Passer la fonction elle-même ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1657850
skeye
Posté le 13-12-2007 à 17:01:09  profilanswer
 

theredled a écrit :

Pensée du jour : Quand le chef décide, malgré mes recommandations, de passer en phase de test 2 jours avant la mise en ligne d'un site ça fait mal [:dawa]


pourquoi, tu voulais passer direct en prod?[:petrus dei]


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  422  423  424  ..  1454  1455  1456  1457  1458  1459

Aller à :
Ajouter une réponse
 

Sujets relatifs
blabla 3blabla 2
PUTAIN HARKO TU AS FERM2 BLABLA ![Beaucoup de blabla pour rien : post à effacer] Compiler .bat
variable1="blabla + variable2 +blala : c'est possible ??[PHP & regex] "blabla blabla file.ext?point=444 blabla" Recupérer 444
mail("celine@hotmail.com"," sujet","blabla"); pose une err ! Help[MySQL] WHERE 'blabla' compris dans le champ truc
[blabla@olympe] Le topic du modo, dieu de la fibre et du monde[PHP / BlaBla - limite]
Plus de sujets relatifs à : blabla@web


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)