Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用mysql_fetch_assoc并更新每个记录_Php_Mysql_Sql Update_Rows - Fatal编程技术网

Php 使用mysql_fetch_assoc并更新每个记录

Php 使用mysql_fetch_assoc并更新每个记录,php,mysql,sql-update,rows,Php,Mysql,Sql Update,Rows,我的某些行在字段中以“,”逗号作为初始字符。所以我需要循环,检查每一行是否有初始逗号,如果有,则删除它,并更新该行 我正在运行以下代码,当调用更新时,这些代码似乎在无休止地循环 当我在最后回显结果时,浏览器中的一切看起来都很好。但在执行echo下面的更新行时,似乎每个记录都填充了“Tags”列中的一个数据,而不仅仅是包含我要删除的初始逗号的行 我很乐意帮忙:) $query=mysql\u query(“从产品中选择标签”) 或者死(mysql_error()); while($row=mysq

我的某些行在字段中以“,”逗号作为初始字符。所以我需要循环,检查每一行是否有初始逗号,如果有,则删除它,并更新该行

我正在运行以下代码,当调用更新时,这些代码似乎在无休止地循环

当我在最后回显结果时,浏览器中的一切看起来都很好。但在执行echo下面的更新行时,似乎每个记录都填充了“Tags”列中的一个数据,而不仅仅是包含我要删除的初始逗号的行

我很乐意帮忙:)

$query=mysql\u query(“从产品中选择标签”)
或者死(mysql_error());
while($row=mysql\u fetch\u assoc($query))
{
$str=$row['Tags'];
$initial=substr($str,0,1);
如果($initial=“,”){
$str=(ltrim($str,,');
}
echo“结果:.$str.”
; $result=“更新产品集标签=””。$str。“”; mysql\u查询($result); }
谢谢。

您的if()语句中有错误
您正在使用一个相等的:

if($initial = ",") {

}
而不是两个用于实际比较:

if($initial == ",") {

}

您应该使用
WHERE
子句将特定的行id传递给要进行更改的行:

$query = mysql_query("SELECT Tags FROM products")
   or die (mysql_error());

while ($row = mysql_fetch_assoc($query)) {
    $str = $row['Tags'];
    $initial = substr($str,0,1); 

    if ($initial == ",") {
        //  == not =
        $str = (ltrim($str, ','));
    }

    $id = $row['id'];
    echo "result: " .$str  . "<br/>";
    $result = "UPDATE products SET Tags = '$str' WHERE id = $id";
    mysql_query($result);
}
$query=mysql\u query(“从产品中选择标签”)
或者死(mysql_error());
while($row=mysql\u fetch\u assoc($query)){
$str=$row['Tags'];
$initial=substr($str,0,1);
如果($initial==“,”)){
//==不是=
$str=(ltrim($str,,');
}
$id=$row['id'];
echo“结果:.$str.”
; $result=“updateproducts SET Tags='$str',其中id=$id”; mysql\u查询($result); }

顺便说一句,如果可能的话,请改用更好的扩展名mysqli或PDO。

以下是完整的代码。谢谢大家

$query = mysql_query("SELECT ProductID, Tags FROM products")
   or die (mysql_error());

while ($row = mysql_fetch_assoc($query)) {
    $str = $row['Tags'];
    $initial = substr($str,0,1); 

    if ($initial == ",") {
        $str = (ltrim($str, ','));

        $id = $row['ProductID'];
        //echo $id . " ";
        //echo $str  . "<br/>";
    $result = "UPDATE products SET Tags = '$str' WHERE ProductID = $id";
       echo $result ."<br>";
       mysql_query($result);
    }
}
$query=mysql\u查询(“从产品中选择产品ID、标签”)
或者死(mysql_error());
while($row=mysql\u fetch\u assoc($query)){
$str=$row['Tags'];
$initial=substr($str,0,1);
如果($initial==“,”)){
$str=(ltrim($str,,');
$id=$row['ProductID'];
//echo$id.“;
//echo$str.“
”; $result=“updateproducts SET Tags='$str',其中ProductID=$id”; 回显$result。“
”; mysql\u查询($result); } }

非常感谢你的帮助。我也会更新到mysqlli。

谢谢。浏览器中出现错误-“未定义索引:id”。这是因为数组是关联的吗?@Kailas no我所说的
$row['id']
只是一个占位符值。我只是假设您有一个id。那就是特定表的id的名称<代码>$row['product\u id']我想是吧?
$query = mysql_query("SELECT ProductID, Tags FROM products")
   or die (mysql_error());

while ($row = mysql_fetch_assoc($query)) {
    $str = $row['Tags'];
    $initial = substr($str,0,1); 

    if ($initial == ",") {
        $str = (ltrim($str, ','));

        $id = $row['ProductID'];
        //echo $id . " ";
        //echo $str  . "<br/>";
    $result = "UPDATE products SET Tags = '$str' WHERE ProductID = $id";
       echo $result ."<br>";
       mysql_query($result);
    }
}