Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Aktualizowanie rekordów za pomocą formularza
Forum PHP.pl > Forum > Przedszkole
teez
Witam,


Mam aktualnie dwa formularze. W jednym wyświetlane zostają wszystkie wartości w formularzu, a on wysyła dane do edytuj.php gdzie mam :
  1. <?
  2. include_once("connection.php");
  3. if(isset($_GET['id'])) {
  4. $pytanie = mysql_query("SELECT * FROM sieci WHERE id = '".$_GET['id']."' ");
  5. $dane = mysql_fetch_assoc($pytanie);
  6.  
  7. if(empty($_GET['id']))
  8.  
  9. $nazwasieci = $_POST['nazwasieci'];
  10. $liczbaserwerow = $_POST['liczbaserwerow'];
  11. $link = $_POST['link'];
  12. $opis = $_POST['opis'];
  13. $logo = $_POST['logo'];
  14.  
  15. mysql_query("UPDATE sieci SET nazwasieci='".$nazwasieci."', liczbaserwerow='".$liczbaserwerow."', link='".$link."', opis='".$opis."', logo='".$logo."' WHERE id = '".$_GET['id']."' ");
  16.  
  17.  
  18.  
  19. }



  1. <FIELDSET>
  2. <div class=message>Witaj! Dzięki poniższemu formularzowi możesz dodać swoją sieć do naszej bazy. Jeżeli chcesz wrócić <a href="index.php">KLIKNIJ</a></div>
  3. <form method="POST" action="edytuj.php">
  4. Nazwa sieci:</br> <input type="text" value="<? print ($row["nazwasieci"]) ?>" class="sql_form" size="30" name="nazwasieci"><br>
  5. Liczba serwerów:</br> <input type="text" value="<? print ($row["liczbaserwerow"]) ?>" class="sql_form" size="30" name="liczbaserwerow"><br>
  6. Link:</br> <input type="text" size="30" value="<? print ($row["link"]) ?>" class="sql_form" name="link"><br>
  7. Opis:</br> <input type="text" size="30" value="<? print ($row["opis"]) ?>" class="sql_form" name="opis"><br>
  8. logo:</br> <input type="text" size="30" value="<? print ($row["logo"]) ?>" class="sql_form" name="logo"><br></br>
  9. <input type="submit" class="input_submit alt" value="Dodaj">
  10. </form> </FIELDSET>




Niestety, nic się nie dzieje, rekordy nie aktualizują się. Co jest tego powodem?
Gość
Brak id
teez
Gdzie? W adresie edytuj.php, w zapytaniu?

Czy takie zapytanie jest poprawne ?
  1. $nazwasieci = $_POST['nazwasieci'];
  2. $liczbaserwerow = $_POST['liczbaserwerow'];
  3. $link = $_POST['link'];
  4. $opis = $_POST['opis'];
  5. $logo = $_POST['logo'];
  6. $id = $_GET['id'];
  7. $sql = "UPDATE `test`.`sieci` SET `id` = "'.$id.'", `nazwasieci` = "'.$nazwasieci.'", `liczbaserwerow` = "'.$liczbaserwerow.'", `link` = "'.$link.'", `opis` = "'.$opis.'" WHERE `sieci`.`id` = "'.$id.'";";
  8. mysql_query($sql);


Oraz

  1. <form method="POST" action="edytuj.php?id=<? echo ' '.$_GET['id'].''; ?>">
przemo191
A sprawdzałeś czy zmienna id zawiera poprawne dane?questionmark.gif
teez
Nie rozumiem..

Zmienna ID ( GET ID ) pobiera ID, które jest w adresie np. adres.php?id=5, i to jest również ID w bazie danych.

Podczas aktualizowania rekordu, sprawdza WHERE $ID czyli na ktorej stronie jest adres to ten rekord aktualizuje ( Tak mi się wydaje ).

Tylko czy..

W

  1. <form method="POST" action="edytuj.php?id=<? echo ' '.$_GET['id'].''; ?>">


Tak moze być? W edytuj.php mam :

  1. <?
  2. include_once("connection.php");
  3. if(isset($_GET['id'])) {
  4. $pytanie = mysql_query("SELECT * FROM sieci WHERE id = '".$_GET['id']."' ");
  5. $dane = mysql_fetch_assoc($pytanie); }
  6.  
  7. if(empty($_GET['id']))
  8.  
  9. $query = "SELECT * FROM sieci WHERE id = '".$_GET['id']."' ";
  10. $result = mysql_query($query);
  11. $num_results = mysql_num_rows($result);
  12. $row = mysql_fetch_array($result);
  13. echo '
  14.  
  15.  
  16.  
  17. ';
  18. $nazwasieci = $_POST['nazwasieci'];
  19. $liczbaserwerow = $_POST['liczbaserwerow'];
  20. $link = $_POST['link'];
  21. $opis = $_POST['opis'];
  22. $logo = $_POST['logo'];
  23. $id = $_GET['id'];
  24. $sql = "UPDATE `test`.`sieci` SET `id` = "'.$id.'", `nazwasieci` = "'.$nazwasieci.'", `liczbaserwerow` = "'.$liczbaserwerow.'", `link` = "'.$link.'", `opis` = "'.$opis.'" WHERE `sieci`.`id` = "'.$id.'"";
  25. mysql_query($sql);
  26.  
  27. ?>
  28.  
przemo191
A próbowałeś tak?

  1. <form method="POST" action="edytuj.php?id=<? echo $_GET['id']; ?>">


edit
Bo nie wiem po co Ci ta spacja ' '. przed $_GET
teez
Zawsze dodaje po echo ' cos '; tongue.gif

Ok, zmieniłem zapytanie na

  1. $sql = "UPDATE `sieci` SET `id` = '$id', `nazwasieci` = '$nazwasieci', `liczbaserwerow` = '$liczbaserwerow', `link` = '$link', `opis` = '$opis' WHERE `id` = '$id'";


I śmiga. Serdeczne dzięki.

//Uf to już chyba mój 10 temat w ciągu 2 dni i na każdy dostałem odpowiedź w ciągu godziny? Super. smile.gif
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.