Php 使用多个值修改MYSQL字段中的值(复杂)

Php 使用多个值修改MYSQL字段中的值(复杂),php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,表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&qu

表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(0099)这样的值;而其他人仍然。。。 但是,我不能只改变0099(1)=99<P>P的项目数量。
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
<>现在保罗有100的项目和99的其他项目

< p>你确实应该考虑改变你的数据布局

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

你有没有非常令人信服的理由不将这些信息分成两列?为什么要在一列中存储一系列内容呢?从中得到的任何解决方案,如果不涉及重新设计表,都会有根本性的缺陷。你真的需要规范化这种设计,在MySQL中找不到这样做的方法,因为MySQL不提供这种功能。如果你像这样存储数据,你必须自己处理更新;正如您所发现的,当您进行更新时,您需要分配整个列的值。您需要使用内置MySQL函数实现过于复杂的逻辑;如果您成功地实现了它,那么得到的表达式将非常复杂,几乎无法解释它的功能。你的数据设计很糟糕;管理这些信息所需的代码也会被打乱。你有没有非常令人信服的理由不将这些信息分成两列?为什么要在一列中存储一系列内容呢?从中得到的任何解决方案,如果不涉及重新设计表,都会有根本性的缺陷。你真的需要规范化这种设计,在MySQL中找不到这样做的方法,因为MySQL不提供这种功能。如果你像这样存储数据,你必须自己处理更新;正如您所发现的,当您进行更新时,您需要分配整个列的值。您需要使用内置MySQL函数实现过于复杂的逻辑;如果您成功地实现了它,那么得到的表达式将非常复杂,几乎无法解释它的功能。你的数据设计很糟糕;您需要管理它的代码也将被重击。好的,我
将使用这种方式
我在这方面是新手,我认为减少行数更好:)好的,我
将使用这种方式
我在这方面是新手,我认为减少行数更好:)