PHP
いくつかのモジュールをソフトウェアに開発するために学習しDolibarr
ています。クエリ結果をループして、配列の各行を表示する方法を知りたいです。
これは私のスクリプトです:
/*
* View
*/
$query = "SELECT u.lastname as nom, u.firstname as prenom, u.datelastlogin as lastlogin";
$query.= " FROM ".MAIN_DB_PREFIX."user as u";
$query.= " ORDER BY lastlogin DESC LIMIT 2";
$resql = $db ->query($query);
$num = $db->fetch_row($resql);
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Affichage des 2 dernières connexions").'</th></tr>';
if (! empty($conf->user->enabled))
{
$LastLogin = '<tr class="oddeven">';
$LastLogin.= '<td><a href="index.php">'.$langs->trans("Utilisateur").'</a></td><td align="right">'.$num[0]." ".$num[1]." ".$num[2].'</td>';
$LastLogin.= "</tr>";
}
print $LastLogin;
print '</table>';
これまで、クエリから最初の行のみを返しました。PHP でプログラミングしたことがないので、クエリの各行を配列に表示する方法を知りたいです。
?に変更fetch_row
する必要があります。fetch_array
または、配列を 3 つの列 (列名、列 firstname、列 datelastlogin) に分割することをお勧めします。
このようなもの :
どうすればそれができるのかよくわかりません。
ご協力ありがとうございました
編集 :
スクリプトを編集しました:
$query = "SELECT u.lastname as nom, u.firstname as prenom, u.datelastlogin as lastlogin";
$query.= " FROM ".MAIN_DB_PREFIX."user as u";
$query.= " ORDER BY lastlogin DESC LIMIT 2";
$resql = $db ->query($query);
//$num = $db->fetch_array($resql);
while($num = $resql->fetch_assoc())
{
$nums[] = $num;
}
print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><th colspan="2">'.$langs->trans("Dernières connexions").'</th></tr>';
if (! empty($conf->user->enabled))
{
foreach($nums as $num)
{
$LastLogin = '<tr class="oddeven">';
$LastLogin.= '<td><a href="index.php">'.$num['nom'].'</a></td><td>'.$num['prenom'].'</td><td>'.$num['lastlogin'].'</td>';
$LastLogin.= "</tr>";
}
}
print $LastLogin;
print '</table>';
しかし、配列はうまく表示されません: