Wątek przeniesiony 2019-05-16 10:26 z przez Patryk27.

przeniesienie zawartosci rekordu z tabeli A do tabeli B

Odpowiedz Nowy wątek
2019-05-16 10:24
0

Dzień dobry,
mój problem dotyczy przenoszenia zawartości rekordu z jednej tabeli do drugiej.
Zarejestrowany i zalogowany użytkownik wczytuje do bazy MySQL z formularza zdjęcie, jego nazwę i swoj nick.
Rejestracja użytkownika to wpisanie jego danych do bazy, a logowanie to wykorzystanie mechanizmu sesji.
Tabela Użytkownicy
Kolumny: id_uzytkownik (primary key, autoincrement), imie, nazwisko, login, haslo
Tabela Zdjecia:
Kolumny: id_zdjecia, nazwa_zdjecia, nick_uzytkownika, id_uzytkownik (foreign key od tabeli uzytkownicy)
Jak zapisać kod, aby id_uzytkownik z tabeli użytkownicy przenosiło się do kolumny id_uzytkownik w tabeli zdjecia powołując się na zmienne ?
Z formularza pobieram:
$nazwa=$_POST['nazwa_zdjecia'];
$autor=$_POST['nick'];
przykładowe polecenie: $sql="Insert into zdjecia (nazwa, nick, id_uzytkownik) values ($nazwa, $nick, i jak pobrać to id????).
próbowałam też: "Insert Into (nazwa, nick) Select (id_uzytkownik from uzytkownicy) i co dalej ???
Brakuje mi wiedzy, co dalej...
Utknęłam z projektem, a rozwiązania proponowane na różnych forach zawierają błędy lub nie pasują do mojej sytuacji.
Będę wdzięczna za pomoc. Dziękuję.

Pozostało 580 znaków

2019-05-16 10:26
1

W trakcie logowania użytkownika wrzucaj jego id do sesji - dzięki temu będziesz w stanie w dowolnym momencie odwołać się do id aktualnie zalogowanego użytkownika z wykorzystaniem $_SESSION['userId'].

Zauważ, że mamy też tutaj do czynienia z nieszkodliwą wersją problemu X/Y, ponieważ tak naprawdę kłopotem nie jest przenoszenie id z jednej tabeli do drugiej (tak jak sugerujesz przez większość swojego postu), a odnajdywanie id aktualnie zalogowanego użytkownika.


edytowany 4x, ostatnio: Patryk27, 2019-05-16 10:28

Pozostało 580 znaków

2019-05-16 17:31
0

Pierwsza rzecz droga Izo to nie stosuj polskich nazw zmiennych, tabeli, pól w tabeli itd. Druga sprawa Tabela Zdjęcia. Rozpatrujemy tu dwa scenariusze:

  1. Użytkownik wrzuca czyjeś zdjecia i musi podpisac nick kto sie tam znajduje
  2. Uzytkownik wrzuca swoje zdjecia i ten nick to nick tego wlasnie uzytkownika

Przypadek 1 zostawiam bez zmian. Ale jesli masz przypadek 2 to NICK UZYTKOWNIKA powinien byc w tabeli USERS bo jak zmienisz nick to stare nicki pod zdjeciami beda caly czas. Zatem w tabeli Zdjecia powinno byc tylko:

Kolumny: id, nazwa_zdjecia, id_uzytkownik (foreign key od tabeli uzytkownicy)

Nie stosuj klucza z nazwa tabeli w stylu id_zdjecia czy id_uzytkownik to jest oczywiste i potem w relacjach bedziesz muaiala pisac. uzytkownik.id_uzytkownik zamiast uzytkownik.id co jest oczywiste z jaka tabela masz do czynienia.

Nastepnie po zalogowaniu uzytkownika robisz select * from users where login = 'login usera' and password = md5('password') i cale pobrane dane wstawiasz do $_SESSION['user_data']

Gdy to zrobisz bedziesz mofla dodac zdjecie w stylu

$sql="INSERT INTO zdjecia (nazwa, nick, id_uzytkownik) VALUES ($nazwa, $nick,  $_SESSION['user_data']['id'])
edytowany 2x, ostatnio: fporzo, 2019-05-16 17:33

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0