Я хочу сделать заявление цикла обновления SQL, используя do - while в php - PullRequest
0 голосов
/ 10 июня 2010

Я хочу зациклить оператор обновления, но он зацикливается только один раз.

Вот код, который я использую:

do {
    mysql_select_db($database_ll, $ll);
    $query_query= "update table set ex='$71[1]' where field='val'";
    $query = mysql_query($query_query, $ll) or die(mysql_error());
    $row_domain_all = mysql_fetch_assoc($query);
} while ($row_query = mysql_fetch_assoc($query));

Спасибо, Жан

Ответы [ 4 ]

5 голосов
/ 10 июня 2010

Ну, причина, по которой цикл выполняется только один раз, заключается в том, что запросы UPDATE не возвращают строк, которые можно извлечь с помощью mysql_fetch_assoc.Таким образом, mysql_fetch_assoc возвращает false, что делает выражение ($row_query = mysql_fetch_assoc($query)) false, поэтому цикл прерывается.

Помимо этого, этот код, к сожалению, довольно жестокий.Это может помочь нам сказать, что вы хотите сделать, должен быть лучший способ.

0 голосов
/ 10 июня 2010

Люди,

Мне нужно было заменить это

$query = mysql_query($query_query, $ll) or die(mysql_error());
$row_domain_all = mysql_fetch_assoc($query);

на

$Result1 = mysql_query($query_query, $ll) or die(mysql_error());
0 голосов
/ 10 июня 2010

может быть, у вас есть проблема в вашем запросе mysql.

$ query_query = "обновить набор таблиц ex = '$ 71 [1]', где field = 'val'";

Ваш запрос неверен.

запрос на обновление - это "обновить" имя таблицы "set ex = '$ 71 [1]' где field = 'val'";

Вы пропустили имя таблицы.

или если вы используете 'table' в качестве имени таблицы. затем измените его.

0 голосов
/ 10 июня 2010

Проблема в том, что вы повторно присваиваете значение $ query в вашем цикле.Попробуйте

do {
    mysql_select_db($database_ll, $ll);
    $query_query= "update table set ex='$71[1]' where field='val'";
    $query2 = mysql_query($query_query, $ll) or die(mysql_error());
    $row_domain_all = mysql_fetch_assoc($query2);
} while ($row_query = mysql_fetch_assoc($query));
...