Bon, il y avait de TRES nombreuses erreurs.
La plus flagrante étant "if($session = true)". Avec un seul égal, ça ne peut pas fonctionner car c'est une affectation et non une comparaison.
Ensuite :
1/ affectes des variables locales et non des propriétés de classes inexistante ($requete et non $this->requete, cette dernière n'étant pas déclarée par un "var" dans la classe.
2/ Ton constructeur de classe ne servait à rien
3/ Je t'invite à découvrir les joies de la fonction implode et array_keys
4/ oublies "while(list=each)" et goûtes à la simplicité de "foreach"
5/ Ta méthode "insertion" avait des paramètres inutilisés ?!? ($session et $cookie)
6/ Pourquoi retourner "insertok" alors que ce sera TOUJOURS le cas sauf quand ça plante, mais il y a un "die"
7/ Oublies le "SELECT *"
8/ Pour un SELECT, c'est mysql_num_rows et non mysql_affected_rows
9/ Utilises mysql_fetch_assoc qui retourne directement un tableau associatif (ça fait sauter de nombreuses lignes de code)
10/ Utilises un entier plutôt que des paramètres booléens
11/ Evites de mélanger anglais et français ($requete et $result)
12/ Ton approche objet est à revoir. Tu ne sembles pas comprendre à quoi ça sert vraiment. Inutiles de faire des classes si c'est pour faire ce genre de chose.
Voilà, c'est déjà pas mal.
En prime, voici ton code revu (et encore je ne trouve pas ça très objet!):
"code dans le wall"
Pour expliquer le point N°10, regardes ceci :
<?php
$objet->recherche_entree( $champs, $condition, true, false );
?>
En lisant ce code sans regarder la signature de la méthode on ne sait pas à quoi correspond "true, false" alors que ceci :
<?php
$objet->recherche_entree( $champs, $condition, ENREGISTREMENT_SESSION );
?>
On sait que ça enregistre en session et
<?php
$objet->recherche_entree( $champs, $condition, ENREGISTREMENT_SESSION + ENREGISTREMENT_COOKIE);
?>
Ca fait les deux.
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines