Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem z edycją rekordów
Forum PHP.pl > Forum > Przedszkole
marcinl339
Witam!
Piszę właśnie taki skrypt, który ma za zadanie:
1) Z listy wybrać konkretny wpis w bazie danych;
2) W następnym etapie do formularza wczytać pola: Imię, Nick, E-Mail, Gadu-Gadu (do tego etapu jeszcze nie dotarłem)
3) Po zmianie wysłać zmienione pola do bazy danych (do tego etapu jeszcze nie dotarłem)

Dopiero zaczynam swoją przygodę z PHP, dlatego też prosiłbym o pomoc.
Pierwszy błąd na jaki się natknąłem, to taki, że jeżeli wywołam stronę z tym skryptem od razu wyświetla się "Wybrano nick". Czy istnieje możliwość, aby wyświetlało się to dopiero po wciśnięciu przycisku "Dalej"?

  1. $Polacz = mysql_connect('host', 'user', 'haslo');
  2. $WybierzBaze = mysql_select_db('nazwa-bazy', $Polacz);
  3. $Lista = mysql_query('SELECT * FROM team', $Polacz);
  4.  
  5. //Lista rozwijana
  6. echo "<form method='post'>";
  7. echo "<select name='lista'>";
  8. while ($ListaWyswietl = mysql_fetch_array($Lista))
  9. {
  10. echo "<option>".$ListaWyswietl['nick']."</option>";
  11. }
  12. echo "</select><br /><br />";
  13. echo "<input type='submit' value='Dalej' class='button' />";
  14. echo "</form>";
  15.  
  16. $nick = $_POST['lista'];
  17. $Polecenie = mysql_query("SELECT * FROM team WHERE nick='$nick'");
  18. echo "Wybrano <strong>$nick</strong>.<br /><br />";
  19.  
  20. mysql_close($Polacz);
