![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Pytanie jest proste czy da sie polaczyc w jednym zapytaniu SELECT i INSTER ?
A tutaj model na ktorym chce to zrobić. Najpierw pytam o id usera [sql:1:1cf29f53c5]SELECT id FROM users WHERE level = '1'[/sql:1:1cf29f53c5] i przy wyciaganiu kolejnych numerow ID users skrypt wykonuje INSTER do innej tabeli [sql:1:1cf29f53c5]INSERT INTO msg_wiadomosci (od, do, temat, tresc) VALUES ('$user', '$wynik['id']', '$_POST['temat']', '$_POST['tresc']');[/sql:1:1cf29f53c5] W tabeli users mam ponad 5000 userow wiec przy wysyalaniu wiadomosci do wszystkich userow skrypt zapetli sie ponad 5000 razy co zmasakruje baze. moze mysql ma mozliwosc samemu wykonania takiej operacji. -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 15.02.2003 Skąd: Ziemia Ostrzeżenie: (0%) ![]() ![]() |
tak da sie:
[sql:1:33bd8cfb3e]INSERT INTO msg_wiadomosci (od, do, temat, tresc) SELECT kolumna_od, kolumna_do, kolumna_temat, kolumna_tresc FROM tabela;[/sql:1:33bd8cfb3e] i jesli jeszcze ma byc to zalezne od info z innej tabeli to uzywasz [sql:1:33bd8cfb3e]JOIN[/sql:1:33bd8cfb3e]. -------------------- Warsztat: IIS 6.0 | PHP 4.3.10 && 5.0.3 | MySQL 4.1.9 | Smarty 2.6.7 | PEAR | EditPlus 2 Produkcja: FlipTiM |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
stale wartosci to kolumny od, temat i tresc, zmienia sie tylko komumna do ktora jest brana z tabeli users
P.S. Mozesz mi napisac dokladnie jak ma wygladc zapytanie od a do z ? Bede wdzieczny ![]() -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 15.02.2003 Skąd: Ziemia Ostrzeżenie: (0%) ![]() ![]() |
[sql:1:98f6b15efa]INSERT INTO msg_wiadomosci (od, do, temat, tresc) SELECT kolumna_od, id, kolumna_temat, kolumna_tresc FROM tabela_gdzie_sa_stale JOIN users;[/sql:1:98f6b15efa]
Albo [sql:1:98f6b15efa]INSERT INTO msg_wiadomosci (od, do, temat, tresc) SELECT tabela_gdzie_sa_stale.kolumna_od, users.id, tabela_gdzie_sa_stale.kolumna_temat, tabela_gdzie_sa_stale.kolumna_tresc;[/sql:1:98f6b15efa] No i jeszcze trzeba / mozna jakos tam WHERE wrzucic odpowiednio dostosowane do potrzeb. -------------------- Warsztat: IIS 6.0 | PHP 4.3.10 && 5.0.3 | MySQL 4.1.9 | Smarty 2.6.7 | PEAR | EditPlus 2 Produkcja: FlipTiM |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
No dobra, ale z bazy chce pobrac tylko jedna kolumne (do) inne kolumny (od, temat, tresc) brane sa z formularza. Wiec mam stworzyc tablice temp i tam zaladowac tymczasowo dane z formularza?
Bo chyba innego wyjscia nie ma ? -------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jest inne wyjście:
[php:1:b2f7da3d15]<?php // pobieramy wszystkie ID i wrzucamy do tablicy $q=mysql_query("SELECT id FROM users WHERE level = '1' "); while($t=mysql_fetch_array($q)) { $tmp[]=$t["id"]; } // tworzymy liste wartosci pol // nie wiem czy dobrze podstawione $user foreach($tmp AS $user) { $sql[]="('".$wynik['id']."', '".$user."', '".$_POST['temat']."', '".$_POST['tresc']."')"; } // zlaczamy liste wartosci $sql=implode(", ",$sql); // wykonujemy zapytanie mysql_query("INSERT INTO msg_wiadomosci (od, do, temat, tresc) VALUES ".$sql); ?>[/php:1:b2f7da3d15] -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 569 Pomógł: 0 Dołączył: 17.08.2003 Skąd: Dąbrowa Górnicza Ostrzeżenie: (0%) ![]() ![]() |
Spenalzo twoja wersja dziala jak najbardziej poprawnie i sniga tak jak trzeba :]
-------------------- Warsztat: Linux: PHP, MySQL, Apache, NetBeans, C++, Qt-Creator
Użytkownik, słowo którego specjaliści IT używają, gdy chcą powiedzieć idiota Zarządzaj swoim budżetem domowym |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:18 |