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

现在 paul 有 100 个 SomeItem 和 99 个 AnotherItem

于 2012-07-25T14:09:40.263 回答