Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mySQL] wywołanie rekordu w formularzu do edycji
gawar
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 26.10.2010

Ostrzeżenie: (0%)
-----


Witam mam pewien problem, mam utworzonych kilka tabel w bazie danych i chciałbym wyciągnąć z jednej z tabel rekord w formie daty do formularza edycji. Moje zapytanie wygląda tak:
  1. SELECT MAX(odnowienie) , id_miejsce
  2. FROM t_odnowienie
  3. WHERE id_miejsce = 'S01-R01-M02'
  4. GROUP BY id_miejsce

jeżeli chodzi o to zapytanie SQL to wynikiem jest "najmłodsza" data dla danego miejsca. Sprawdzałem w phpMyAdmin i wszytko działa tak jak tego oczekiwałem,
np mam wprowadzonych kilka dat (2010-12-10,2005-05-05,2015-12-20)dla id_miejsce = 'S01-R01-M02', po wykonaniu zapytania wyświetla mi się data "odnowienie" = 2015-12-20. i o to chodzi.

Problem pojawia się gdy chcę tą właśnie datę wczytać do formularza edycji, standardowo dane wczytuję taką metodą: (wycinek kodu)
  1. $wynik = mysql_query("SELECT MAX(odnowienie) , id_miejsce
  2. FROM t_odnowienie
  3. WHERE id_miejsce = 'S01-R01-M02'
  4. GROUP BY id_miejsce")
  5. if(mysql_num_rows($wynik) > 0) {
  6.  
  7. $r = mysql_fetch_assoc($wynik);
  8.  
  9. echo '<form action=index.php?go2=edit_all.php" method="post" >
  10. <table border="1">
  11. <tr>
  12. <td>Odnowienie do</td>
  13. <td><input type="text" name="odnowienie" id="odnowienie" value="'.$r['odnowienie'].'"></td>
  14. </tr>
  15. </table></form>';
  16. }
  17.  

i tu pojawia się problem:( bo pole jest po wykonaniu tego skryptu puste, a gdy zapytanie wygląda tak:
  1. SELECT odnowienie, id_miejsce FROM t_odnowienie WHERE id_miejsce ='S01-R01-M02'

to wtedy w formularzu edycji wczytana zostaje pierwsza z wprowadzonych dat czyli np 2010-12-10.
Dodam jeszcze że każde dodanie "odnowienia" dla jakiegoś "id_miejsca" wiąże się z nowym rekordem w tabeli i kolejnym numerem Autoincrement "id_odowienie".
Mam nadzieje że zbytnio nie zakręciłem i znajdzie się osoba która mi w tym pomoże:) z góry dziękuje!
Go to the top of the page
+Quote Post
mmica
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 20
Dołączył: 30.11.2010
Skąd: 127.0.0.1

Ostrzeżenie: (10%)
X----


Hey ;]

Moim zdaniem problem tkwi w tym, że Twoje zapytanie wygląda tak:
  1. SELECT MAX(odnowienie) , id_miejsce FROM t_odnowienie WHERE id_miejsce = 'S01-R01-M02' GROUP BY id_miejsce
i na wyjściu masz kolumny: "MAX(odnowienie)" oraz "id_miejsce", a gdy wybierasz dane z bazy odwołujesz się do nieistniejącej kolumny "odnowienie". Użyj słówka AS aby określić nazwę kolumny jako "odnowienie". Twoje zapytanie powinno wyglądać tak:
  1. SELECT MAX(odnowienie) AS odnowienie, id_miejsce FROM t_odnowienie WHERE id_miejsce = 'S01-R01-M02' GROUP BY id_miejsce

Pozdrawiam,
mmica


--------------------
"Imagination is more important than knowledge, because knowledge is limited." ~Albert Einstein
<?php $var = array('foo', 'bar'); ?>
Go to the top of the page
+Quote Post
gawar
post
Post #3





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 26.10.2010

Ostrzeżenie: (0%)
-----


dziękuje! pomogło
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 10:35