totopsy a écrit :
Et bien je voit que tu as pas mal avancé, et c'est très bien.
oublie mysqli Smiley cligne Fait tout tes tests avec les fonctions mySQL qui fonctionnent, et on s'occuperas d'utiliser PDO ou MySQLi plus tard. Cela de changeras que peu de choses.
Pense à bien découper ton code en fonctions. Je pense par la, à, une fonction qui te retourne le tableau de résultats. Comme cela, tu n'aura que la fonction de fetch SQL à remplacer lors du passage à PDO/mysqli.
Il faut que ton code soit générique, et que l'on comprenne bien ce que tu fais à chaque étape. Et ses étapes peuvent être délimitées par des fonctions.
Pour le moment, repart sur ton mysql, fini le fetch des données, et prépare les à l'envoi. Après, tu passeras sur le coté REST afin de récupérer tes résultats, et les traiter.
Pour les clients de type wordpress, c'est vrai que cela peut poser problème, mais si vraiment tu le veux, tu développes un petit module WP, comme cela, tu montes en compétence! En attendant, tu garde ton iFrame pour ce type de cas.
De plus, évite les outils de conversion. Si tu ne comprends pas ce que tu fais, ou comment cela fonctionne, c'est une très mauvaise pratique, et tu n'apprends rien.
HS : As-tu un / des sites à fort traffic afin de regarder le % d'adblock sur le Web ?
Merci pour les encouragements
J'avoue que l'outil de conversion j'adhère moyennement, mais j'étais vraiment à court d'idée et ne savez pas s'il fallait s'y prendre en amont ou non, mais tu m'as répondu en confirmant qu'on peut voir ça plus tard au pire..
J'ai passé quelques heures hier soir à tenter d'afficher une des valeurs récupérées sur la page client. Avec des json_decode, des jquery json.get en veut tu en voilà
. Sans succès malheureusement. Je pouvais afficher mon tableau sans problème dans la console, ou en faisant un echo sur un file_get_contents dans le body. Mais pas moyen de mettre en forme tout ça..
Je note autre chose.. Avec la version classique mysql.
Je récupère un json qui a cette forme:
array(22) { [0]=> string(1) "1" ["id_category_comment"]=> ....
avec la version mysqli au code peut-être un peu bancal généré, je récupéré un json plutot comme :
([{"0":"1","id_category_comment":"1","1":"151....
Mais tu as raison, je vais déjà me concentrer sur mes requêtes.
Je vais commencer par tenter de récupérer les données pour la création du formulaire de recherche. .
Le but du formulaire étant de récupérer les catégories présente sur le site et de permettre à l'utilisateur d'en change facilement.
Ces catégories sont gérées par 2 tables.
Dans l'une je récupère les détails : ID, URLREWRITE, NOM
Dans l'autre je récupère 'id_parent', afin de savoir quelle catégorie est parente de l'autre.. Ce qui devrait me permettre de les trier dans un menu déroulant.
(dans l'iframe, j'avais fait un menu "chained" à l'aide d'un javascript, c'est à dire que l'utilisateur choisissait la "marque", puis le menu déroulant "modèle" s'activait, puis un menu "sous catégorie"... Sauf que c'était tout en dur sans connexion à une bdd, plus simple à mettre en place, mais à long terme beaucoup plus de maintenance... )
Comment vais-je m'en sortir avec ça ^^...
Je vais commencer par faire une fonction getCategories
function getCategories(){
$sql = mysql_query("SELECT * FROM table1, table2");
$categories = array();
while($category = mysql_fetch_array($sql)){
$categories[] = $category;
}
$categories = json_encode($categories);
echo $_GET['jsoncallback'].'('.$categories.')';
}
J'ai donc mis les deux tables dans la requete, mais c'est peut-être une erreur . Pour le moment la requete me renvoie un truc plutot enorme.. Sachant que j'ai 138 catégories et que les deux tables confondues j'ai 18 colonnes. J'ai bien sûr un identifiant commun entre ces deux tables pour faire une liaison.
D'après l'onglet Réseau HTML de firebug, la requete fait 9.9Mo :o.
Un peu beaucoup non ?
Je dois pouvoir me passer de pas mal de colonne inutiles..
Je tente de cibler un peu plus ma requête (merci
http://sqlpro.developpez.com/cours/sqlaz/jointures/)
function getCategories(){
$sql = mysql_query("SELECT name, link_rewrite, id_parent FROM table1, table2 WHERE table1.id_category = table2.id_category");
$categories = array();
while($category = mysql_fetch_array($sql)){
$categories[] = $category;
}
$categories = json_encode($categories);
echo $_GET['jsoncallback'].'('.$categories.')';
}
Voilà qui est mieux... 12.6ko
Mais comment traiter tout ça maintenant :o.. Sachant que dans les objets de ma console, je peux difficilement distinguer les éléments à première vue...
Pour chaque objet j'ai 3 lignes, qui je suppose correspondent (par ordre de la requete?) à name, link_rewrite, id_parent. Du coup je n'ai pas de id_category dans cette histoire... Et si je le met dans le SELECT de ma requete je n'ai plus aucun résutat..
De plus dans ces objets à 3 lignes, j'ai parfois la première ligne ou c'est écrit "NULL". Pourtant aucun champs "name" n'est vide dans la bdd
Voilà où j'en suis