![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.01.2005 Skąd: stąd :) Ostrzeżenie: (0%) ![]() ![]() |
Mam taką małą bazę dla celów ćwiczebnych
![]() --------------------------------------- Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, admin@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. -------------------------------------------------------------------------------- Apache/1.3.23 Server at localhost Port 80 --------------------------------------- Na dodatek jeśli dodam nową osobę do bazy, to po odświeżeniu strony ten sam rekord dodaje się po raz drugi, po następnym odświeżeniu jeszcze raz i tak w kółko - jak temu zapobiec? ![]() --------------------------------------- Oto kod: <?php mysql_connect( "localhost", "root", "") or die( "nie mozna sie polaczyc z mysql."); mysql_select_db( "bazaa" ) or die( "nie mozna wybrac bazy."); if( $co == 'dodaj' ) { if( $imie && $nazwisko && $telefon ) { $query = "INSERT INTO book (nr, imie, nazwisko, telefon) " ; $query .= "VALUES ('', '$imie', '$nazwisko', '$telefon');" ; $baz = mysql_query( $query ); /* $baz= mysql_query( "INSERT INTO book (nr, imie, nazwisko, telefon) VALUES ('', '$imie', '$nazwisko', '$telefon');" );*/ } } elseif( $co == 'skasuj') { $baz = mysql_query ("DELETE FROM book WHERE nr='$id' LIMIT 1;") or die("blad w kasowaniu"); } $baz = mysql_query("SELECT * FROM book;") or die("blad w zapytaniu."); print( "<table border=0 cellpadding=5 cellspacing=2 bgcolor=teal>"); print( "<tr><td><b>imie</b></td><td><b>nazwisko</b></td>"); print( "<td><b>telefon</b></td></tr>\n"); while( $rekord = mysql_fetch_array( $baz )) { $id = $rekord[0]; print( "<tr><td>$rekord[1]</td><td>$rekord[2]</td><td>$rekord[3]</td>"); print( "<td><a href=\"book.php?co=skasuj&id=$id\">skasuj</a></td></tr>\n" ); } print "</table>" ; print '<form method="get">Nowy rekord:' ; print '<input type="hidden" name="co" value="dodaj"><table>' ; print '<tr><td>imie:</td><td><input type="text" name="imie"></td></tr>' ; print '<tr><td>nazwisko:</td><td><input type="text" name="nazwisko"></td></tr>' ; print '<tr><td>telefon:</td><td><input type="text" name="telefon"></td></tr></table>' ; print '<input type="submit" value="dodaj"></form>' ; ?> |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 848 Pomógł: 0 Dołączył: 7.07.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Może powinno być:
Co drugiego problemu to zrób tak, żeby nie można było dodać dwóch takich samych użytkowników:
Poza tym jest jeszcze trochę innych błędów: 1. Cytat Powinno być:
2. Używaj BBcode! Ten post edytował Vertical 31.01.2005, 14:23:59 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 196 Pomógł: 2 Dołączył: 17.01.2004 Skąd: Sosnowiec Ostrzeżenie: (0%) ![]() ![]() |
Vertical: ekhm, między nazwą tabeli a VALUES można podawać przecież nazwy kolum, które chce się wypełnić INSERT'em, to nie jest błąd.
ultramega-ok: Nie dawaj średnika na końcu zapytań MySQL w php. No i pamiętaj o BBCode... Ten post edytował crashu 31.01.2005, 13:36:24 -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 848 Pomógł: 0 Dołączył: 7.07.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie dawaj średnika na końcu zapytań MySQL To także nie jest błąd |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.01.2005 Skąd: stąd :) Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze:
kiedy dałem
to wyskakuje mi taki błąd: Cytat Parse error: parse error, expecting `','' or `')'' in d:\moje dokumenty\www\book\main.php on line 17 Czy ta funkcja 'isset' rzeczywiście jest konieczna? Przecież funkcja Cytat if( $imie && $nazwisko && $telefon ) sprawdza czy te pola nie są NULL-ami. Czy to nie wystarczy? Po drugie: Do Verticala: ja nie chcę blokować możliwości wpisania dwóch takich samych osób - ja chcę tylko, żeby po odświeżeniu strony nie dodawał się do bazy jeszcze raz ten sam rekord. Czy da się to jakoś zrobić? (przecież musi się dać ![]() Po trzecie: Usuwanie z bazy mi nie działa. Ktoś mi mówił, ze to może być jakis błąd w konfiguracji mySQL czy php na moim komputerze ("twoje php dziala jako modul CGI"). Mam PHPTriad i po zainstalowaniu tego pakietu nic nie zmieniałem w konfiguracji (nawet nie wiem jak ![]() Wie ktoś jak zrobić to usuwanie?? Ten post edytował ultramega-ok 31.01.2005, 18:30:53 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Cytat ja chcę tylko, żeby po odświeżeniu strony nie dodawał się do bazy jeszcze raz ten sam rekord To po dodaniu rekordu przekieruj usera na inna strone (header() ) Cytat Czy ta funkcja 'isset' rzeczywiście jest konieczna? Przecież funkcja ( $imie && $nazwisko && $telefon ) Jest konieczna, bo sprawdza czy zmienna ISTNIEJE, dopiero jak zmienna istnieje mozesz sprawdzic czy jest NULLem. Cytat isset ($imie && $nazwisko && $telefon ) MAN: Cytat bool isset ( mixed var [, mixed var [, ...]]) zwroci TRUE jesli WSZYSTKIE zmienne beda istnialy -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
Masz takie cos
index.php?co=skasuj&id={numerek, np. 2}
Staraj dawac zawsze w die(); mysql_error() ponieważ wywali info o błedach w zapytaniu mysql, a nie sam text 'blad w kasowaniu'. pozdrawiam |
|
|
![]()
Post
#8
|
|
![]() TAO programowania Grupa: Zarejestrowani Postów: 340 Pomógł: 3 Dołączył: 25.03.2003 Skąd: ze słoika Ostrzeżenie: (30%) ![]() ![]() |
tyle w temacie Ten post edytował Puciek 31.01.2005, 18:49:18 -------------------- |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 31.01.2005 Skąd: stąd :) Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wszystkim za pomoc.
Ale nadal pozostał problem tego usuwania z bazy. ![]() Cytat Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. A w logu błędów: Cytat [Sat Feb 05 21:19:48 2005] [error] [client 127.0.0.1] Premature end of script headers: c:/apache/php/php.exe Mam PHPTriad. Wie ktoś może jak powinienem zmienić konfigurację programu aby mySQL działało mi poprawnie? ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 06:23 |