Php 使用多个值修改MYSQL字段中的值(复杂)
表1-用户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
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函数实现过于复杂的逻辑;如果您成功地实现了它,那么得到的表达式将非常复杂,几乎无法解释它的功能。你的数据设计很糟糕;您需要管理它的代码也将被重击。好的,我
将使用这种方式
我在这方面是新手,我认为减少行数更好:)好的,我将使用这种方式
我在这方面是新手,我认为减少行数更好:)