Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przesyłanie poprawek rekordu i wyświetlanie rezultatu
Forum PHP.pl > Forum > Bazy danych > MySQL
Dopler
Mam problem o który nie wiem dobrze nawet jak zapytać.

mam formularz i bazę danych - pola input formularza mają nazwy

jedną z funkcji jest poprawianie danych w bazie. Dzieje się to tak, że pola input pobierają dane i wyświetlają, a potem są wysyłane niezależnie od tego czy są zmienione czy nie.

problem jest jednak taki że w tym samym pliku są również funkcje wyszukujące rekordy i gdy wysyłam poprawiony formularz to w efekcie dostaję frazę "pomyślnie auktualniono" ale również efekt wyszukiwania po wszystkich zmiennych.

PRZYKŁAD:

rekordy:
Jan Kowalski ur. 1770 wieś Czarnoty
Henryk Gustaw ur. 1440 wieś Pcim
i iinne

wyszukiwanie $nazwsko=Kowalski
Jan Kowalski ur. 1770 wieś Czarnoty

wyszukiwanie $imie=Jan
Jan Kowalski ur. 1770 wieś Czarnoty

edycja rekordu Jan Kowalski
wysyłka - wynik:

rekord pomyślnie auaktualniono
Jan Kowalski ur. 1770 wieś Czarnoty
- wyświetlenie wyniku szukania nazwiska
Jan Kowalski ur. 1770 wieś Czarnoty - wyświetlenie wyniku szukania nazwiska

Nie rozumiem dlaczego tak się dzieje. Funkcja wyszukiwania nazwiska powinny działać tylko jeśli w adresie jest ?nazwisko=kowalski a przy wysyłaniu poprawki nie ma
Jest na to jakaś rada ?
d3ut3r
Bez kodu to ciężko coś powiedzieć.
Dopler
po pół nocy grzebania w necie wpadłem na banalny pomysł jak to obejść
przy każdym wyszukiwaniu dodałem jednego ifa
if(!$action)
ale sądzę że poprawnie tego nie zrobiłem.

w skrócie przed włożeniem drugiego ifa
kod wyszukiwania
  1. if($nazwisko)
  2. {
  3. $getWord=mysql_query("SELECT nazwisko,imie, .... FROM tabela WHERE nazwisko LIKE '$nazwisko%' ORDER BY nazwisko", $db);
  4. if($getWordArray=mysql_fetch_array($getWord))
  5. {
  6. do
  7. {
  8. printf($getWordArray["imie"]);
  9. echo " ";
  10. printf($getWordArray["nazwisko"]);
  11. echo "<a href=\"$PHP_SELF?action=edit&id=";
  12. printf($getWordArray["id"]);
  13. echo "\">Edytuj</a>&nbsp; - &nbsp;";
  14. }
  15. while($getWordArray=mysql_fetch_array($getWord));
  16. }
  17. else
  18. {
  19. echo "<br>Brak takiego miejsca";
  20. }
  21. }


i kod edycji
  1. if($action=="edit")
  2. {
  3. $updateIt=mysql_query("UPDATE tabela SET nazwisko='$nazwisko', imie='$imie', .... WHERE id='$id'",$db);
  4. if($updateIt)
  5. {
  6. echo "<br><br>Informację: <i>$nazwisko $imie</i> pomyślnie uaktualniono<br><br>";
  7. }
  8. if(!$updateIt)
  9. {
  10. echo "Błšd w trakcie uaktualniania informacji: <i>$nazwisko $imie</i>";
  11. }
  12. if(!$nazwisko)
  13. {
  14. $getInfo=mysql_query("SELECT * FROM `tabela` WHERE id=$id",$db);
  15. if($theInfo=mysql_fetch_array($getInfo))
  16. {
  17. echo "<i>Nazwisko</i> ";
  18. echo "<input name=\"nazwisko\" type=\"text\" size=\"40\" value=\"";
  19. printf($theInfo["nazwisko"]);
  20. echo "\" maxlength=\"40\">";
  21. ........
  22. echo "<input name=\"action\" type=\"hidden\" value=\"edit\">
  23. <input name=\"id\" type=\"hidden\" value=\"$id\">
  24. <input type=\"submit\" value=\"Popraw\"> <input type=\"reset\" value=\"Anuluj\">
  25. </form>";
  26. }
  27. else
  28. {
  29. echo "Błąd";
  30. }
  31. }


(mogłem pominąć jakiś nawias przy skracaniu kodu)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.