[SQL][PHP]kopiowanie rekordu z głównej tabeli do innej |
[SQL][PHP]kopiowanie rekordu z głównej tabeli do innej |
13.11.2016, 18:51:16
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Cześć, jestem tu od niedawna, z PHP mam także od niedawna odczynienia. Chciałem zobaczyć jak można zrobić kopiowanie rekordu z głównej tabeli do innej.
Załóżmy, że główna tabela nazywa się "main_office" a poboczne office1, office2, office3. kolumny w main_office to (id, imie, nazwisko, data_1, status) natomiast w office1,2,3 (id, imie, nazwisko, data_1,). id jest auto inkrementowane. Chciałem to zrobić za pomocą "option value" jako wybór office1,2,3 tak, aby po wciśnięciu przycisku przekaż w kolumnie "status" pozostawała informacja do którego office został przekazany rekord. wiem, że kwerenda powinna być mniej więcej taka
Generalnie to nie wiem jak wstawić tam gdzie jest "office1" w zapytaniu pole wyboru, generalnie co tam wstawić, żeby można było wybrać office1, 2 lub 3. Dodatkowo nie wiem też jak powinien wyglądać kod z czymś takim. Szukałem tutoriali na youtube, ale nic nie mogę sensownego znaleźć. będę wdzięczny za pomoc ps. może ktoś z was coś podobnego robił? Ten post edytował mov45 13.11.2016, 18:52:42 |
|
|
13.11.2016, 19:19:12
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 478 Pomógł: 6302 Dołączył: 27.12.2004 |
Zapytanie to nic innego jak tekst w php wiec jak to tekst mozesz tam wlozyc kazda zmienna jaka ci sie podoba, w tym i twoja opcje
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.11.2016, 07:54:11
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Dobra to może powiem jaśniej czego nie mogę wykonać
mam plik viewDowykonania.php, który wygląda tak:
oraz plik usunZadanie.php
Ogólnie jak dodałem kolejnego "elseif $przekaz" to przestało mi działać usuwanie i modyfikacja zadań. Natomiast nie mogę sobie poradzić z tym, aby kiedy zaznaczę w tabeli office1 lub 2 lub 3 i wcisnę przekaż rekord był kopiowany do odpowiedniej tabeli którą wybrałem - kompletnie nie wiem jak to zrobić tabela główna nazywa się dziennik1, natomiast poboczne tabele to office1, office2, office3 |
|
|
15.11.2016, 08:10:09
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Nie widzę nigdzie input name=przekaz stad warunek nie będzie nigdy spełniony. W akcji przekaż nie masz żadnego selecta więc i tak nie wiesz do którego biura ma być przekazane. Zamiast tych hidden zrób <input type="submit" value="Usun" name="twoja akcja tutaj"> i być może nawet jeden formularz. Później sprawdzaj if(isset($_POST['nazwa akcji'])...
-------------------- |
|
|
15.11.2016, 12:19:45
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Już się pogubiłem - przecież jest przekaz w formularzu dokładnie tutaj:
|
|
|
15.11.2016, 12:23:52
Post
#6
|
|
Grupa: Moderatorzy Postów: 36 478 Pomógł: 6302 Dołączył: 27.12.2004 |
Cytat Nie widzę nigdzie input name=przekaz Wyraznie ci napisano, ze nie ma pola z NAME a ty w odpowiedzi pokazujesz pole z VALUE...NAME VALUE znajdz 10 roznic -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.11.2016, 12:46:01
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Ja już sfotografowałem chyba ten formularz wzrokiem i dlatego tego nie widziałem- dzięki!!!
nadal jednak nie wiem, jaki jest sposób tu akurat w tym przypadku, aby móc wybierać "office" do którego chce wstawiać dane : Dokładnie chodzi mi o to:
mam tu wbite na sztywno office1 - a co zrobić jeśli czasami musi trafić do office2 lub office 3? |
|
|
15.11.2016, 12:52:14
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Wtedy jak pisałem nie masz w tym akurat formularzu żadnego pola select, musisz to poprawić. A później podstaw zamiast na sztywno wartość z selecta (odpowiednio wcześniej sprawdzając żeby sobie tam luki nie zrobić).
-------------------- |
|
|
15.11.2016, 13:01:11
Post
#9
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Tzn. ja chciałem to zrobić tym selektem z formularza, czyli po wybraniu np. office2 w zapytaniu opcja była podmieniana:
nie wiem jednak jak to wszystko powiązać, aby w zapytaniu office1, office2 i office3 się podmieniało - głowiłem się nad tym ponad tydzień, jednak nie znalazłem żadnego rozwiązania, a także żadnego sensownego przykładu na youtube |
|
|
15.11.2016, 13:07:14
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Select ten trafi tylko do warunku if ($akcja == 'zmien'){ bo jak widzisz masz 3 różne formularze w zależności od akcji. A jak poprawić to już pisałem.
-------------------- |
|
|
15.11.2016, 15:20:52
Post
#11
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Tak faktycznie to napisałeś dzięki!!!
Są faktycznie 3 różne formularze - zgadza się. Odpowiadają jednak za następujące akcje : modyfikacja wiersza, usuwanie wiersza oraz przekazywanie rekordu do innej tabeli (office1,2,3) I tu jest ok napisałeś jak to poprawić i wszystko gra. Problem natomiast jest taki, iż nie mam nawet wyobrażenia jak połączyć te selekty (office1,2,3) z plikiem usunZadanie.php tak aby w INSERT INTO .... w miejsce kropek podmianiało w zależności od wyboru office1,2,3 Może mógłbyś chociaż podać przykład? |
|
|
15.11.2016, 15:27:15
Post
#12
|
|
Grupa: Moderatorzy Postów: 36 478 Pomógł: 6302 Dołączył: 27.12.2004 |
Cytat głowiłem się nad tym ponad tydzień, Prosze cie... Ladnie tak klamac w zywe oczy? Przez tydzien to bys bez zadnego problemu przerobil podstawy phpCytat aby w INSERT INTO .... w miejsce kropek podmianiało w zależności od wyboru office1,2,3 Kurcze, toz juz w innym miejscu wkladasz wynik selecta do zapytania, o tu: $query = "UPDATE dziennik1 SET nazwa='$nazwa', user1='$user1', office='$office' WHERE id=$id"; Jaki masz problem by to samo zrobic dla zapytania z insert? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
15.11.2016, 18:40:38
Post
#13
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Cytat Prosze cie... Ladnie tak klamac w zywe oczy? Przez tydzien to bys bez zadnego problemu przerobil podstawy php Ja niedawno dopiero zacząłem z tym zabawę więc tyle mi to zajęło a może nawet i dłużej - nie każdy łapie tak samo Cytat Kurcze, toz juz w innym miejscu wkladasz wynik selecta do zapytania, o tu: $query = "UPDATE dziennik1 SET nazwa='$nazwa', user1='$user1', office='$office' WHERE id=$id"; Cytat Jaki masz problem by to samo zrobic dla zapytania z insert? problem ma taki, że do tej pory tego nie robiłem, domyślam się, że inserty muszą być trzy? $query = "INSERT INTO office1 (nazwa, user1) SELECT nazwa, user1 FROM dziennik1 WHERE id=$id"; $query = "INSERT INTO office2 (nazwa, user1) SELECT nazwa, user1 FROM dziennik1 WHERE id=$id"; $query = "INSERT INTO office3 (nazwa, user1) SELECT nazwa, user1 FROM dziennik1 WHERE id=$id"; tylko zastanawia mnie to jak nimi sterować za pomocą formularza tam gdzie mam Nie do końca rozumiem czy wiesz jaki efekt chce osiągnąć więc napiszę jeszcze raz : po zaznaczeniu wyborze w tabeli html wybranego office1, lub 2 lub 3 i wciśnięciu przycisku przekaż - rekord zostanie przesłany do odpowiedniej tabeli w bazie w sumie są 4 różne tabele - dziennik1, office1, office2, office3 wiem, że może to wyglądać na mega drążenie tematu z mojej strony, ale chcę to dobrze zrozumieć i tak w ogóle to dzięki za pomoc |
|
|
15.11.2016, 18:48:38
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Twój select ma name=office i trzy wartości.
Po wysłaniu forma echo $_POST['office'] zwróci aktualną wartość. Możesz sobie stworzyć dodatkową tablicę mapowań. $x = [ 'Office1' => 'office1 ] I sprawdzać czy array_key_exists (wtedy na pewno użytkownik nic nie podstawi co nie powinien). Możesz zrobić $tblname = mb_strtolower($_POST['office']) i podstawić do zapytania. MOżesz dać option value=1/2/3 i na tej podstawie czegoś szukać. -------------------- |
|
|
20.11.2016, 11:46:12
Post
#15
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
Niestety coś mi nie idzie - wszystko działało dopóki nie zrobiłem właśnie tego przycisku przekaz - teraz nic nie reaguje ani nie rzuca błędem formularz poprawiłem wg waszych wskazówek :
w pliku php dodałem kolejną zmienną $przekaz
na razie nie robiłem jeszcze selecta chciałem na tym etapie aby można było usuwać bądź modyfikować wiersz - niestety całość zachowuje się jakby nie było widać widać zmiennej $przekaz Ten post edytował mov45 20.11.2016, 11:46:44 |
|
|
20.11.2016, 12:20:55
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Nie widzę żebyś cokolwiek zmienił. Dalej masz3 różne formy.
-------------------- |
|
|
20.11.2016, 12:42:20
Post
#17
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) |
No tak zgadza się bo formularzy ma być trzy tyle ile różnych akcji: zmień, usuń i przekaż
w formularzy przekaz zmieniłem - name :
w php dodałem
|
|
|
Wersja Lo-Fi | Aktualny czas: 12.06.2024 - 14:15 |