nospor
Prosty warunek na isset($_POST['lista']) załatwi sprawę
Ulysess
musisz wrzucić w IF np zrób że to co chcesz aby wyświetlało po wejściu na stronę->
  1. if(empty($_GET['opcja'])
  2. {
  3. // tutaj treść po wejsciu na strone
  4. }
  5. else
  6. {
  7. // tutaj treść po wciśnięciu dalej
  8. }

Dalej musi być w formie linku/buttona w którym będzie się krył adres.php?opcja=1
marcinl339
Dzięki, już trochę mi pomogliście, tylko nie wiem w jaki sposób wstawić link do przycisku. Spróbowałem coś takiego, ale niestety nie działa. Ma ktoś jakiś pomysł?

  1. //Lista rozwijana
  2. if(empty($_GET['a']))
  3. {
  4. echo "<form method='post'>";
  5. echo "<select name='lista'>";
  6. while ($ListaWyswietl = mysql_fetch_array($Lista))
  7. {
  8. echo "<option>".$ListaWyswietl['nick']."</option>";
  9. }
  10. echo "</select><br /><br />";
  11. echo '<input type="submit" value="Dalej" class="button" onclick="window.location.href = \'\edit_user_skrypt.php?a=1\'\ />';
  12. echo "</form>";
  13. }
  14. elseif ($_GET['a'] == 1)
  15. {
  16. //Wyświetl nick
  17. $nick = $_POST['lista'];
  18. $Polecenie = mysql_query("SELECT * FROM team WHERE nick='$nick'");
  19. echo "Wybrano <strong>$nick</strong>.<br /><br />";
  20. }
  21.  
  22. mysql_close($Polacz);
  23. ?>
johnl
Po co sie bawić z tym GETem

  1. if(!isset($_POST['lista']))
  2. {
  3. echo "<form method='post'>";
  4. echo "<select name='lista'>";
  5. while ($ListaWyswietl = mysql_fetch_array($Lista))
  6. {
  7. echo "<option value=\"".$ListaWyswietl['nick']."\">".$ListaWyswietl['nick']."</option>";
  8. }
  9. echo "</select><br /><br />";
  10. echo '<input type="submit" value="Dalej" class="button" />';
  11. echo "</form>";
  12. }
  13. else
  14. {
  15. //Wyświetl nick
  16. $nick = $_POST['lista'];
  17. $Polecenie = mysql_query("SELECT * FROM team WHERE nick='$nick'");
  18. echo "Wybrano <strong>$nick</strong>.<br /><br />";
  19. }
  20.  
  21. mysql_close($Polacz);

marcinl339
Witam znowu smile.gif.
Dotarłem już do etapu edycji wpisu, wszystko ładnie się pobiera do formularza, tylko pokazuje się taki oto błąd i niestety wpis się chyba przez to nie aktualizuje:
Cytat
Notice: Undefined index: edytuj_imie in edit_user_skrypt.php on line 45

Notice: Undefined index: edytuj_nick in edit_user_skrypt.php on line 46

Notice: Undefined index: edytuj_email in edit_user_skrypt.php on line 47

Notice: Undefined index: edytuj_gg in edit_user_skrypt.php on line 48


  1. else
  2. {
  3. $nick = $_POST['lista'];
  4. $Polecenie = mysql_query("SELECT imie, nick, email, gg FROM team WHERE nick='$nick'");
  5.  
  6. //Wyświetlanie wybranego użytkownika
  7. echo "Wybrano <strong>$nick</strong>.<br /><br />";
  8.  
  9. //Pobieranie danych do formularza
  10. echo "<form method='post'><table>";
  11. while ($Edytuj = mysql_fetch_assoc($Polecenie))
  12. {
  13.  
  14. echo "<tr><td><span class='opis_form'>Imię: </span></td><td><input type='text' name='edytuj_imie' value='".$Edytuj['imie']."' class='form' /><br /></td></tr>";
  15. echo "<tr><td><span class='opis_form'>Nick: </span></td><td><input type='text' name='edytuj_nick' value='".$Edytuj['nick']."' class='form' /><br /></td></tr>";
  16. echo "<tr><td><span class='opis_form'>E-Mail: </span></td><td><input type='text' name='edytuj_email' value='".$Edytuj['email']."' class='form' /><br /></td></tr>";
  17. echo "<tr><td><span class='opis_form'>Gadu-Gadu: </span></td><td><input type='text' name='edytuj_gg' value='".$Edytuj['gg']."' class='form' /><br /></td></tr>";
  18. echo "<tr><td colspan='2' rowspan='2'><center><input type='submit' value='Zapisz' class='button' /></center></td></tr>";
  19.  
  20. //Zapisywanie danych
  21. $EdytujImie = $_POST['edytuj_imie'];
  22. $EdytujNick = $_POST['edytuj_nick'];
  23. $EdytujEmail = $_POST['edytuj_email'];
  24. $EdytujGG = $_POST['edytuj_gg'];
  25.  
  26. $Zapisz = mysql_query("UPDATE team SET imie='$EdytujImie' nick='$EdytujNick' email='$EdytujEmail' gg='$EdytujGG'");
  27. }
  28. }


Dobra już tamten problem nieaktualny, teraz mam kolejny... Wszystko teoretycznie jest już dobrze, ale mimo wszystko dane zmienione w formularzu się nie zapisują. Wie ktoś co robię nie tak? Oto cały kod:
  1. <?php
  2. require_once ("config.php");
  3. $Lista = mysql_query('SELECT * FROM team', $Polacz);
  4.  
  5. //Lista rozwijana, wybór użytkownika
  6. if(!isset($_POST['lista']))
  7. {
  8. echo "<form method='post'>";
  9. echo "<select name='lista'>";
  10. while ($ListaWyswietl = mysql_fetch_array($Lista))
  11. {
  12. echo "<option>".$ListaWyswietl['nick']."</option>";
  13. }
  14. echo "</select><br /><br />";
  15. echo "<input type='submit' value='Edytuj' class='button' />";
  16. echo "</form>";
  17. }
  18. else
  19. {
  20. $nick = $_POST['lista'];
  21.  
  22. //Zapisywanie danych
  23. $EdytujImie = isset($_POST['edytuj_imie']) ? $_POST['edytuj_imie'] : '';
  24. $EdytujNick = isset($_POST['edytuj_nick']) ? $_POST['edytuj_nick'] : '';
  25. $EdytujEmail = isset($_POST['edytuj_email']) ? $_POST['edytuj_email'] : '';
  26. $EdytujGG = isset($_POST['edytuj_gg']) ? $_POST['edytuj_gg'] : '';
  27.  
  28. $Zapisz = mysql_query("UPDATE team WHERE nick='$nick' SET imie='$EdytujImie' nick='$EdytujNick' email='$EdytujEmail' gg='$EdytujGG'");
  29.  
  30. $Polecenie = mysql_query("SELECT imie, nick, email, gg FROM team WHERE nick='$nick'");
  31.  
  32. //Wyświetlanie wybranego użytkownika
  33. echo "Wybrano <strong>$nick</strong>.<br /><br />";
  34.  
  35. //Pobieranie danych do formularza
  36. echo "<form method='post'><table>";
  37. while ($Edytuj = mysql_fetch_assoc($Polecenie))
  38. {
  39. echo "<tr><td><span class='opis_form'>Imię: </span></td><td><input type='text' name='edytuj_imie' value='".$Edytuj['imie']."' class='form' /><br /></td></tr>";
  40. echo "<tr><td><span class='opis_form'>Nick: </span></td><td><input type='text' name='edytuj_nick' value='".$Edytuj['nick']."' class='form' /><br /></td></tr>";
  41. echo "<tr><td><span class='opis_form'>E-Mail: </span></td><td><input type='text' name='edytuj_email' value='".$Edytuj['email']."' class='form' /><br /></td></tr>";
  42. echo "<tr><td><span class='opis_form'>Gadu-Gadu: </span></td><td><input type='text' name='edytuj_gg' value='".$Edytuj['gg']."' class='form' /><br /></td></tr>";
  43. echo "<tr><td colspan='2' rowspan='2'><center><input type='submit' value='Zapisz' class='button' /></center></td></tr>";
  44. }
  45. }
  46.  
  47. mysql_close($Polacz);
  48. ?>
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-2025 Invision Power Services, Inc.