0

この質問とそのタイトルは漠然とした質問のように思われるかもしれませんが、そうである場合は申し訳ありませんが、私自身が混乱しているため、他に質問する方法がありません.

ここに行きます:

サイト所有者がホームページに画像付きの製品を投稿できるWebサイトを作成しています!このビットは正常に動作します。

ホームページには最大 10 個の製品のみが表示されます。このビットも同様に機能します。

製品は番号でデータベースに保存されます。たとえば、最初のアイテム/製品は製品番号 1 として保存され、1 はその ID であり、製品番号 2 は 2 で 3 は 3 などです。このビットも正常に機能します。

ここに問題があります:

ホームページに表示できる最大数であるホームページに10個の製品を追加したとしましょう。製品 1 ~ 10。

新しい製品 (製品番号 11 ) を追加すると、この新しく追加された製品は、追加された最も古い製品である製品番号 1 を削除します。

私はこれが起こることを望んでいません。古いものの1つを手動で削除/削除すると、自動的に置き換えられるまで、製品/アイテムをキューに入れておき、他の製品と同様にデータベースに保存する必要があります。

これは、製品をデータベースに追加するために使用しているコードです。

<?php 
// Parse the form data and add inventory item to the system
if (isset($_POST['product_name'])) {

    $product_name = mysql_real_escape_string($_POST['product_name']);
    $link = mysql_real_escape_string($_POST['link']);
    $retail = mysql_real_escape_string($_POST['retail']);
    $clicks = mysql_real_escape_string($_POST['clicks']);
    $price = mysql_real_escape_string($_POST['price']);
    $category = mysql_real_escape_string($_POST['category']);
    $subcategory = mysql_real_escape_string($_POST['subcategory']);
    $details = mysql_real_escape_string($_POST['details']);
    // See if that product name is an identical match to another product in the system
    $sql = mysql_query("SELECT id FROM products WHERE product_name='$product_name' LIMIT 1");
    $productMatch = mysql_num_rows($sql); // count the output amount
    if ($productMatch > 0) {
        echo 'Sorry you tried to place a duplicate "Product Name" into the system, <a href="index.php">click here</a>';
        exit();
    }
    // Add this product into the database now
    $sql = mysql_query("INSERT INTO products (product_name, link, retail, clicks, price, details, category, subcategory, date_added) 
        VALUES('$product_name','$link','$retail','$clicks','$price','$details','$category','$subcategory',now())") or die (mysql_error());
     $pid = mysql_insert_id();
    // Place image in the folder 
    $newname = "$pid.jpg";
    move_uploaded_file( $_FILES['fileField']['tmp_name'], "../inventory_images/$newname");
    header("location: index.php"); 
    exit();
}
?>

どんな助けでも大いに役に立ちます。たとえそれが私を正しい方向に導いたとしても。

ありがとう

4

1 に答える 1

1

DBスキーマは不要です。これは順序の問題です。ホームページのアイテムを取得する SQL クエリで、"ORDER BY id DESC" や日付などを見つけることができるでしょう。ID ASC で項目を並べ替える必要があります (これは SQL のデフォルトの動作であるため、単純に「ORDER BY ID」で十分です。

繰り返しますが、SQL は、日付または ID のいずれかでレコード DESC を具体的に並べ替えています。

于 2013-02-27T17:34:40.143 に答える