我试图从数据库联接三个表中,为了显示用户所选类别,但我得到以下错误。
Warning: mysqli_error() expects exactly 1 parameter, 0 given in
我想我在查询我的数据库时做错了什么。
以下是下面的代码。
// Query member data from the database and ready it for display
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, categories.*, users_categories.* FROM users_categories INNER JOIN users_categories ON users_categories.user_id = users.user_id JOIN categories ON users_categories.user_id = users.user_id WHERE users_categories.user_id=3");
if (!$dbc) {
// There was an error...do something about it here...
print mysqli_error();
}
//Users entered category loop
while ($row = mysqli_fetch_assoc($dbc)) {
if (! empty($row['category'])) {
echo '<div class="skill-info">';
echo '<p>' , htmlspecialchars($row['category']) , '</p>';
}
}
这是我的MySQL表结构。
CREATE TABLE users (
user_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_name VARCHAR(255) NOT NULL,
PRIMARY KEY (user_id)
);
CREATE TABLE categories (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
parent_id INT UNSIGNED NOT NULL DEFAULT 0,
category VARCHAR(255) NOT NULL,
url VARCHAR(255) NOT NULL,
PRIMARY KEY (id),
INDEX parent (parent_id)
);
CREATE TABLE users_categories (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL,
category_id INT UNSIGNED NOT NULL,
PRIMARY KEY (id)
);
现在我得到以下错误
Not unique table/alias: 'users_categories'
我该如何解决这个问题?
谢谢大家的帮助。有没有办法我可以奖励每一个在这里帮助的人,而不是一个人?
@Lukasz Lysik:在SQL表名+1尼斯渔获物。 – Asaph 2009-11-06 17:20:40
你的编辑帮助,但知道一切都显示了六次。有没有办法我可以限制它只显示一次。 – 123abc 2009-11-06 17:24:57
检查@R。 Bemrose建议。如果它显示六次问题与您的联接(我假设您不重复您的表中的数据)。 – 2009-11-06 17:26:43