0

PHPでシンプルなCMSを作ろうとしています。スライダー管理で、追加した写真の順番を入れ替えたい。

<a href="slideup.php?order=<?php echo $result['order']; ?>&id=<?php echo $result['id']; ?>" title="Up"><img src="../images/up.png" alt="Up" /></a>
<a href="slidedown.php?order=<?php echo $result['order']; ?>&id=<?php echo $result['id']; ?>" title="Down"><img src="../images/down.png" alt="Down" /></a>

関連する php ページ、現在の順序、スライドの ID を送信しています。

スライドアップ.php

<?php

    include('includes/functions.php');

    $order=$_REQUEST['order'];
    $id=$_REQUEST['id'];

    goUp($order, $id);

?>

スライドダウン.php

<?php

    include('includes/functions.php');

    $order=$_REQUEST['order'];
    $id=$_REQUEST['id'];

    goDown($order, $id);

?>

関数.php

function goUp($order, $id)
    {
        $db = new DB_CONNECT();
        if(!$order == 1)
        {
            $neworder = $order - 1;
            mysql_query("UPDATE `slider` SET `order`='$order' WHERE `order`='$neworder'") or die(mysql_error());
            mysql_query("UPDATE `slider` SET `order`='$neworder' WHERE `id`='$id'") or die(mysql_error());
        }       

        header('Location: ../admin/slider.php');
    }

function goDown($order, $id)
    {
        $db = new DB_CONNECT();

        $totalslide = 0;
        $query = mysql_query("SELECT COUNT(`id`) as count FROM `slider`") or die(mysql_error());
        $result = mysql_fetch_array($query);
        $totalslide = $result['count'];

        if(!$order == $totalslide)
        {
            $neworder = $order + 1;
            mysql_query("UPDATE `slider` SET `order`='$order' WHERE `order`='$neworder'") or die(mysql_error());
            mysql_query("UPDATE `slider` SET `order`='$neworder' WHERE `id`='$id'") or die(mysql_error());
        }       

        header('Location: ../admin/slider.php');
    }

アイコンをクリックすると、コードは問題なく動作していました。しかし、結果として何も起こりません。私のコードに問題がありますか、それとも論理的な間違いですか?

ありがとうございました。

4

1 に答える 1

0

mysql_query()の後に、mysqlエラーがあると思われるため、これを入力します。

echo mysql_error();

それが何を言っているか教えてください。クエリを作成するときは、フィールドがvarchar、dateなどの場合にのみ値を一重引用符で囲む必要がありますが、数値などの場合はそうではありません。IDは数字だと思いますが、ORDERも数字のようですので、アップデートでは次のようになります。

mysql_query("UPDATE `slider` SET `order`=$neworder WHERE `id`=$id") or die(mysql_error());

IDに関係なく、スライダーテーブルのすべての行を更新して古い順序を新しい順序に変更する理由がよくわからないため、ロジックの問題が発生する可能性がありますが、少なくとも開始する必要があります。

于 2013-01-07T23:30:00.940 に答える