![]() |
![]() |
![]()
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%) ![]() ![]() |
Po usunięciu błędów to zapytanie wygląda tak:
[sql:1:9b79a8deed]UPDATE auta SET auto_id = $auto_id, auto_marka_id = $auto_marka_id WHERE auto_id = $auto_id[/sql:1:9b79a8deed] ... ale jest bezsensowne w tym wypadku, bo po co wstawiać w pole auto_id zmienną $auto_id, skoro w myśl warunku WHERE obie te wartości są sobie równe dla tego wiersza. Więc nie wiem, o co Ci chodzi i sprecyzuj, co ma robić to zapytanie. Albo dla danego wiersza update'uj tylko auto_marka_id: [sql:1:9b79a8deed]UPDATE auta SET auto_marka_id = $auto_marka_id WHERE auto_id = $auto_id[/sql:1:9b79a8deed] Albo może chodziło Ci o insert, a nie update (czyli wstawienie nowego wiersza): [sql:1:9b79a8deed]insert into auta ( auto_id, auto_marka_id ) values ( $auto_id, $auto_marka_id )[/sql:1:9b79a8deed] Ale opisz może dokładniej, co dane zapytanie ma robić, bo tu tylko tak zgaduję, o co może Ci chodzić. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 14:45 |