![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 21.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Nie umiem sobie poradzić z następującym problemem. Najpierw diagram
Chcę zrobić skrypt w php, który wyciągnie z tabeli NASZE_ZAWODY pole idnz, przekaże je do tabeli ZAWODY_DYSCYPLINY i umożliwi mi dodanie do tej tabeli jednej lub kilku dyscyplin. W skrócie mówiąc ma to wyglądać tak: ZAWODY_DYSCYPLINY Kod IDZD IDNZ IDD TERMIN 1- 2 - 1 - 12 06 2005 2 - 2 - 2 - 13 06 2005 3 - 2 - 3 - 13 06 2005 4 - 2 - 4 - 15 06 2005 5 - 2 - 5 - 15 06 2005 6 - 3 - 1 - 4 07 2005 7 - 3 - 10 - 5 07 2005 itp itd Myślę, że wiadomo o co chodzi. I teraz tak: mam dwie stronki: a.php i b.php. Na tej pierwszej zrobiłem wybór idnz z tabeli NASZE_ZAWODY. Po naciśnięciu przycisku "wybierz" skrypt przechodzi do strony b.php, która ma za zadanie zaktualizowanie bazy Skypt a.php:
Przęglądarka przechodzi na stronę b.php i jest wszystko ok. Widzę wybrane zawody, czyli zmienna dobrze się przeniosła ![]() idzd (autoinkrementacja) idnz (pobrany ze skryptu a.php), idd (pobrany z tabeli DYSCYPLINY, termin (pobrany z ze skryptu wyżej). Mój problem polega na tym, że nie wiem jak połączyć ową feralną zmienną z tabeli NASZE_ZAWODY i przekazał ją do ZAWODY_DYSCYPLINY a jednocześnie żeby dodał idd z DYSCYPLINY to ZAWODY_DYSCYPLINY. Próbowałem już to zrobić podzapytaniem takim: $sql = "UPDATE ZAWODY_DYSCYPLINY SET idnz = (SELECT * FROM NASZE_ZAWODY WHERE idnz = '$_POST[sel_record]')"; Ale ponieważ nie poszło mi już na tym skrypcie to nie próbowałem nawet JOIN-ować to z 3 tabelą (DYSCYPLINY). Błąd, który mi się ukazał to: Warning: mssql_query(): message: Only one expression can be specified in the select list when the subquery is not introduced with EXISTS. (severity 16) in c:\...\b.php on line ... EDIT >> Heh, że tak powiem sam sobie pomogłem. Zmieniłem zapytanie $sql z UPDATE na INSERT (rzecz jasna). Teraz wygląda to tak:
Jak widać dodałem też procedurę 'zet'. Miała mi ona służyć do tego by pobierać największe pole idzd (które jest kluczem gł. i typu autoincrement). Składnia mojej procedury wygląda tak:
Składnię wziąłem z tego tematu. Po włączeniu Query analyzera i wywołaniu procedury wszystko jest ok - pole idzd zwiększa się o 1. Niestety w kodzie php już to nie działa ponieważ zamiast wrzucać każdą następną wartość większą o 1 od ostatniego wpisanego idzd to kod cały czas uparcie wstawia mi pole z idzd = 0. Czy ktoś mi pomoże? Ten post edytował GeedieZ 22.07.2005, 11:15:55 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.06.2025 - 12:37 |