我有不同標題/ aka的帖子。現在,當用戶添加帖子時,我想檢查是否已經有一個帖子與該標題。列計數與第1行的值計數不匹配 - 檢查MySQL中的某列是否是唯一的
我的表看起來像這樣:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| Titel | varchar(50) | NO | | NULL | |
| Alias1 | varchar(50) | YES | | NULL | |
| Alias2 | varchar(50) | YES | | NULL | |
| Alias3 | varchar(50) | YES | | NULL | |
| Alias4 | varchar(50) | YES | | NULL | |
+----------+-------------+------+-----+---------+-------+
,後附加的表現公式是送的,我確認是這樣的:
include('./includes/database.php');
$sql = 'SELECT
Titel
FROM
Posts
WHERE
Titel = \''.$titel.'\' OR
Alias1 = \''.$titel.'\' OR
Alias2 = \''.$titel.'\' OR
Alias3 = \''.$titel.'\' OR
Alias4 = \''.$titel.'\' OR
Titel = \''.$titel2.'\' OR
Alias1 = \''.$titel2.'\' OR
Alias2 = \''.$titel2.'\' OR
Alias3 = \''.$titel2.'\' OR
Alias4 = \''.$titel2.'\' OR
Titel = \''.$titel3.'\' OR
Alias1 = \''.$titel3.'\' OR
Alias2 = \''.$titel3.'\' OR
Alias3 = \''.$titel3.'\' OR
Alias4 = \''.$titel3.'\' OR
Titel = \''.$titel4.'\' OR
Alias1 = \''.$titel4.'\' OR
Alias2 = \''.$titel4.'\' OR
Alias3 = \''.$titel4.'\' OR
Alias4 = \''.$titel4.'\' OR
Titel = \''.$titel5.'\' OR
Alias1 = \''.$titel5.'\' OR
Alias2 = \''.$titel5.'\' OR
Alias3 = \''.$titel5.'\' OR
Alias4 = \''.$titel5.'\'
LIMIT
1';
$result = $db->query($sql);
if (!$result) {
die ('Can\'t send: '.$sql."<br />\nError: ".$db->error);
}
if ($result->num_rows) {
$row = $result->fetch_assoc();
$errorcounter++;
$errors[$errorcounter] = '<p id="info" class="error">Already exists:<br><a href="./index.php?post='.$row['Titel'].'">'.$row['Titel'].'</a></p>';
}
但我認爲這不是最好的辦法做到這一點,有人可以告訴我這可以做得聰明嗎?
和最重要的:它不工作,我得到這個錯誤: 列數並不在行1
那麼,爲什麼你不檢查只有標題,而是別名,但是這可以通過循環來實現 –
因爲其他用戶可以添加一個帖子與其他標題。可以稱爲A或B或C.用戶認爲最好的標題是C,另一個人認爲B更好。當用戶添加一個帖子並將其命名爲C,並且其他用戶添加該帖子並且想要它時,我必須檢查它是否已經存在。 (Sry爲我的英語,它不是我的母語..) – Fox
alias1,2,3,4代表什麼,它們如何用於你的邏輯,以及爲什麼它們不能只用一列進行更改,而不是用4列 –