Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prośba o zlokalizowanie 2 błędów
Forum PHP.pl > Forum > Przedszkole
artur81
Witam szanownych forumowiczów. Mam prośbe o zlokalizowanie 2 błędów w poniższym skrypcie.
1. Skrypt nie chce mi edytowac danych
2. Jak kasuję dane i pozniej dodam nowe to dostaja one numer wyzszy o jeden od ostatniej.
Dokladnie tak, ze mam 5 rekordow (o numerach od 1 do 5) , skasuje rekord numer 5 , dodam nowy i on otrzymuje numer 6 ( a powinien 5 bo piąty wczesniej
skasowalem).

  1. <?php
  2. mysql_connect (&#092;"localhost\", \"root\", \"\") or
  3. die (&#092;"Nie można nawiązać połączenia z MySql\");
  4. mysql_select_db (&#092;"artur81\") or
  5. die (&#092;"Nie można nawiązać połącznia z bazą artur81\");
  6.  
  7. if ($akcja == 'dodaj') {  // dodawanie wiersza do tabeli
  8. if ($pyt && $odp1 && $odp2 && $odp3 && $odppop) {
  9. $zapytanie = &#092;"INSERT INTO pytania (nr, pyt, odp1, odp2, odp3, odppop)\";
  10. $zapytanie .= &#092;"VALUES ('', '$pyt' , '$odp1', '$odp2', '$odp3', '$odppop');\";
  11. $wynik = mysql_query ($zapytanie);
  12. }
  13. } elseif ($akcja == 'popraw') { // poprawianie
  14.  if ($pyt && $odp1 && $odp2 && $odp3 && $odppop) {
  15. $zapytanie = &#092;"UPDATE pytania SET (pyt='$pyt', odp1='$odp1', odp2='$odp2', odp3='$odp3', odppop='$odppop' WHERE nr='$nr';)\";
  16. $wynik = mysql_query ($zapytanie);
  17.  }
  18. } elseif ($akcja == 'edytuj') {
  19. $zapytanie = &#092;"SELECT * FROM pytania WHERE nr='$nr';\";
  20. $wynik = mysql_query ($zapytanie);
  21. $rekord = mysql_fetch_array ($wynik);
  22. $nr = $rekord[0];
  23. $pyt= $rekord[1];
  24. $odp1 = $rekord[2];
  25. $odp2 = $rekord[3];
  26. $odp3 = $rekord[4];
  27. $odppop = $rekord[5];
  28. print '<form method = \"post\"> Poprawa rekordu:';
  29. print '<input type = \"hidden\" name=\"akcja\" value=\"popraw\">';
  30. print '<input type = \"hidden\" name=\"nr\" value=\"'.$nr.'\"><table>';
  31. print '<tr><td>Pytanie:</td><td><input type = \"text\" name=\"pyt\" value=\"'.$pyt.'\"></td></tr>';
  32. print '<tr><td>Odpowiedź pierwsza:</td><td><input type = \"text\" name=\"odp1\" value=\"'.$odp1.'\"></td></tr>';
  33. print '<tr><td>Odpowiedź druga:</td><td><input type = \"text\" name=\"odp2\" value=\"'.$odp2.'\"></td></tr>';
  34. print '<tr><td>Odpowiedź trzecia:</td><td><input type = \"text\" name=\"odp3\" value=\"'.$odp3.'\"></td></tr>';
  35. print '<tr><td>Odpowiedź poprawna:</td><td><input type = \"text\" name=\"odppop\" value=\"'.$odppop.'\"></td></tr>';
  36. print '</table><input type=\"submit\" value=\"Popraw dane\"></form>';
  37. }
  38. elseif ($akcja == 'skasuj') {
  39. $wynik =mysql_query (&#092;"DELETE FROM pytania WHERE nr='$nr';\");
  40. }
  41.  
  42.  
  43. $wynik = mysql_query (&#092;"SELECT * FROM pytania;\");
  44. print &#092;"<table cellpadding=5 cellspacing=5 border=0>\";
  45. print &#092;"<tr><td><b>Numer</b></td><td align = center><b>Pytanie</b></td>\";
  46. print &#092;"<td align = center><b>Odpowiedź 1</b></td><td align = center><b>Odpowiedź 2</b></td>\";
  47. print &#092;"<td align = center><b>Odpowiedź 3</b></td><td align = center><b>Odpowiedź poprawna</b></td></tr>n\";
  48.  
  49. while ($rekord = mysql_fetch_array ($wynik)) {
  50. $nr = $rekord[0];
  51. $pyt = $rekord[1];
  52. $odp1 = $rekord[2];
  53. $odp2 = $rekord[3];
  54. $odp3 = $rekord[4];
  55. $odppop = $rekord[5];
  56.  
  57. print &#092;"<tr><td align = center>$nr</td><td>$pyt</td><td>$odp1</td><td>$odp2</td><td>$odp3</td><td>$odppop</td><td>\";
  58. print &#092;"<A HREF = \"admin.php?akcja=skasuj&nr=$nr\">Skasuj</A></td><td>\";
  59. print &#092;"<A HREF = \"admin.php?akcja=edytuj&nr=$nr\">Edytuj</A></td></tr>n\";
  60. }
  61. print &#092;"</table>\";
  62. print '<form method=\"post\">Nowy rekord:';
  63. print '<input type = \"hidden\" name=\"akcja\" value=\"dodaj\"><table>';
  64. print '<tr><td>Pytanie</td><td><input type = \"text\" name=\"pyt\"></td></tr>';
  65. print '<tr><td>Odpowiedź 1</td><td><input type = \"text\" name=\"odp1\"></td></tr>';
  66. print '<tr><td>Odpowiedź 2</td><td><input type = \"text\" name=\"odp2\"></td></tr>';
  67. print '<tr><td>Odpowiedź 3</td><td><input type = \"text\" name=\"odp3\"></td></tr>';
  68. print '<tr><td>Odpowiedź poprawna</td><td><input type = \"text\" name=\"odppop\"></td></tr>';
  69. print '</table><input type=\"submit\" value=\"Dodaj\"></form>';
  70. ?>



  1. # phpMyAdmin MySQL-Dump
  2. #
  3. # Host: localhost Database : artur81
  4.  
  5. # --------------------------------------------------------
  6. #
  7. # Table structure for table 'pytania'
  8. #
  9.  
  10. CREATE TABLE pytania (
  11. nr int(11) NOT NULL AUTO_INCREMENT,
  12. pyt text NOT NULL,
  13. odp1 text NOT NULL,
  14. odp2 text NOT NULL,
  15. odp3 text NOT NULL,
  16. odppop text NOT NULL,
  17. PRIMARY KEY (nr),
  18. KEY nr (nr),
  19. UNIQUE nr_2 (nr)
  20. );
  21.  
  22. #
  23. # Dumping data for table 'pytania'
  24. #
  25.  
  26. INSERT INTO pytania VALUES ( '1', 'Kiedy wybuchło powstanie listopadowe ?', 'W nocy z 29.11.1830 na 30.11.1830.', 'W nocy z 28.11.1830 na 29.11.1830.', 'W nocy z 27.11.1830 na 28.11.1830.', 'W nocy z 29.11.1830 na 30.11.1830.');
  27. INSERT INTO pytania VALUES ( '2', 'Kto w 1815 r. założył Tygodnik Wileński ? ', 'Michał Radziwiłł', 'Jan Skrzynecki', 'Joachim Lelewel', 'Joachim Lelewel');
  28. INSERT INTO pytania VALUES ( '3', 'Kto był przywódcą spisku podchorążych , który doprowadził do wybuchu powstania ?', 'Józef Chłopicki', 'Piotr Wysocki', 'Ignacy Prądzyński', 'Piotr Wysocki');
  29. INSERT INTO pytania VALUES ( '4', 'Kiedy miała miejscie wygrana przez Polaków potyczka pod Stoczkiem??', '25 lutego 1831', '15 sierpnia 1831', '14 lutego 1831 ', '14 lutego 1831 ');
  30. INSERT INTO pytania VALUES ( '5', 'Jak miał na imię ostatni wódz naczelny powstania listopadowego ?', 'Maciej', 'Józef', 'Iwan', 'Maciej');
  31. INSERT INTO pytania VALUES ( '13', '3', '4', '5', '6', '7');
phpion.thc.net.pl
Co do 1 bledu. Zmien zapytanie w akcji 'popraw' na:
  1. <?php
  2. $zapytanie = &#092;"UPDATE pytania SET pyt='$pyt', odp1='$odp1', odp2='$odp2', odp3='$odp3', odppop='$odppop' WHERE nr='$nr'\";
  3. ?>

i powinno byc ok. Natomiast sprawa nr 2 - to nie jest blad :) Tak ma byc :).
artur81
Poprawiłem ale niestety pojawia sie dalej ten sam błąd sad.gif , a swoją drogą dlaczego w punkcie drugim tak musi być questionmark.gif Nie zauważyłem żeby ta zmienna zostawała gdzieś zapamiętywana.
orson
witam ...

pole auto_increment zwieksza zawsze o 1 ... a dlaczego tak ma byc questionmark.gif bo np. jak wywalisz jakis dokument z bazy i nastapiloby przetasowanie id to wszystkie linki poza strona przestana dzialac ... tak samo z produktami w sklepie, userami i innymi ... tak ma byc ... jezeli chcesz sie tego pozbyc to napisz wlasna funkcje ktora bedzie przetasowywala id ...

pozdrawiam
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.