Tutisログインスクリプトを使い始めました。いくつか変更を加えましたが、次のエラーが発生します。
登録済みのすべてのユーザーを一覧表示したいのですが、Foreachループが機能していません。
member.class.phpに新しい関数を作成しました。
// Registered Users
public function rusers()
{
global $database;
$notice = new notice;
$users = $database->query('SELECT id, username, date FROM users');
$return_form = 1;
$user = "<table>"
. "<tr>"
. "<td>ID</td>"
. "<td>UserName</td>"
. "<td>Date</td>"
. "</tr>";
// Function in the database.class.php
$result = $database->foreachloop($users);
foreach ($result as $row)
{
$user.= "<tr><td>".$row['id']."</td>";
$user.= "<td>".$row['username']."</td><td>".$row['date']."</td></tr>";
}
$user.= "</table>";
/* Combine Data */
$data = "";
/* Do we need the login form? */
if ($return_form == 1)
{
$data .= $user;
}
/* Return data */
return $notice->report() . $data;
}
そして、database.class.phpにforeachloop()関数を追加しました
public function foreachloop($result)
{
return $this->statement->fetch(PDO::FETCH_ASSOC);
}
しかし、次の長いエラーが発生します。
*Warning: Illegal string offset 'id' in C:\wamp\www\loginoop3\assets\member.class.php on line 996
Warning: Illegal string offset 'username' in C:\wamp\www\loginoop3\assets\member.class.php on line 997
Warning: Illegal string offset 'date' in C:\wamp\www\loginoop3\assets\member.class.php on line 997
Warning: Illegal string offset 'id' in C:\wamp\www\loginoop3\assets\member.class.php on line 996
Warning: Illegal string offset 'username' in C:\wamp\www\loginoop3\assets\member.class.php on line 997
Warning: Illegal string offset 'date' in C:\wamp\www\loginoop3\assets\member.class.php on line 997*
そして、出力は次のとおりです。
*ID UserName Date
t t t
2 2 2*
ここで、2の数字はユーザーIDを意味し、「t」の文字は「テスト」のユーザー名ですが、最初の文字のみが表示されます...また、1人のユーザーのみが表示されますが、さらに多くのユーザーが表示されます。
何が悪いのかわかりません。誰か提案はありますか?
このログインはOOPPDOを使用します。そして、以下の内容のdatabase.class.phpに新しい関数が含まれているため、rowCount()によってこの変更を実行しようとしました。
public function affected($result)
{
return $this->statement->rowCount();
}