Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Wyświetlanie rekordów w formularzu
Posio
post 19.08.2011, 17:52:34
Post #1





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


Siemka!

Musze zrobić tak, aby dana z tabeli wyświetlała mi się w formularzu. A mianowicie, mam w bazie danych nazwy odbiorców (20 osócool.gif i chciał bym zrobić edycję danych tych odbiorców. Widze to tak:

Formularz wyboru :

  1. <form action="panel.php?odbiorcy" method="post">
  2. <select name="w_odbiorcy">
  3. <option>Odbiorca 1</option>
  4. <option>Odbiorca 2</option>
  5. */i tak dalej.../*
  6. </select>
  7. </form><input type="submit" name="z_odbiorce" value="Zatwierdź" /></center>


Po kliknięciu przycisku zatwierdź, wyskakuje mi następny formularz z uzupełnionymi danymi użytkownika, którego wybrałem. Mam koncepcję, lecz nie wiem jak się za to zabrać. Dopiero zaczynam walkę z PHP i MYSQL więc proszę o pomoc. Z góry dzięki.
Go to the top of the page
+Quote Post
mortus
post 19.08.2011, 18:50:49
Post #2





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Najpierw zapytaniem
  1. SELECT id, nazwa FROM odbiorcy

pobierasz id i nazwę wszystkich odbiorców. Następnie w pętli odczytujesz wiersze i uzupełniasz pola option:
  1. $select = '<select name="w_odbiorcy">';
  2. while($wiersz = mysql_fetch_assoc($wyniki)) {
  3. $select .= '<option value="'.$wiersz['id'].'">'.$wiersz['nazwa'].'</option>';
  4. }
  5. $select .= '</select>';
  6. // no i wyświetlamy listę rozwijaną
  7. echo $select;

Po wybraniu odbiorcy i naciśnięciu przycisku Zatwierdź w tablicy $_POST['w_odbiorcy'] będziemy mieć id odbiorcy. Teraz możemy pobrać jego dane
  1. $sql = 'SELECT * FROM odbiorcy WHERE id = '.$_POST['w_odbiorcy'];

Mamy już wszystkie dane odbiorcy, tworzymy formularz, gdzie id jest polem typu hidden, a pozostałe pola mogą być typu tekstowego. Wartości (atrybut value) uzupełniamy danymi z bazy. Po zatwierdzeniu formularza wykonujemy aktualizację (dane pobieramy jak poprzednio z tablicy $_POST i zapisujemy do bazy danych za pomocą poniższego zapytania).
  1. UPDATE odbiorcy SET name = $_POST['name'], ... WHERE id = $_POST['id']

W zarysie tak mniej więcej ma to wyglądać. Spróbuj na początek utworzyć pierwszy formularz, a później się zobaczy.
Mogą Ci się przydać: mysql_connect(), mysql_select_db(), mysql_query(), mysql_num_rows(), mysql_fetch_assoc(). Polecam zapoznać się z tymi funkcjami i z przykładami umieszczonymi na stronach, do których prowadzą odnośniki.
Go to the top of the page
+Quote Post
Posio
post 19.08.2011, 19:40:01
Post #3





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


ogarnąłem to bez problemu, troche krótszym i latwiejszym sposobem bez zabawy z ID ;D (chyba mialem jakąś zaćmę, bo rozwiązanie było banalne) Teraz mam problem zusuwaniem rekordów z bazy danych. Mój kod wygląda tak:

  1.  
  2.  
  3. ..........
  4. <input type="submit" name="delete" disabled="disabled" value="Usuń odbiorcę" />
  5. ..........
  6.  
  7.  
  8.  
  9. if(isset($_POST['delete'])) {
  10. $sq2 = "DELETE FROM `odbiorcy` WHERE `nazwa_odbiorcy`='$odbiorca'";
  11. $result2 = mysql_query($sq2);
  12. header('Refresh: 1; panel.php?odbiorcy');
  13. }
  14.  

i coś mi tu nie działa, ale nie wiem co, po prostu nie usuwa tego odbiorcy. (Nic sie nie dzieje)

Dodam że funkcja mysql_query zwraca mi wartość TRUE

Ten post edytował Posio 19.08.2011, 19:45:05
Go to the top of the page
+Quote Post
nospor
post 19.08.2011, 19:49:48
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to warunek nie jest spełniony. Czy tak cięzko sprawdzić, czy wszystkie dane/zmiennej się zgadzają?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Posio
post 19.08.2011, 19:54:28
Post #5





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


ehhh... wszystko sie zgadza. W zapytaniu jest tylko jedna zmienna, która działa prawidłowo... Nie wiem co może być jeszcze nie tak ? tabela tak samo...
Go to the top of the page
+Quote Post
nospor
post 19.08.2011, 19:55:20
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jakoś ci nie wierzę na słowo.

echo $sql2;
co zwraca?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Posio
post 19.08.2011, 20:00:23
Post #7





Grupa: Zarejestrowani
Postów: 417
Pomógł: 44
Dołączył: 23.06.2011

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


  1.  
  2. echo $sq2;


zwraca mi tekst:

DELETE FROM `odbiorcy` WHERE `nazwa_odbiorcy`=''
Go to the top of the page
+Quote Post
nospor
post 19.08.2011, 20:36:53
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Brak słów :/

Zadałem ci proste polecenie: sprawdź zmienne. Na co ty mi odpisujesz: wszystko się zgadza.

Z racji, że ci nie wierze karze ci zrobić echo $sql. Ty pokazujesz wynik tego prostego kodu i widać jak wół ze zmienna odbiorcy jednak się nie zgadza

zamykam
Gdy przemyślisz sprawę i zaprzestaniesz kłamać w żywe oczy zapraszam na PW. Forum to nie zabawa w kotka i myszkę.

edit: temat otwieram.
Autora wątku proszę o zapoznanie się z tematem:
Temat: Jak poprawnie zada pytanie
i zastosowanie do podanych tam wskazówek, między innymi wyświetlania wszystkich błędów i sprawdzania zmiennych


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 14.07.2025 - 04:23