Правильный запрос к MySQL

Dukuй

Щас сменю себе статус
Регистрация
24 Фев 2009
Сообщения
308
Реакции
190
Помогите правильно сделать запрос к БД
Имеется таблица в таком формате:
id----game_id----string
1----36456546----пвапвапа
2----45645656----пвапап
3----38678767----исмимси
4----14565775----врнорпо
5----06749325----вшпоршр
...
Мне нужно сделать запрос к БД, который должен пройти по всем id в таблице по порядку (к примеру в таблице 20 строк), каждый раз меняя значение game_id и выполняя скрипт по новой 20 раз.
$value = file_get_contents('Для просмотра ссылки Войди или Зарегистрируйся"game_id"');
if (game_id==14565775){
echo "hello world";
}
После чего, добавить нужное значение в поле "string"
mysql_query("UPDATE `table_name` SET string='$string' WHERE game_id='game_id'");
 
через процедуру?

либо в тупую через пхп.
select * from table;

Код:
while (20 раз) {
$query = 'select * from table;

....


foreach ($result => $row) {
    Обновляем каждое поле
}
}

и того, через процедуру будет лучше, т.к. ты не будешь 100500 запросов к бд делать.
 
Делаю вот так. Где ошибка?
PHP:
for($i = 1; $i<10; $i++)
{
$get_game_id = mysql_query("SELECT `game_id` FROM `table_name` WHERE id='$i' ");     
while($row = mysql_fetch_array($get_game_id, MYSQL_ASSOC))
{
$row2 = ($row[game_id']+1);
}
$result = mysql_query("UPDATE `table_name` SET game_id='$row2' WHERE id='$i' ");    
}
 
Делаю вот так. Где ошибка?
PHP:
for($i = 1; $i<10; $i++)
{
$get_game_id = mysql_query("SELECT `game_id` FROM `table_name` WHERE id='$i' ");
while($row = mysql_fetch_array($get_game_id, MYSQL_ASSOC))
{
$row2 = ($row[game_id']+1);
}
$result = mysql_query("UPDATE `table_name` SET game_id='$row2' WHERE id='$i' ");
}
sql запрос не в цикле. Вы в цикле переменную меняете и всё, а запрос проходит с последним значением переменной.

+ кавычку забыли

PHP:
for($i = 1; $i<10; $i++)
{
$get_game_id = mysql_query("SELECT `game_id` FROM `table_name` WHERE id='$i' ");
while($row = mysql_fetch_array($get_game_id, MYSQL_ASSOC))
{
$row2 = ($row['game_id']+1);
$result = mysql_query("UPDATE `table_name` SET game_id='$row2' WHERE id='$i' ");
}
}

+ не рационально делать столько запросов.

Сделайте SELECT WHERE id<10, результат будет тот же. И по результату бегайте через while.

Так же результат надо получить после mysql_query; Во-втором случае вы получаете с помощью mysql_fetch_array. А в первом, никак. Сделайте тоже mysql_fetch_array
 
Еще ошибка в том, что нельзя юзать mysql_fetch_array(), так как уже эти функции стары и не безопасны
Юзайте PDO хотя бы
 
Назад
Сверху