Использование mysql_fetch_assoc и обновление каждой записи

Некоторые из моих строк содержат запятую «,» в качестве начального символа в поле. Поэтому мне нужно выполнить цикл, проверить, имеет ли каждая строка начальную запятую, удалить ее, если она есть, и обновить строку.

Я запускаю следующий код, который, кажется, идет бесконечный цикл при вызове обновления.

Когда я просто повторяю результат в конце, все выглядит хорошо в браузере. Но при выполнении строки обновления под эхом создается впечатление, что для каждой записи заполняется один элемент из столбца «Теги», а не только строки с исходной запятой, которую я удаляю.

Буду рад помочь 🙂

$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

Решение

Вы должны передать конкретный идентификатор строки тому, в который вы вносите изменения, используя 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.

2

Другие решения

В операторе if () содержится ошибка.
Вы используете один равный:

if($initial = ",") {

}

Вместо двух для фактического сравнения:

if($initial == ",") {

}
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);
}
}

Так благодарен за помощь. Я обновлю также MySQLi.

0
По вопросам рекламы [email protected]