Temat: Wstawanie danych połączonych tabeli

Mamy tabele
CREATE TABLE opis(
idopisu int(100) auto_increment,
nazwa varchar(500) not null,
primary key(idopisu)
);

create table tytul(
idtytulu int(100) auto_increment,
nazwa varchar(500) not null ,
primary key(idtytulu)
);

create table konferencja(
idkonferencji int(100) auto_increment,
nazwa varchar(100) not null,
nazwaskrot varchar(50) not null,
dataiczasroz datetime not null,
dataiczaszak datetime not null,
idopisu int(10) not null,
idbudynku int(10) not null,
idtytułu int (10) not null,
primary key(idkonferencji)
);
create table budynek(
idbudynek int(100) auto_increment,
ulica varchar(50) not null,
kodpocztowy varchar(10) not null,
miasto varchar(20) not null,
nazwa varchar(20) not null,
primary key(idbudynek)
);

następnie wszytsko połaczyłam kluczami obcymi

kod html wyglda następująco
<h3><strong>Konferencja</strong></h3>
<form action="addcondfe.php" metod="POST">
<div class="form-group">
<label for="exampleInputName2">Data i godzina rozpoczęcia :</label>
<input name="dataroz" type="datetime" class="form-control" id="exampleInputName2" required>
</div>
<div class="form-group">
<label for="exampleInputName2">Data i godzina rozpoczęcia :</label>
<input name="datazak" type="datetime" class="form-control" id="exampleInputName2" required>
</div>
<div class="form-group">
<label for="exampleInputName2">Ilość miejsc:</label>
<input name="ilosckon" type="text" class="form-control" id="exampleInputName2">
</div>
<div class="form-group">
<label for="exampleInputName2">Tytuł:</label> <input name="titlekon" type="text" class="form-control" id="exampleInputName2" maxlength="200" value="" required>
</div>
<div class="form-group">
<label for="exampleInputName2" >Opis:</label>
<textarea name="opis" class="form-control" rows="3" maxlength="500" required></textarea>
</div> <fieldset>
<legend>Miejsce konferencji</legend>
<div class="form-group">
<label>Nazwa</label>
<input name=""type="text" class="form-control">
</div>
<div class="form-group">
<label>Miasto</label>
<input name="miastokom" type="text" class="form-control">
</div>
<div class="form-group">
<label>Ulica</label>
<input name="ulicakom" type="text" class="form-control">
</div>
<div class="form-group">
<label>Kod pocztowy</label>
<input name="confercode"type="text" class="form-control" placeholder="XX-XXX" pattern="^[0-9]{2}-[0-9]{3}$">
</div>
<div class="form-group">
<label>Miejscowość</label>
<input name="conferci" type="text" class="form-control">
</div>

</fieldset>

<input class="btn btn-default" type="submit" value="Zapisz zmiany">
</form>
</body>
Mógłby mi ktoś podpowiedzieć jak napisać skrypt który wstawiam dane do różnych tabeliTen post został edytowany przez Autora dnia 19.11.15 o godzinie 23:26
Łukasz Schabek

Łukasz Schabek Architekt Rozwiązań

Temat: Wstawanie danych połączonych tabeli

Cześć,

Wydaje mi się, że masz większe szanse na uzyskanie odpowiedzi, jeśli zapytasz na grupie PHP: http://www.goldenline.pl/grupy/Komputery_Internet/php/.

Ewentualnie ten poradnik może Ci pomóc: http://www.php.pl/Wortal/Artykuly/PHP/Podstawy/Tutoria....Ten post został edytowany przez Autora dnia 20.11.15 o godzinie 08:36

Temat: Wstawanie danych połączonych tabeli

Sądzę, że do tego zadania wystarczą dwie tabele: konferencja oraz adres (miejsce konferencji).
HTML opisuje jak ma wyglądać formatka z której będziesz wprowadzać dane , a co za tym idzie strukturę bazy.

Musisz napisać jakiś program (w Javie, C#, PHP itp), który będzie zawierał pola jak te opisane w HTML-u i obsługę przycisku 'Zapisz zmiany' (bardziej odpowiednia nazwa byłaby 'Zapisz', bo tam nic nie wyszukujesz z bazy ... chyba, że jest to krok wcześniej). Po kliknięciu na ten przycisk musisz połączyć się z bazą i wstawiać dane.

Z poziomu samego SQL-a tego nie zrobisz, więc pytanie lepiej skierować do grup z programowania.
Marcin Mackiewicz

Marcin Mackiewicz Programista JAVA, RS
Adware Polska

Temat: Wstawanie danych połączonych tabeli

W pliku addcondfe.php wykrywasz czy formularz został przesłany (kliknięto przycisk "Zapisz zmiany"). W momencie wysłania formularza dane znajdują się w tablicy $_POST czyli jeżeli tablica nie jest pusta to znaczy, że są dane do zapisania.
if (siezof($_POST) > 0) {
// Tu operacje zapisu
}
Teraz zastanawiasz się jaka jest kolejność danych jakie chcesz zapisać. Musisz wykonać INSERT który zwróci wartość klucza głównego dla danych wstawianych.
if (siezof($_POST) > 0) {
$sql = "INSERT INTO opis VALUES ('Nazwa opisu') RETURNING idopisu";
$result = pg_query($dbh, $sql);
$result = pg_fetch_array($result, 0);
$idopisu = $result[0];

$sql = "INSERT INTO konferencje VALUES (... '$idopisu');
}
To tyko przykład. Musisz zadbać o SQLInjection a wszystkie zapytania najlepiej wykonać na otwartej transakcji a następnie wykonać COMMIT. Sugeruję transakcję bo w trakcie wykonania 3/5 zapytań coś może pójść nie tak i musisz mieć możliwość wycofania części zmian.

Dodatkowo jak będziesz chciała edytować dane wprowadź pole typu hidden z id. Potem jak wykryjesz elementy w $POST to na podstawie id możesz wykonać UPDATE zamiast INSERT.
Marek Kubiś

Marek Kubiś programista c#

Temat: Wstawanie danych połączonych tabeli

Magdalena D.:
Mamy tabele
CREATE TABLE ..
następnie wszytsko połaczyłam kluczami obcymi
kod html wyglda następująco
<h3><strong>Konferencja</strong></h3> ...
Mógłby mi ktoś podpowiedzieć jak napisać skrypt który wstawiam dane do różnych tabeli
Pytasz o logikę więc powinnaś pokazać jak doprowadziłaś do wyświetlenia danych z tabel bazy danych. A ponieważ można to zrobić na wiele sposobów więc proponuję poczytać o wzorcach projektowych: repository, mapowanie danych czy Unit of Work.

Następna dyskusja:

Przyrostowe dodawanie danyc...




Wyślij zaproszenie do