[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: из одной таблицы в другую
dep-kim
Допустим есть две таблицы в бд, users и status. таблица users содержит поля UserID, Username, Pass, EmailAddress. status содержит id(A-I), id_users, name, status. Вообщем, мне нужно взять записи из таблицы users поля id, username, и записать их в таблицу status. Типо так: id=id_users, Username=name. Ну я постарался сделать, но ничего не вышло:
<?php
$status=$_POST['status'];
$link = mysql_connect("localhost", "root", "")
or die("Не могу соединиться");
print ("Ваш статус успешно обнавлен! Чтобы продолжить работать с сайтом нажмите <a href='profile.php'>сюда</a>");
mysql_select_db(myblog);
$sql= mysql_query('SELECT UserID, Username FROM users');

while ($res = mysql_fetch_assoc($sql)) {

$sql = mysql_query('SELECT id_users FROM status WHERE UserID='.$res['id_users']);

if (mysql_num_rows($sql) > 0) mysql_query('UPDATE users SET Username="'.$res['Username'].'" WHERE UserID='.$res['id_users']);

}
?>

Подскажите как сделать это? Или дайте ссылку на описание этого действия))буду очень благодарен)
Valick
не совсем понятно к чему такие махинации
проще добавить поле статус в первую таблицу
ну или из второй выкинуть имя и оставить только id_users, status
___
расскажите о сущности второй таблицы, с первой вроде как понятно

_____________
Стимулятор ~yoomoney - 41001303250491
dep-kim
Таблица status содержит поля id, id_users, name я выкину, ну и сам status))а скажите, как мне быть с первым вариантом? Добавить-то я могу, а вот как выводить их по id пользователя не совсем понятно))кстати, а какой нужен sql запрос на редактирования одной и той же записи?
SlavaFr
Цитата (dep-kim @ 20.02.2013 - 09:35)
ообщем, мне нужно взять записи из таблицы users поля id, username, и записать их в таблицу status.

а зачем ты их тогда update в таблице users делаеш ohmy.gif ?


_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
NitroGenerate
Если обновить уже имеющиеся поля(с порядковостью могу ошибаться, запрос не проверял):
UPDATE `users`
LEFT JOIN `status` ON `users`.id=`status`.id_users
SET
`status`.`name` = `users`.`Username`;

Или вот еще один апдейт :
UPDATE `users` tu, `status` ts

SET
ts.`name` = tu.`Username`
WHERE
tu.id = ts.id_users






Если создать новые:
INSERT INTO `status` (`id_users`, `name`)
SELECT `users`.`id`
, `users`.`Username`
FROM
`users`;
dep-kim
Вот, что у меня получилось, посмотрите...правильно?
<?php
$status=$_POST['status'];
$link = mysql_connect("localhost", "root", "")
or die("Не могу соединиться");
print ("Ваш статус успешно обнавлен! Чтобы продолжить работать с сайтом нажмите <a href='profile.php'>сюда</a>");
mysql_select_db(myblog);

mysql_query("UPDATE `users`
LEFT JOIN `status` ON `users`.id=`status`.id_users
SET
`status`.id_users = `users`.id
, `status`.`Username` = `users`.`Username`;"

);

?>
NitroGenerate
1. - Зачем вы все делаете через PHP а не сразу через SQL (Допустим через phpmyadmin) ?
2. - Что вам нужно ?
2.1 - Обновить уже существующие поля в таблице статусов?
или
2.2 - Создать новые поля для новых пользователей в таблице статусов?

Если 2.1 то лучше это использовать:
UPDATE `users` tu, `status` ts

SET
ts.`name` = tu.`Username`
WHERE
tu.id = ts.id_users
SlavaFr
Цитата (dep-kim @ 20.02.2013 - 11:29)
Вот, что у меня получилось, посмотрите...правильно?
<?php
$status=$_POST['status'];
$link = mysql_connect("localhost", "root", "")
or die("Не могу соединиться");
print ("Ваш статус успешно обнавлен! Чтобы продолжить работать с сайтом нажмите <a href='profile.php'>сюда</a>");
mysql_select_db(myblog);

mysql_query("UPDATE `users`
LEFT JOIN `status` ON `users`.id=`status`.id_users
SET
`status`.id_users = `users`.id
, `status`.`Username` = `users`.`Username`;"

);

?>

1) Перед update сделай backup таблицы status
2) через консоль, phpmyadmin или другую программу для работы с БД сделай update таблицы status
UPDATE `status`
INNER JOIN `users` ON `users`.id=`status`.id_users
SET `status`.`Username` = `users`.`Username`;"



_____________
↓↓↓↓↓↓↓↓↓↓
ответ может быть здесь
или в mysql_error();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.