我的一些行有一个","逗号作为该字段中的初始字符。所以我需要循环,检查每一行是否有初始的commma,如果有,则删除它,并更新行。
我正在运行以下代码,在调用更新时似乎无限循环。
当我刚刚在结束时回显结果时,浏览器中的一切看起来都很好。但是在执行echo之下的更新行时,好像来自列的单个数据"标签"正在为每个记录填充,而不仅仅是具有我要删除的初始commma的行。
会爱帮助:)
$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 = ",") {
$str = (ltrim($str, ','));
}
echo "result: " .$str . "<br/>";
$result = "UPDATE products SET Tags = '" .$str ."'";
mysql_query($result);
}
谢谢。
答案 0 :(得分:2)
您应该使用WHERE
子句将特定的行ID传递给您要更改的行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);
}
顺便说一句,如果可能的话,请改为更好的扩展名,即mysqli或PDO。
答案 1 :(得分:0)
你的if()语句中有错误。
你使用的是一个平等的:
if($initial = ",") {
}
而不是两个用于实际比较:
if($initial == ",") {
}
答案 2 :(得分:0)
这是完整的代码。谢谢大家。
$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);
}
}
非常感谢帮助。我也会更新到mysqlli。