Как изменить множество значений в таблице

Главные вкладки

Аватар пользователя cmdhitman cmdhitman 19 февраля 2009 в 11:38

Здравствуйте, уважаемые участники сообщества - столкнулся с такой проблемой - создал пользователей , а теперь каждому пользователю хочу присвоить отдельно уже созданную ноду - то есть хочу изменить uid в таблице node - вот что я пишу

<?php

 
         $link = mysql_connect("localhost", "admin", "pass");
mysql_query("SET NAMES utf8");
mysql_select_db("kursor");

$resultNode = mysql_query('SELECT uid FROM node ');

while ($rowNode = mysql_fetch_array($resultNode)){
           for($uid=2; $uid<5000; $uid++){
                   mysql_query("update node SET uid='$uid'");
                   }
     
       
}

mysql_close($link);

?>

Но этот код меняет все значения и присваивает последнее значение всем uid . Может кто-нибудь подскажет , что я делаю не так - заранее спасибо.

Комментарии

Аватар пользователя glu2006 glu2006 19 февраля 2009 в 12:06

не правильно все )) или почти все.
Вам как? безразлично какому юзеру какая нода? или есть какая-то закономерность?
Имеется ввиду тип ноды.

Аватар пользователя cmdhitman cmdhitman 19 февраля 2009 в 12:08

Желательно чтобы извлекать uid из users с заменой значений uid в node, а вообще-то можно и безразлично кому какая нода - только надо чтоб получилось так - каждому пользователю одна нода
PS: Ноды уже есть Smile Заранее спасибо

Аватар пользователя glu2006 glu2006 19 февраля 2009 в 14:32

Как-то так; правда этот код надо выполнять внутри друпала а не внешне как Ваш, для внешки просто заметине функции db_query на родные пхпшные. ну и про подключение к БД не напоминаю ))).

<?php $uids = db_query("SELECT uid FROM {users} WHERE uid <> 1");
while($uid = db_fetch_array($uids)){
 db_query("UPDATE {node} SET uid = %d", $uid['uid']);
}
Аватар пользователя cmdhitman cmdhitman 19 февраля 2009 в 22:41

Хотя не совсем помогло - uid везде рисваивается последний - то есть везде в node uid становится последним выбранным значением из userss - то есть все ноды присваиваются последнему пользователю из userss Sad Помгите плиз - я уже тут моск сломал

Аватар пользователя glu2006 glu2006 19 февраля 2009 в 23:25

А так?

<?php $uids = db_query("SELECT uid FROM {users} WHERE uid <> 1 ORDER BY(uid)");
$nids = db_query("SELECT nid FROM {node} WHERE type = 'ваш тип материала' ORDER BY(nid)");
while($nid = db_fetch_array($nids)){
  $nodes[] = $nid['nid'];
}
while($uid = db_fetch_array($uids)){
 db_query("UPDATE {node} SET uid = %d WHERE nid = %d", $uid['uid'], array_shift($nodes));
}?>
Аватар пользователя cmdhitman cmdhitman 19 февраля 2009 в 23:34

Спасибо огромное glu2006 ))))))))))))) А можно ещё вопрос - что такое %d - читал где-то что автозаполнитель - а где можно пронего подробней узнать ?