J’ai actuellement un petit problème avec yii, j’aimerais effectuer un filtrage de mes articles. Tout mes articles sont affichés sur index.php?r=films. J’ai voulu rajouter un “filtrage” des articles en faisant un truc du genre index.php?r=films&realisateur=blabla.
je te conseillerai d’activer les logs afin de pouvoir vérifier quelle est la requête SQL générée par Yii. Pour cela il faut modifier la configuration de la sorte :
Ainsi tu pourras vérifier que la requête SQL est bien celle que tu souhaites.
@shizo971 : la modification que tu proposes va créer une requête comportant une condition ‘=’ alors que la méthode addSearchCondition du CActiveRecord rajoute un condition ‘LIKE’.
Encore une fois raoul tu as été de très bon conseille, merci beaucoup !
Le log m’as pas mal aidé. Enfaite l’erreur venais des caractères, j’avais juste à faire :
$criteria->addSearchCondition('Realisateurs',$_GET['realisateur']) ; (il fallait que j’enlève le utf8_decode() & base64_decode(); qui gainait l’encodage des caractères.
Je te remercie
Merci shizo971 pour ta methode, je m’en servirait plus tard dans le script.
EDIT : Je vois que a chaque chargement de page j’ai des requetes sql du type ::
Querying SQL: SHOW COLUMNS FROM `Films`
Ou
Querying SQL: SHOW CREATE TABLE `Films`
Existe-il un moyen de “mettre en cache” ces requêtes, pour éviter qu’elle soit exécuter à chaque fois. Je sais que sur le framework jelix, ils mettent ça dans un fichier .xml
Concernant le cache, tu peux effectivement utiliser le cache de Yii avec des queries SQL et ainsi, ne pas solliciter te BDD à chaque requête. Je ne l’ai pas encore utilisé, mais ça à l’air intéressant. Pour tout savoir sur le sujet je te conseille un petit tour sur la documentation…
Ce n’est pas vraiment ce que je cherche. Car la je met en cache la requete sql moi je veux juste éviter de faire un “SHOW table” a chaque requête. Je sais que pour palier à ce problème le framework jelix utilise un fichier xml pour stocker la structure de la table.
ah ok … j’avais pas bien compris… regardes du côté du composant CDbConnection et de ses paramètres d’initialisation. Tu trouveras par exemple schemaCachingDuration qui fera peut-être l’affaire.