Ses derniers messages sur les forums
Quand tu écris un message, y'a un lien "bb-code", clic dessus (c'est écrit dans les conditions d'utilisation du forum en plus...).
LupusMic, cela m'intéresse : quand tu as une clé étrangère, tu peux te passer du ON ou du USING ? Comment MySQL comprend sur quel champ tu veux faire la jointure ? (rien ne m'oblige à faire une jointure sur une clé).
Et dans l'URL, tu ne vois pas quel fichier est chargé ?
Ben si $_GET['categorie'] vaut All, tu exécutes sans condition sur la catégorie, c'est tout.
Mais ta question te trahis. En effet, on voit bien que tu prends ce que tu reçois dans $_GET['categorie'], tu le colles à ta requête SQL sans vérifier ce que tu reçois dans cette variable (si tu vérifiais tes paramètres, tu ne poserais même pas cette question).
Et en plus, tu n'escapes pas ta requête SQL : en gros, tu joues avec le feu la.
Donc mes conseils :
- avant de forger ta requete, clean ton paramètre $_GET['categorie'] : regarde ce que tu y recois (All ? ou bien une catégorie valide ? etc.)
- si tu recois 'All', alors crée une requete sans condition sur l'attribut categorie. A priori, All veut dire "aucune catégorie spécifiée (ex. if ($test == 'all') $sql = 'requete sans condition sur categorie'; else $sql = 'requete avec condition sur categorie';). Mais bon, après tout depend de ta base, et tu auras peut etre un OR massif à faire comme tu comptais le faire, mais la, tu es le seul à pouvoir le savoir.
- escape ta requete, des fonctions sont la pour ca, comme mysql_escape_string, et entoure ton test SQL avec des quotes (sinon, MySQL croit recevoir un INT et non une chaine de caractère. ex : WHERE blu = 'polom' << MySQL doit recevoir ca et non WHERE blu = polom)
Dans le code source du site.
Le mieux serait d'afficher cette requête à l'écran (c'est à dire telle qu'elle est envoyée à MySQL, après génération éventuelle en PHP).
Quand ton SQL ERROR s'affiche à l'écran, tu ne vois aucune indication concernant le fichier ou se trouve l'erreur ? Voir la ligne du fichier ?
Oui, ok, mais comme je te dis, c'est la requête qui est exécuté qui est le plus important : c'est elle qui contient le bug, c'est pas la base en elle même. Sans cette requête, on ne pourra pas t'aider.
Non justement, le problème se pose sur une requete où une opération est faite sur un certain 'is_dynamic', mais ce 'is_dynamic' n'existe justement pas dans la table en question (table ou s'effectue la requête).
Le message d'erreur le dit : "champ is_dynamic inconnu au bataillon".
Et comment sais tu que la requête porte sur cette table ? Peux tu nous donner cette requête ?
Faudrait voir entièrement la requête pour se prononcer. Mais en gros, la requête SQL utilise un champ qui n'existe pas en base de données.
Alors certes le champ id_dynamic existe peu être sur une table, mais ce n'est pas sur cette table que porte cette requête (sinon, tu n'aurais pas l'erreur).
Ben si tu instancies un objet dans ta classe, cela fonctionne.
T'as du merder un truc.
Exemple :
<?php
class pom {
var $toto = 3;
}
class blu {
function polom() {
$obj = new pom();
echo $obj->toto;
}
}
$pouf = new blu();
$pouf->polom();
?>
Fonctionne sans soucis.
En gros, tu ne dois pas instancier $db dans le haut de ta page car il ne sera pas accessible dans ta classe.