Я пытаюсь обновить для некоторых продуктов свою категорию в базе данных. Я хочу найти продукты, которые имеют от их имени определенное слово, и после этого я хочу обновить категорию для этих продуктов.Обновить таблицу базы данных с помощью PHP
Я хочу, чтобы выбрать идентификатор из sho_posts
где sho_posts.post_title
содержат эту часть слова '%Audio CD%'
и после этого обновить sho_term_relationships.term_taxonomy_id
со значением 2, где sho_term_relationships.object_id=sho_posts.id
.
Я написал немного PHP-кода, но он делает только часть выбора. Что не так?
<?php
$username = "user_name";
$password = "password";
$hostname = "host";
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db("1812233_shoping",$dbhandle)
or die("Could not select examples");
echo "Connected to MySQL<br>";
$result = mysql_query ("SELECT `id` FROM `sho_posts` WHERE CONVERT(`post_title` USING utf8) LIKE '%Audio CD%' ");
while ($row = mysql_fetch_array($result)) {
echo "ID:".$row{'id'}."<br>";
}
$sql = "UPDATE 'sho_term_relationships'
SET 'term_taxonomy_id' = '123'
WHERE 'object_id' = $row";
//close the connection
mysql_close($dbhandle);
Мой новый треск для сценария теперь:
$username = "_shoping";
$password = "password";
$hostname = "localhost";
//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password)
or die("Unable to connect to MySQL");
$selected = mysql_select_db("_shoping",$dbhandle)
or die("Could not select examples");
echo "Connected to MySQL<br>";
$result = mysql_query ("SELECT `id` FROM `sho_posts` WHERE CONVERT(`post_title` USING utf8) LIKE '%Audio CD%' ");
while ($row = mysql_fetch_array($result)) {
$id[] = $row['id'];
/*echo "ID2:".$id."<br>";*/
}
foreach ($id as $value) {
echo "value:".$value."<br>";
}
/*$id = $row['id'];*/
$sql = "UPDATE sho_term_relationships
SET term_taxonomy_id = '123'
WHERE object_id =".$value;
mysql_query($sql);
//close the connection
mysql_close($dbhandle);
теперь сделать обновление, но только для одной строки, как сделать для всех строк? От выбора запроса я получаю 4 результат
Удалите кавычки вокруг стола имя и имя столбца в обновлении sql –
, если я это сделаю, это ошибка: синтаксическая ошибка, неожиданная '' sho_term_relationships '' (T_CONSTANT_ENCAPSED_STRING) в ... –
Только что заметил $ row - это объект. Используйте $ row {'id'} –