![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Postów: 0 Pomógł: Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
Mam 2 tabele:
1. Auta (auto_id, auto_marka_id) 2. Marka (marka_id, marka_nazwa) Funkcja edit _auta wyświetla mi poprawnie formularz z id i nazwa marki samochodu, które mogę edytować. jednak gdy kliknę w przycisk akceptuj - (wywolywana jest funkcja post_edit_auta) nie updatuje mi danych ------------------------ ta część działa dobrze: [php:1:1689619966]<?php function edit_auta($auto_id) { echo '<h3><p align="center">Edytuj auto</p></h3>'; $r = mysql_query("SELECT auto_id , marka_nazwa FROM auta, marka WHERE marka.marka_id=auto_marka_id and auta.auto_id = $auto_id") or die("error: auta.php - edit_auta"); $a = mysql_fetch_array($r); echo '<form action="auta.php" method="get">'; echo '<input type="hidden" name="action" value="post_edit">'; echo '<input type="hidden" name="auto_id" value="'.$a["auto_id"].'">'; echo '<table width="320" align="center">'; echo '<tr>'; echo '<td width="60">Marka</td>'; echo '<td width="260"><input type="text" name="marka_nazwa" value="'.$a["marka_nazwa"].'" class="big"></td>'; echo '</tr>'; ?>[/php:1:1689619966] tutaj jest gdzieś błąd: [php:1:1689619966]<?php function post_edit_auta($auto_id) { mysql_query("update auta set auto_id=$auto_id, auto_marka_id = '$auto_marka_id' where marka.marka_id=$auto_id") or die("error: osoby.php - post_edit_player"); return 1; } echo '</table>'; echo '<p align="center"><input type="submit" value="Akceptuj"></p>'; echo '</form>'; echo '<p align="center"><a href="index.php?aaction=auta">Powrót do listy aut</a></p>'; } ?>[/php:1:1689619966] Prosiłbym o pomoc bo nie bardzo wiem jak formułować zapytania jeśli dotyczą 2 róznych powiązanych ze sobą tabel. Poprawione by hwao |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 2.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
To już chyba rozumiem, o co Ci chodzi. W takim razie funkcję edit_auta zrób tak:
[php:1:694cc8fbb3]<?php // funkcja edit_auta po kliknięciu w link "edytuj" wyświetla formularz //do edycji marki samochodu (zmienna marka_nazwa) function edit_auta($auto_id) { // w zapytaniu pobieżemy również auto_marka_id $r = mysql_query("SELECT auto_id , marka_nazwa, auto_marka_id FROM auta, marka WHERE marka_id=auto_marka_id and auto_id = $auto_id") or die("error: auta.php - edit_auta"); $a = mysql_fetch_array($r); echo '<form action="auta.php" method="get">'; echo '<input type="hidden" name="action" value="post_edit">'; echo '<input type="hidden" name="auto_id" value="'.$a["auto_id"].'">'; echo '<td width="60">Marka</td>'; // tutaj dodamy select ze wszystkimi markami z tabeli marka echo '<td width="260"><select name="auto_marka_id">'; $r2 = mysql_query("SELECT * FROM marka") or die("error: auta.php - edit_auta"); while($a2 = mysql_fetch_array($r2)) { if($a2['marka_id']==$a1['auto_marka_id']) // tutaj sprawdzamy, czy dana marka w selekcie jest aktualnie przypisana do danego auta marka i jesli tak, to ta pozycja będzie domyślnie zaznaczona { echo '<option value="'.$a2['marka_id'].'" checked>'.a2['marka_nazwa'].'</option>'; } else { echo '<option value="'.$a2['marka_id'].'">'.a2['marka_nazwa'].'</option>'; } } echo '</select></td></tr>'; echo '<p align="center"><input type="submit" value="Akceptuj"></p>'; echo '</form>'; } ?>[/php:1:694cc8fbb3] 1. Dodałem tu listę rozwijalną, ze wszystkimi markami (domyślnie wybrana jest aktualna marka). 2. Chociaż na liście pokazuje się nazwa marki, to formularz przesyła dalej id_marki, więc update, który napisałeś powinien teraz już działać. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 03:48 |