tu peux corriger la sortie du echo deja :
global $xoopsDB;
$sql = "SELECT hometext, bodytext FROM ".$xoopsDB->prefix('stories')." where storyid='23'";
$result=$xoopsDB->query($sql);
while (list($hometext, $bodytext) = $xoopsDB->fetchRow($result)) {
echo ''.$hometext.''.$bodytext.'<br />';
}
Tu peux effectivement coller ton 23 dans une variable.
a priori si je me souviens bien de la table tu attrapes par l'id donc ta requete est optimisé tu peux pas faire plus rapide et cela te ramene une seule ligne de toutes façons donc tu peux virer la boucle while et faire juste un test
global $xoopsDB;
$sql = "SELECT hometext, bodytext FROM ".$xoopsDB->prefix('stories')." where storyid='23'";
$result=$xoopsDB->query($sql);
if (list($hometext, $bodytext) = $xoopsDB->fetchRow($result)) {
echo ''.$hometext.''.$bodytext.'<br />';
}
En optimisant un peu plus on arrive a cela aussi
global $xoopsDB;
$sql = 'SELECT hometext, bodytext FROM '.$xoopsDB->prefix('stories').' where storyid= 23 ';
$result=$xoopsDB->query($sql);
if (list($hometext, $bodytext) = $xoopsDB->fetchRow($result)) {
echo ''.$hometext.''.$bodytext.'<br />';
}
storyid c'est du numerique ca sert a rien de lui passer '23' (une chaine de caractere). Tu obliges alors MySQL a faire un cast de la chaine de caractere vers un numerique (il perd un petit peu de temps)
Et avec une variable ca donne ca :
global $xoopsDB;
$storyid = 23;
$sql = 'SELECT hometext, bodytext FROM '.$xoopsDB->prefix('stories').' where storyid= '. $storyid;
$result=$xoopsDB->query($sql);
if (list($hometext, $bodytext) = $xoopsDB->fetchRow($result)) {
echo ''.$hometext.''.$bodytext.'<br />';
}
la variable $storyid peut etre initialise par un parametre d'une fonction ou autre, la elle sert pas a grand chose comme cela mais par contre sous forme de fonction comme au dessous ca peut etre utile :
function affiche($storyid ){
global $xoopsDB;
$sql = 'SELECT hometext, bodytext FROM '.$xoopsDB->prefix('stories').' where storyid= '. $storyid;
$result=$xoopsDB->query($sql);
if (list($hometext, $bodytext) = $xoopsDB->fetchRow($result)) {
echo ''.$hometext.''.$bodytext.'<br />';
}
}
Apres comme on n'a pas vraiment d'info sur ce que tu veux faire, si tu veux afficher dans un template ou autre etc... on peut pas dire grand chose sur un code de 5 lignes