Php 使用mysql_fetch_assoc并更新每个记录
我的某些行在字段中以“,”逗号作为初始字符。所以我需要循环,检查每一行是否有初始逗号,如果有,则删除它,并更新该行 我正在运行以下代码,当调用更新时,这些代码似乎在无休止地循环 当我在最后回显结果时,浏览器中的一切看起来都很好。但在执行echo下面的更新行时,似乎每个记录都填充了“Tags”列中的一个数据,而不仅仅是包含我要删除的初始逗号的行 我很乐意帮忙:)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
$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);
}
}