Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem
Forum PHP.pl > Forum > Przedszkole
Merkury
Witam.
Jestem tu nowy i narazie dopiero zaczynam swoją przygodę z php.
Ale przejdźmy do rzeczy.
Napisałem skrypt książki telefonicznej, ale pojawił się pewien problem.
Za nic w świecie zmiany w rekordach, które wykonam opcją 'edytuj' z poziomu strony nie chcą się zapisać.
Oto skrypt:
  1. <html>
  2. <head>
  3. <meta name=\"generator\" content=\"WebSite PRO 4.3\" />
  4.   <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\" />
  5.   <title>Książka Telefoniczna</title>
  6. </head>
  7. <body>
  8. <? // Odczyt ze SQLa składa się z połączenia z bazą,
  9.   // wybrania bazy, zadania pytania SQL i przetworzenia wyników.
  10.   
  11. mysql_connect (&#092;"localhost\", \"root\", \"\") or
  12.   die (&#092;"Nie można połączyć się z bazą SQL\");
  13. mysql_select_db (&#092;"php\") or
  14.   die (&#092;"Nie można połączyć się z wybraną bazą danych\");
  15.  
  16. if ($co == 'dodaj') { // dodawanie rekordu
  17.   if ($imie && $nazwisko && $telefon) {
  18.     $query = &#092;"INSERT INTO ksiazka (nr, imie, nazwisko, telefon)\";
  19.     $query .= &#092;"VALUES ('', '$imie', '$nazwisko', '$telefon');\";
  20.     $wynik = mysql_query ($query);
  21.   }
  22. } elseif ($co == 'popraw') { // poprawianie rekordu
  23.   if ($imie && $nazwisko && $telefon) {
  24.     $query = &#092;"UPDATE ksiazka SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon' WHERE nr='$id';\";
  25.     $wynik = mysql_query ($query);
  26.   }
  27. } elseif ($co == 'edytuj') { // przygotowanie do poprawek
  28.    $query = &#092;"SELECT * FROM ksiazka WHERE nr='$id';\";
  29.    $wynik = mysql_query ($query);
  30.    $rekord = mysql_fetch_array ($wynik);
  31.    $id = $rekord[0];
  32.    $imie = $rekord[1];
  33.    $nazwisko = $rekord[2];
  34.    $numer = $rekord[3];
  35.    print '<from method=\"post\">Poprawa rekordu:';
  36.    print '<input type=\"hidden\" name=\"co\" value=\"popraw\">';
  37.    print '<input type=\"hidden\" name=\"id\" value\"'.$id.'\">';
  38.    print '<table>';
  39.    print '<tr><td>Imię:</td><td><input type=\"text\" name=\"imie\" value=\"'.$imie.'\"></td></tr>';
  40.    print '<tr><td>Nazwisko:</td><td><input type=\"text\" name=\"nazwisko\" value=\"'.$nazwisko.'\"></td></tr>';
  41.    print '<tr><td>Telefon:</td><td><input type=\"text\" name=\"telefon\" value=\"'.$telefon.'\"></td></tr>';
  42.    print '</table>';
  43.    print '<input type=\"submit\" value=\"Zapisz\">';
  44. } elseif ($co == 'skasuj') { // kasowanie rekordu
  45.   $wynik = mysql_query
  46.        (&#092;"DELETE FROM ksiazka WHERE nr = '$id';\");
  47. }
  48.  
  49. $wynik = mysql_query (&#092;"SELECT * FROM ksiazka;\") or die (\"Błąd w zapytaniu\");
  50.  
  51. print &#092;"<table cellpadding=5 border=1>\";
  52. print &#092;"<tr><td><b>Imię</b></td><td><b>Nazwisko</b></td>\";
  53. print &#092;"<td><b>Telefon</b></td></tr>n\";
  54.  
  55. while ($rekord = mysql_fetch_array ($wynik)) {
  56.   $id = $rekord[0];
  57.   $imie = $rekord[1];
  58.   $nazwisko = $rekord[2];
  59.   $telefon = $rekord[3];
  60.  
  61.   print &#092;"<br><tr><td>$imie</td><td>$nazwisko</td><td>$telefon</td><td>\";
  62.   print &#092;"<a href=\"index.php?co=edytuj&id=$id\">edytuj</a></td><td>\";
  63.   print &#092;"<a href=\"index.php?co=skasuj&id=$id\">skasuj</a></td></tr>n\";
  64. }
  65. print &#092;"</table>\";
  66. print '<form method=\"post\">Nowy wpis:';
  67. print '<input type=\"hidden\" name=\"co\" value=\"dodaj\"><table>';
  68. print '<tr><td>Imię:</td><td><input type=\"text\" name=\"imie\"></td></tr>';
  69. print '<tr><td>Nazwisko:</td><td><input type=\"text\" name=\"nazwisko\"></td></tr>';
  70. print '<tr><td>Telefon:</td><td><input type=\"text\" name=\"telefon\"></td></tr>';
  71. print '</table>';
  72. print '<input type=\"submit\" value=\"Dodaj\"></form>';
  73. ?>
  74. </body>
  75. </html>

Będę wdzięczny za wskazanie mi miejsca z błędem oraz za ewentualną pomoc w poprawianiu skryptu.
Pozdrawiam.
Dabroz
1. Globale
2. Podaj błąd SQL
[e]
3. A po co kończysz instukcje SQL średnikami skoro są to pojedyńcze wywołania?
Merkury
Nie ma błędu SQL. Poprostu mogę sobie klikać przycisk 'Zapisz' ale nic się nie dzieje.

BTW
Mógłbyś używać trochę innych pojęć. Bo te nie są dla mnie zbyt zrozumiałe
(patrz -> globale) sad.gif
invx
w tym
  1. <?php
  2. <from method=&#092;"post\">
  3. ?>


dodaj
  1. <?php
  2. action=&#092;"nazwa_strony.php\"
  3. ?>

w tym wypadku te strony ktura wkleiles.

@Dabroz lepiej dac srednik zadurzo, niz srednik za malo biggrin.gif
rogrog
Cytat(invx @ 2004-08-07 20:15:31)
@Dabroz lepiej dac srednik zadurzo, niz srednik za malo biggrin.gif

no nie... tu się nie zgodzę, RTFM...

Cytat
Notatka: Zapytanie nie powinno kończyć się znakiem średnika.


z własnego doświadczenia:
u mnie to stanowiło problem - na localu wszystko chodziło ze średnikami, ale po wrzuceniu na serwer (inny config mysqla, inna wersja php itp. ) były błędy
Dabroz
Cytat(Merkury @ 2004-08-07 19:55:57)
Mógłbyś używać trochę innych pojęć. Bo te nie są dla mnie zbyt zrozumiałe
(patrz -> globale) sad.gif

Używasz zmiennych globalnych. Poszukaj na forum pod kątem roznic miedzy $zmienna a $_POST['zmienna'].

Po kazdej funkcji mysql_* używaj mysql_errno" title="Zobacz w manualu PHP" target="_manual i mysql_error" title="Zobacz w manualu PHP" target="_manual - one prawde Ci powiedza...
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.