cmdhitman
18.02.2009 - 11:25
Здравствуйте, уважаемые специалисты. Столкнулся с такой проблемой- есть база данных "kursor" в ней есть таблицы "node" и "users" - в обеих таблицах есть столбец uid . Нужно из таблицы users перенести значение uid в таблицу node с заменой этого значения- вот что я пишу:
PHP |
<?php
$link = mysql_connect("localhost", "admin", "pass"); mysql_query("SET NAMES utf8"); mysql_select_db("kursor"); $result = mysql_query('SELECT uid FROM users ') ;
while ($row = mysql_fetch_array($result)){ $a = $row['uid']; mysql_query("UPDATE `node` SET `uid` = '$a' "); }
mysql_close($link); |
Перебор значений работает - но только присваивается последнее значение из users ? а нада чтоб были все разные - что делаю не так подскажите пожалуйста
nighting
18.02.2009 - 13:40
у тебя проблема где-то в
PHP |
mysql_query("UPDATE `node` SET `uid` = '$a' ") |
попробуй поставить вывод ошибок
PHP |
mysql_query("UPDATE `node` SET `uid` = '$a' ") or die("Invalid SQL query " . mysql_error()); |
а вообще у тебя кажется все время поочередно обновляются одновременно все `uid` из твоей таблицы `node` и в конце ставит всем последнее значение. Нужно указать какое именно поле `uid` ты меняешь.
_____________
Стране нужны паровозы! Стране нужен метал!
cmdhitman
18.02.2009 - 13:51
В этом то и проблема что ставит последнее значение - я хочу чтоб переносилось с заменой всех значений значениям из users.uid Как мне это сделать ? Спасиба за ответ nighting
nighting
18.02.2009 - 14:16
попробуй так:
PHP |
<?php
$link = mysql_connect("localhost", "admin", "pass"); mysql_query("SET NAMES utf8"); mysql_select_db("kursor"); $result = mysql_query('SELECT uid FROM users ') ; $resultNode = mysql_query('SELECT uid FROM node ');
while ($row = mysql_fetch_array($result) and $rowNode = mysql_fetch_array($resultNode)){ $a = $row['uid']; mysql_query("UPDATE `node` SET `{$rowNode['uid']}` = '$a' "); }
mysql_close($link); |
_____________
Стране нужны паровозы! Стране нужен метал!
cmdhitman
20.02.2009 - 00:02
Неа - опять тот же результат - меняются только на последние значения (
Viking
20.02.2009 - 00:31
думаю должен быть способ это одним запросом сделать, но пока теоретически можно попробовать так:
PHP |
<?php
$link = mysql_connect("localhost", "admin", "pass"); mysql_query("SET NAMES utf8"); mysql_select_db("kursor");
mysql_query("update `node` set `uid`=null");
$result = mysql_query('SELECT uid FROM users ') ;
while ($row = mysql_fetch_array($result)){ $a = $row['uid']; mysql_query("UPDATE `node` SET `uid` = '$a' WHERE `uid` is null LIMIT 1"); }
mysql_close($link); |
_____________
Нужно все делать настолько просто, насколько возможно, но не проще.
Альберт Германович
sergeiss
20.02.2009 - 01:24
Задача изначально поставлена неполностью. Не хватает условий.
Вопрос автору темы: опиши подробнее, что ты хочешь сделать!!!
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
lawbreaker
20.02.2009 - 02:39
Попробуй так:
PHP |
<?php
$link = mysql_connect("localhost", "admin", "pass"); mysql_query("SET NAMES utf8"); $result = mysql_query('SELECT `uid` FROM `kursor`.`users` ') ;
while ($row = mysql_fetch_array($result)){ mysql_query("UPDATE `kursor`.`node` SET uid = '".$row['uid']."' "); }
mysql_close($link); |
но я чёт не пойму вопрос и задачу
_____________
Я Андрей и мне 14 лет :)
И ни как не дождусь когда HardWoman меня удалит
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.