0

私の英語が下手ならごめんなさい。私はこのようなテーブルを持っています: http://i.imgur.com/yLiKR08.jpg

私がやろうとしているのは、「$sort」変数に埋め込まれた 4 つの値に基づいて 6 つの値を自動的に取得し、それを「$bawah」変数に配置する関数を用意することです。したがって、次のようにコーディングします。

$this->nomer = $sort;
    $bawah = $this->nomer + 1;
    $cek = $this->db->query("SELECT * FROM artikel_kategori WHERE sort='$bawah' LIMIT 1");
    while ($cek->num_rows() == 0) {
        $bawah = $this->bawah + 1;
    }

しかし、うまくいかないようです。私はまだアマチュア プログラマーです。参考までに、フレームワークとして CodeIgniter を使用しています。そして、私が達成しようとしているのは、テーブルのレコードを「$sort」値と「$bawah」値で交換して、4 行目のソート位置を 5 行目と交換できるようにすることです。レコードを交換するための私のクエリは次のとおりです。

$this->db->query("UPDATE artikel_kategori AS kat1 JOIN artikel_kategori AS kat2 
        ON 
            (kat1.sort='$sort' AND kat2.sort='$bawah') 
        SET 
            kat1.sort=kat2.sort, kat2.sort=kat1.sort");
4

2 に答える 2

0

おそらく、6 つの数字すべてを返す 1 つのクエリを実行する方が効率的でしょう SELECT * FROM artikel_categori

そこから for ループを使用してすべての結果を調べ、結果が正しい 1 かどうかを確認します。

6 つの SQL クエリを作成するよりも、php を使用して 6 つの結果をループする方がはるかに高速です。

于 2013-05-10T15:15:05.623 に答える