Création de menu
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Je souhaite faire un menu mais j'ai toujours pas compris le fonctionnement des requêtes je pense, voici la requête que j'essai de faire
Code SQL :
$result = $Sql->query_while("SELECT c.equipefr FROM " . DB_TABLE_SERIES . " AS c ORDER BY DESC" . $Sql->LIMIT(0), __LINE__, __FILE__);
(dans la table series, il y a la colonne equipefr, donc j'ai pris l'exemple du module lastcoms, je sais pas pas pourquoi dans la requête il y a c.equipefr, c = colonne ? Et donc ça ne fonctionne pas
Fatale : invalid query. (ERRNO 1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC LIMIT 0 OFFSET 0' at line 3query: SELECT c.equipefr
FROM DB_TABLE_SERIES AS c
ORDER BY DESC LIMIT 0 OFFSET 0
Merci pour votre aide une nouvelle fois.
Édité par Myster Le 06/11/2014 à 12h18
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
c est l'alias de ta table DB_TABLE_SERIES. c.equipefr veut donc dire "la colonne equipefr dans la table DB_TABLE_SERIES".
Le problème ici est assez explicite, tu cherche à mettre une limite au résultat, mais tu mets 0 donc même si c'était syntaxiquement correct, il ne pourrait te sortir aucun résultat.
Je te conseilles d'utiliser a syntaxe suivante pour tes requêtes (plus propre) :
Code PHP :
$result = PersistenceContext::get_querier()->select('SELECT equipefr FROM ' . DB_TABLE_SERIES . ' ORDER BY DESC LIMIT :limit', array( 'limit' => 15 //Mettre ici la limite souhaitée ); while ($row = $result->fetch()) { // On parcourt ici chaque ligne avec la variable $row['equipefr'] } $result->dispose();
Informations complémentaires dans la documentation si besoin.
julienseth78
ReidLos Membre non connecté
- Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
- Equipe Développement
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
Merci pour votre aide mais j'ai une page blanche '
Code PHP :
<?php /*################################################## * lastcoms.php * ------------------- * begin : July 26, 2009 * copyright : (C) 2009 ROGUELON Geoffrey * email : liaght@gmail.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ function menu_series_series($position, $block) { global $Sql; $tpl = new FileTemplate('menus/series/series.tpl'); MenuService::assign_positions_conditions($tpl, $block); $result = PersistenceContext::get_querier()->select('SELECT equipefr FROM ' . DB_TABLE_SERIES . ' ORDER BY DESC LIMIT :limit', array( 'limit' => 15 //Mettre ici la limite souhaitée ); while ($row = $result->fetch()) { // On parcourt ici chaque ligne avec la variable $row['equipefr'] } $result->dispose(); while ($row = $Sql->fetch_assoc($result)) { $contents = strip_tags(FormatingHelper::second_parse($row['message'])); $tpl->assign_block_vars('series', array( 'EQUIPEFR' => $row['equipefr'] )); } $tpl->put_all(array( 'L_SERIES' => 'Les épisodes', )); return $tpl->render(); } ?>
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
'limit' => 15 //Mettre ici la limite souhaitée
); <====
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Code PHP :
function menu_series_series($position, $block) { $tpl = new FileTemplate('menus/series/series.tpl'); MenuService::assign_positions_conditions($tpl, $block); $result = PersistenceContext::get_querier()->select('SELECT equipefr FROM ' . DB_TABLE_SERIES . ' ORDER BY DESC LIMIT :limit', array( 'limit' => 15 //Mettre ici la limite souhaitée )); while ($row = $result->fetch()) { $tpl->assign_block_vars('series', array( 'EQUIPEFR' => $row['equipefr'] )); } $result->dispose(); $tpl->put_all(array( 'L_SERIES' => 'Les épisodes', )); return $tpl->render(); }
janus57 Membre non connecté
- Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
- Equipe Assistance
test ton code ici : http://fr.piliapp.com/php-syntax-check/
tu verra ceci :
Citation :Parse error: syntax error, unexpected ';' in CODE on line 40
Errors parsing CODE
et voici le code corrigé :
Code PHP :
<?php /*################################################## * lastcoms.php * ------------------- * begin : July 26, 2009 * copyright : (C) 2009 ROGUELON Geoffrey * email : liaght@gmail.com * * ################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ###################################################*/ function menu_series_series($position, $block) { global $Sql; $tpl = new FileTemplate('menus/series/series.tpl'); MenuService::assign_positions_conditions($tpl, $block); $result = PersistenceContext::get_querier()->select('SELECT equipefr FROM ' . DB_TABLE_SERIES . ' ORDER BY DESC LIMIT :limit', array( 'limit' => 15 //Mettre ici la limite souhaitée )); while ($row = $result->fetch()) { // On parcourt ici chaque ligne avec la variable $row['equipefr'] } $result->dispose(); while ($row = $Sql->fetch_assoc($result)) { $contents = strip_tags(FormatingHelper::second_parse($row['message'])); $tpl->assign_block_vars('series', array( 'EQUIPEFR' => $row['equipefr'] )); } $tpl->put_all(array( 'L_SERIES' => 'Les épisodes', )); return $tpl->render(); } ?>
Car tu ferme le array de la requête SQL mais pas la requête SQL en elle même
Cordialement, janus57
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
toujours une erreur:
Fatale : invalid query. (ERRNO 1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC
LIMIT 15' at line 3query: SELECT equipefr
FROM DB_TABLE_SERIES
ORDER BY DESC
LIMIT 15
MrToine Membre non connecté
Booster Bazooka
- Booster Bazooka
- Voir le profil du membre MrToine
- Inscrit le : 26/10/2014
- Groupes :
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
janus57 Membre non connecté
- Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
- Equipe Assistance
Myster :
Hello, en tout cas la table phpboost_series existe
Bonjour,
et la constante existe dans le fichier de config principale de PHPBoost (à savoir dans /kernel/db/tables.php) ?
à savoir que par défaut y a que ceci :
Code PHP :
<?php define('DB_TABLE_COMMENTS',PREFIX.'comments'); define('DB_TABLE_COMMENTS_TOPIC',PREFIX.'comments_topic'); define('DB_TABLE_NOTE',PREFIX.'note'); define('DB_TABLE_AVERAGE_NOTES',PREFIX.'average_notes'); define('DB_TABLE_VISIT_COUNTER',PREFIX.'visit_counter'); define('DB_TABLE_CONFIGS',PREFIX.'configs'); define('DB_TABLE_EVENTS',PREFIX.'events'); define('DB_TABLE_GROUP',PREFIX.'group'); define('DB_TABLE_KEYWORDS',PREFIX.'keywords'); define('DB_TABLE_KEYWORDS_RELATIONS',PREFIX.'keywords_relations'); define('DB_TABLE_MEMBER',PREFIX.'member'); define('DB_TABLE_MEMBER_EXTENDED_FIELDS',PREFIX.'member_extended_fields'); define('DB_TABLE_MEMBER_EXTENDED_FIELDS_LIST',PREFIX.'member_extended_fields_list'); define('DB_TABLE_MENUS',PREFIX.'menus'); define('DB_TABLE_PM_MSG',PREFIX.'pm_msg'); define('DB_TABLE_PM_TOPIC',PREFIX.'pm_topic'); define('DB_TABLE_SESSIONS',PREFIX.'sessions'); define('DB_TABLE_SMILEYS',PREFIX.'smileys'); define('DB_TABLE_UPLOAD',PREFIX.'upload'); define('DB_TABLE_UPLOAD_CAT',PREFIX.'upload_cat'); ?>
Cordialement, janus57
Édité par janus57 Le 06/11/2014 à 20h31
Myster Membre non connecté
Booster Missile
- Booster Missile
- Voir le profil du membre Myster
- Inscrit le : 04/10/2010
- Groupes :
janus57 Membre non connecté
- Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
- Equipe Assistance
Myster :
Je pense pas mais même en remplaçant la "Constante" en brut, (phpboost_series, voir même series), j'ai toujours cette même erreur
Bonjour,
que donne le code et l'erreur en "brut" ?
Cordialement, janus57
ReidLos Membre non connecté
- Modérateur
- Voir le profil du membre ReidLos
- Inscrit le : 27/02/2009
- Site internet
- Groupes :
- Equipe Développement
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie