![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 28 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 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 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 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 28 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 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 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'])...
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 28 Pomógł: 0 Dołączył: 20.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Już się pogubiłem - przecież jest przekaz w formularzu dokładnie tutaj:
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 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 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 28 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? |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 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ć).
-------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 28 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 ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 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.
-------------------- |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 28 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? |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 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 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 28 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 ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 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ć. -------------------- |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 28 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 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Nie widzę żebyś cokolwiek zmienił. Dalej masz3 różne formy.
-------------------- |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 28 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
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:02 |