Wstawianie rekordu do relacyjnej bazy danych

0

Witam,

Mam bazę danych z 5 tabelami. Jest to prosta wyszukiwarka ofert pracy. 4 tabele to: użytkownicy(id_usera, user), branża(id_branzy, branza), umowa(id_umowy, rodzaj_umowy), lokalizacja(id_lok, lokalizacja). 5 tabela to: ogloszenia(id_ogloszenia, id_usera, id_branzy, id_umowy, id_lok, tresc, time).

Chciałbym zrobić inserta aby w tabeli ogłoszenia we wszystkich kolumnach oprócz tresc i time pojawiły się id z pozostałych 4 tabel zamiast nazwy z formularza.

Jak powinno wyglądać takie zapytanie sql? Pomoże ktoś?

0

Co to znaczy zamiast nazwy formularza? Chcesz zrobić insert do ogloszenia wszystkich możliwych kombinacji tych czterech kolumn?

0

Chodzi mi o to żeby w kolumnach z relacji pojawiły się id a nie pełne nazwy. Czyli jeśli lokalizacja, np. Warszawa ma id=1, i użytkownik z selecta wybierze Warszawa, to w bazie danych ogloszenia w kolumnie id_lok pojawi się 1. I tak z pozostałymi. Jakoś się nad tym głowię...

0

Cały czas nie jestem pewny o co Ci chodzi. Chcesz wyświetlić coś takiego?

id_ogloszenia| user| branza| rodzaj_umowy|lokalizacja|tresc|time
---------------- | -------------------
1|val|val|val|val|val|time
2|val|val|val|val|val|time

0

Bardziej o takie coś mi chodzi:

0

W tej chwili wpisuje Ci się w tabeli ogloszenia w kolumnach id_ wartość pola? Jak to jest możliwe (zakładam, że id_ to kolumny typu INT)?

Zapytanie które wpisuje id:

INSERT INTO ogloszenia (id_usera, id_branzy, id_umowy, id_lok)
VALUES (int, int, int, int);

Zakładam, że pierwsza kolumna to klucz główny, a pozostałe dwie mają jakieś wartości domyślne?

0

Te dwa rekordy wpisałem ręcznie w phpmyadmin. Chciałbym aby można było dodać to przez przeglądarkę. No dobrze... Ale jak zrobić relację tej tabeli z 4 pozostałymi aby wiedział skąd ma pobrać relacje?

0

Może tak będzie lepiej. Mamy cztery tabele zwykłe i jedną, która ma pobrać wartość id z tych czterech. Tak one wyglądają. I właśnie chciałbym w zapytanie stworzyć relację tabeli 5 z czterema pozostałymi.

0

Ale jak zrobić relację tej tabeli z 4 pozostałymi aby wiedział skąd ma pobrać relacje? znowu niestety nie rozumiem. Jesteś pewny, że twój problem dotyczy SQL? Masz aplikację, załóżmy, że prosty formularz stworzenia ogłoszenia. Klient wypełnia formularz (masz id_usera) uzupełnia formularz i masz pozostałe wartości, wystarczy je wpisać do ogloszenia. Przy okazji, nie wiem dokładnie co chcesz przechowywać w tabeli lokalizacja, ale jeżeli dokładny adres to dyskusyjne jest przechowywanie, tej informacji w oddzielnej tabeli.

0

No właśnie tak ma to być zrobione... Poniekąd da się to w sql tak zrobić żeby wybrał sobie wszystkie id z czterech tabel i wstawił je do 5 tabeli. i z tym mam problem...
Oczywiście pole w formularzu to selecty i wybór jest ograniczony do tego co jest podane.

0

Da się bez problemu, ale nie wiesz, które z nich wybrać, bo połączyć je możesz tylko za pomocą relacji ogloszenia, do której własnie chcesz je wstawić.

0

Wrzuciłem formularz do załącznika. No i właśnie... Jak tą relację skonstruować??

0

Możesz stworzyć słowniki (klucz, wartość), i w zależności od tego jaką wartość w polu wybierze użytkownik przekazywać odpowiednie id w insercie do bazy, ale tutaj wchodzimy już na poziom aplikacji, a nie bazy.

0

Ok, rozumiem... A przy okazji takie pytanie. Bo właśnie mi błąd wyskoczył. Dlaczego $branza jest undefined po wciśnięciu submit???

if(isset($_POST['submit']))	
{
	$branza = ($_POST['branza']);
	$umowa = ($_POST['umowa']);
	$lokalizacja = ($_POST['lokalizacja']);
	$tresc = ($_POST['tresc']);
	
	$errors = NULL;
	
	if($branza == "elektromechanik"){$branza = 1;}
	if($branza == "murarz"){$branza = 2;}
	print_r($branza);
	
}
0

Dawno już nie pisałem w php-e ale włącz ERROR RAPORTING ALL, sprawdź name-a przy inpucie, czy na pewno tak się nazywa, czy jest w form-ie, wyprintuj tablice $POST (echo '

'; print_r($_POST);echo '
';), to tak na szybko.
P.S. Dobra praktyka kiedyś, "isset", sprawdź być może coś się zmieniło.</p>
0

Powycinało wyżej

echo "</pre>"; print_r($_POST); echo "</pre>";

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