0

表 1 - ユーザー

id username items
1 Paul 1(0020);2(0001);

表 2 - アイテム

id name 
1 name_here

ユーザーのアイテムに 2(0001) を入れます。これは、2=アイテム ID、0001 がアイテムの量です。これは、アイテム リストを表示する関数です。

function getitems() {
$username = $_SESSION['user'];
$connect = mysql_connect("localhost","root","x") or die("Conexiune nereusita!");
mysql_select_db("skameron") or die("Baza de date nu exista!");
$query = mysql_query("SELECT * FROM users WHERE username='" . $username . "'") or            die(mysql_error());
if(mysql_num_rows($query) == 0) {
        echo "<tr><td colspan=\"3\">Nu ai iteme in inventar!</td></tr>";
} else {
        while($itm = mysql_fetch_assoc($query)) {
    $str = $itm['items'];
    $items = preg_split("/;/", $str); 
    foreach ($items as $item){ 
 
$temp_item =  preg_split("/,/", $item); 
if($temp_item){ 
    foreach ($temp_item as $temp_i){ 
    If($temp_i=="")
    {
    }
    else{
    $pieces = substr($temp_i, -5, 4);
    $piecesold = $pieces;
    $pieces = $pieces/1;
    //$arrnr = array(0,1,2,3,4,5,6,7,8,9,"(",")");
    //$temp_i = str_replace($arrnr,"",$temp_i);
    $query2 = mysql_query("SELECT * FROM items WHERE id='" . $temp_i . "'") or die(mysql_error());
        if(mysql_num_rows($query2) == 0) {
        echo "<tr><td colspan=\"3\">Nu ai iteme in inventar!</td></tr>";
} else {
        while($itm2 = mysql_fetch_assoc($query2)) {
        $temp_i = $itm2['name'];
        $temp_id = $itm2['id'];
        echo $temp_i . " <a href='items.php?del=". $temp_id."(".$piecesold.")'>Delete all</a>(". $pieces . ")/<a href='items.php?del=". $temp_id."(".$piecesold.")&nr=1'>Delete 1</a><br>"; 
    }}}}} else { 
    echo $item;     
}}}}}

アイテムを削除するページを作成しましたが、アイテムの数だけを削除する方法が見つかりません...たとえば、これを変更するには: 2(0100);1(0001); これに: 2(0099);1(0001);

このような値を削除する方法は次のとおりです。

$delitem = $_GET['del'];
$queryreg = mysql_query("UPDATE users SET items = REPLACE(items, '$delitem;', '');");

このページで 2(0099) のような値を削除できます。残りは残りますが・・・ 0099/1=99 の項目の金額しか変更できません

4

1 に答える 1

3

データのレイアウトを変更することを本当に検討する必要があります

Table1 - Users
Id Name
1  Paul

Table2 - Items
Id Name
1  SomeItem
2  AnotherItem

Table3 - UserItems
UserId ItemId Quantity
1      1      100
1      2      99

現在、ポールは SomeItem を 100 個、AnotherItem を 99 個持っています。

于 2012-07-25T14:09:40.263 に答える