Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP] Edycja pól w bazie za pomocą formularza
Forum PHP.pl > Forum > Przedszkole
kunegunda
Po wielu próbach udało mi się zrobić bazę danych do której wprowadzamy dane za pomocą formularza i teraz chciałbym za pomocą nowego formularza (w specjalnym panelu) edytować te dane. Ale niestety kod, które zamieściłem poniżej mi nie działają, o wprowadzeniu nowej nazwy do pola w formularzu nic się nie dzieje ;/ Mógłby mi ktoś powiedzieć co zrobiłem źle?


Plik - baza2.php:
  1. <?php
  2. $n=$_POST['osoba'];
  3. $IP=$_SERVER['REMOTE_ADDR'];
  4. $t=$_POST['tresc'];
  5. $email=$_POST['email'];
  6. $DATA= date('Y-m-d');
  7.  
  8.  
  9.  
  10. $baza=mysql_connect("xxxxxxxl","xxxxxxx","xxxxxxx");
  11. mysql_select_db(xxxxxxx);
  12.  
  13.  
  14. mysql_query("insert into OSOBY VALUES(null,'$n', '$IP','$t','$email','$DATA');");
  15.  
  16. $wynik=mysql_query("select * from OSOBY");
  17.  
  18. echo "<table border=2>";
  19. echo "<td><b>LP.</b></td><td><b>Nick</b></td><td><b>IP</b></td><td><b>Tresc</b></td><td><b>Email</b></td><td><b>Data</b></td>";
  20.  
  21.  
  22.  
  23. $wynik3=mysql_query("select * from OSOBY");
  24. echo('<form name="LP" method="post" action="2.html">');
  25. while ($row=mysql_fetch_array($wynik3))
  26. echo('<input type="submit" name="LP" value="'.$row['LP'].'">');
  27. echo('</form>');
  28.  
  29. while($wartosc=mysql_fetch_row($wynik))
  30. {
  31.  
  32. echo "<tr><td>".$wartosc[0]."</td>";
  33. echo "<td>".$wartosc[1]."</td>";
  34. echo "<td>".$wartosc[2]."</td>";
  35. echo "<td>".$wartosc[3]."</td>";
  36. echo "<td>".$wartosc[4]."</td>";
  37. echo "<td>".$wartosc[5]."</td></tr>";
  38. //echo "<td>".$wynik."</td></tr>";
  39.  
  40. }
  41. echo "<table/>";
  42. echo "<br></br>";
  43. mysql_close($connect);
  44. ?>


Plik - 2.html:
  1. <form action="updated.php" method="post">
  2. <input type="hidden" name="ud_LP" value="<? echo $LP; ?>">
  3. Osoba: <input type="text" name="ud_osoba" value="<? echo $osoba; ?>"><br>
  4.  
  5. <input type="Submit" value="Aktualizuj">
  6. </form>


Plik - updated.php:
  1. <?php
  2. $baza=mysql_connect("xxxxxxx","xxxxxxx","xxxxxxx");
  3. mysql_select_db(xxxxxxx);
  4.  
  5. echo($_POST['LP']);
  6. $n=$_POST['osoba'];
  7.  
  8.  
  9. $query=('SELECT * FROM OSOBY WHERE LP='.$_POST['LP']);
  10. $result=mysql_query($query);
  11. $num=mysql_numrows($result);
  12.  
  13. $i=0;
  14. while ($i < $num) {
  15. $n=mysql_result($result,$i,$n);
  16.  
  17. ++$i;
  18. }
  19. $ud_LP=$_POST['ud_LP'];
  20. $ud_osoba=$_POST['ud_osoba'];
  21.  
  22.  
  23. $query = "UPDATE OSOBY SET osoba = '$ud_osoba' WHERE LP = '$ud_LP'";
  24.  
  25.  
  26. $baza=mysql_connect("xxxxxxx","xxxxxxx","xxxxxxx");
  27. mysql_select_db(xxxxxxx);
  28.  
  29. $query="UPDATE OSOBY SET osoba='$ud_osoba', WHERE LP='$ud_LP'";
  30. mysql_query($query);
  31. echo "Rekord zaktualizowany";
  32.  
  33.  
  34. $wynik=mysql_query("select * from OSOBY");
  35.  
  36. echo "<table border=2>";
  37. echo "<td><b>LP.</b></td><td><b>Nick</b></td><td><b>IP</b></td><td><b>Tresc</b></td><td><b>Email</b></td><td><b>Data</b></td>";
  38.  
  39.  
  40. while($wartosc=mysql_fetch_row($wynik))
  41. {
  42.  
  43. echo "<tr><td>".$wartosc[0]."</td>";
  44. echo "<td>".$wartosc[1]."</td>";
  45. echo "<td>".$wartosc[2]."</td>";
  46. echo "<td>".$wartosc[3]."</td>";
  47. echo "<td>".$wartosc[4]."</td>";
  48. echo "<td>".$wartosc[5]."</td></tr>";
  49. //echo "<td>".$wynik."</td></tr>";
  50.  
  51. }
  52. echo "<table/>";
  53. echo "<br></br>";
  54. mysql_close($connect);
  55.  
  56.  
  57. ?>
korro
Mogę tylko zgadywać, bo nie podałeś jaki komunikat otrzymujesz, ale spróbuję.
  1. mysql_query("insert into OSOBY VALUES(null,'$n', '$IP','$t','$email','$DATA');");

w tej linijce, w pierwszym polu, tam gdzie jest null, prawdopodobnie masz autoincrement.
zmień to na coś takiego:
  1. mysql_query("insert into OSOBY(kolumna2, kolumna3, kolumna4, kolumna5, kolumna6) VALUES('$n', '$IP','$t','$email','$DATA');");
kunegunda
Cytat(korro @ 28.11.2009, 18:48:55 ) *
Mogę tylko zgadywać, bo nie podałeś jaki komunikat otrzymujesz, ale spróbuję.
  1. mysql_query("insert into OSOBY VALUES(null,'$n', '$IP','$t','$email','$DATA');");

w tej linijce, w pierwszym polu, tam gdzie jest null, prawdopodobnie masz autoincrement.
zmień to na coś takiego:
  1. mysql_query("insert into OSOBY(kolumna2, kolumna3, kolumna4, kolumna5, kolumna6) VALUES('$n', '$IP','$t','$email','$DATA');");


Zmieniłem i dalej nic, tzn. tabela się wyświetla ale po edycji rekord się nie zmienia.

Kody błędów:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /var/www/sites/yoyo.pl/m/a/nazwa/mod/updated.php on line 11

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /var/www/sites/yoyo.pl/m/a/nazwa/mod/updated.php on line 60
thek
Zrozum więc co błędy oznaczają. Pierwszy. Zła nazwa funkcji. Zgubiłeś _ w niej. A drugi... Skoro brak argumentu to znaczy, że nie ma nawet domyślnego połączenia z bazą. A to znaczy, że się nawet z nią nie połączyło najwidoczniej. Sprawdź czy łączysz z nią, bo mam wrażenie, że nie.
Inna sprawa, że masz zapytanie do aktualizacji błędne.
  1. $query="UPDATE OSOBY SET osoba='$ud_osoba', WHERE LP='$ud_LP'";
Co robi przecinek przed WHERE?
No i po co Ci dwa mysql_connect?
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.