0

異なるタイトル/別名の投稿があります。ユーザーが投稿を追加すると、そのタイトルの投稿が既にあるかどうかを確認したいと思います。

私のテーブルは次のようになります。

       +----------+-------------+------+-----+---------+-------+
       | 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    |       |
       +----------+-------------+------+-----+---------+-------+

add-formular が送信された後、次のようにタイトルを確認します。

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 の値数と一致しません

4

1 に答える 1