Некоторые из моих строк содержат запятую «,» в качестве начального символа в поле. Поэтому мне нужно выполнить цикл, проверить, имеет ли каждая строка начальную запятую, удалить ее, если она есть, и обновить строку.
Я запускаю следующий код, который, кажется, идет бесконечный цикл при вызове обновления.
Когда я просто повторяю результат в конце, все выглядит хорошо в браузере. Но при выполнении строки обновления под эхом создается впечатление, что для каждой записи заполняется один элемент из столбца «Теги», а не только строки с исходной запятой, которую я удаляю.
Буду рад помочь 🙂
$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);
}
Спасибо.
Вы должны передать конкретный идентификатор строки тому, в который вы вносите изменения, используя WHERE
пункт:
$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.
В операторе if () содержится ошибка.
Вы используете один равный:
if($initial = ",") {
}
Вместо двух для фактического сравнения:
if($initial == ",") {
}
Вот полный код. Всем спасибо.
$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);
}
}
Так благодарен за помощь. Я обновлю также MySQLi.