Bonjour,
Sous joomla 4, j’ai une erreur 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3
Cela me surprend car, l’appel SQL passe par le même script mais, je ne parviens pas à trouver mon erreur.
Dans mon composant (com_aaa) :
. à partir d’une page A (com_aaa/site/tmpl/personnes/default.php) listant des enregistrements (champs : id, nom, etc …) inclus dans une table de la BDD, j’ouvre via une balise FORM présente pour chaque enregistrement
. une autre page B (com_aaa/site/tmpl/personne/default.php) reprenant les champs de l’enregistrement cliqué + un lien ONCLICK permetttant ouvrir sur cette page une pop-up C (com_aaa/site/tmpl/personne/default4.php) et présentant d’autres champs issus de la même table dont un champ est cliquable via une balise HREF
. Théoriquement, cette balise HREF ouvre à nouveau la page B pour une utre (com_aaa/site/tmpl/personne/default.php) et renvoie le champ et sa valeur du champ cliqué pour affichage des champs s’y rapportant. Cela ne fonctionne pas avec le message mentionné en entête.
Je suis surpris puisque les opérations passage de la page A à B fonctionne parfaitement, de même que l’ouverture de la pop-up C.
Par contre, le rappel de la page B ne s’effectue pas en cliquant sur le lien HREF de la page C.
Ci-dessous, les scripts
Page B
Page C
Page C bis
Page C ter
Merci de votre aide
Très cordialement
Philippe
Sous joomla 4, j’ai une erreur 1064 : You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 3
Cela me surprend car, l’appel SQL passe par le même script mais, je ne parviens pas à trouver mon erreur.
Dans mon composant (com_aaa) :
. à partir d’une page A (com_aaa/site/tmpl/personnes/default.php) listant des enregistrements (champs : id, nom, etc …) inclus dans une table de la BDD, j’ouvre via une balise FORM présente pour chaque enregistrement
. une autre page B (com_aaa/site/tmpl/personne/default.php) reprenant les champs de l’enregistrement cliqué + un lien ONCLICK permetttant ouvrir sur cette page une pop-up C (com_aaa/site/tmpl/personne/default4.php) et présentant d’autres champs issus de la même table dont un champ est cliquable via une balise HREF
. Théoriquement, cette balise HREF ouvre à nouveau la page B pour une utre (com_aaa/site/tmpl/personne/default.php) et renvoie le champ et sa valeur du champ cliqué pour affichage des champs s’y rapportant. Cela ne fonctionne pas avec le message mentionné en entête.
Je suis surpris puisque les opérations passage de la page A à B fonctionne parfaitement, de même que l’ouverture de la pop-up C.
Par contre, le rappel de la page B ne s’effectue pas en cliquant sur le lien HREF de la page C.
Ci-dessous, les scripts
Page B
Code HTML:
<?php \defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; HTMLHelper::_('jquery.framework'); if(!isset($_GET['operator'])) {$idperso = htmlspecialchars ($_POST['id'], ENT_QUOTES,'UTF-8');} else {$idperso = $_GET['operator'];}; ?> <div class="accueil19"><?php echo Text::_('COM_XXX_PERSONNE'); ?></div> <form action="<?php echo Route::_('index.php?option=com_xxx'); ?>" method="post" name="adminForm" id="adminForm"> <?php echo LayoutHelper::render('joomla.personnes.searchtools2.default', array('view' => $this)); ?> <?php // connection. $db = JFactory::getDbo(); // objet $query = $db->getQuery(true); // Sélection enregistrements // Ordre $query->select($db->quoteName(array('id', 'name', 'prename', 'idpere', 'idmere'))); $query->from($db->quoteName('#__xxx_personnes')); $query->where($db->quoteName('id') . ' LIKE ' . $idperso); // Reset the query using our newly populated query object. $db->setQuery($query); $perso = $db->loadRow();
Page C
Code HTML:
<?php \defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; HTMLHelper::_('jquery.framework'); ?> <div class="table-responsive" style="overflow-x: hidden"> <table class="table table-striped"> <tbody> <tr> </div><td/> <td class="accueil30b"> <?php require 'pere1.php'; ?> </td> </tr> </div> </tbody> </table> </div>
Page C bis
Code HTML:
<?php \defined('_JEXEC') or die; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Language\Text; use Joomla\CMS\Layout\LayoutHelper; use Joomla\CMS\Router\Route; HTMLHelper::_('jquery.framework'); ?> <?php $idpere1 = $perso['21']; $idpere1 = (float)$idpere1; if ($idpere1 >= 1) { // Get a db connection. $db = JFactory::getDbo(); // Create a new query object. $query = $db->getQuery(true); // Select all records from the user profile table where key begins with "custom.". // Order it by the ordering field. $query->select($db->quoteName(array('id', 'name', 'prename'))); $query->from($db->quoteName('#__xxx_personnes')); $query->where($db->quoteName('id') . ' LIKE ' . $idpere1); // Reset the query using our newly populated query object. $db->setQuery($query); $pere = $db->loadRow(); echo $pere['2'] ; echo ' </div><div class="accueil20b1">'; echo $pere['1']; echo '</div>'; require 'defaultpostbis.php'; echo '</div>'; }; ?>
Page C ter
Code HTML:
a href="index.php?option=com_xxx&view=personne&Itemid=343&lang=fr?operator=<?php echo $pere['0']; ?>">Afficher profil</a>
Très cordialement
Philippe