![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Znalazłem stronę www na podstawie której staram się zrozumieć działanie dodawania rekordów w bazie mysql poprzez stronę www. Jest tam przykład o nazwie hotele. Zaciągnąłem przykładowe pliki i nie potrafię zrozumieć dlaczego skrypt o nazwie 'hotele-dodawanie-rekordów.php' nie działa. Konkretnie - nie działa ten fragment kodu: Kod $query = "INSERT INTO thotele(nazwa, kod, miejscowosc, ulica, numerdomu, telefon, www)". " VALUES ('$linia[0]', '$linia[1]', '$linia[2]', '$linia[3]', '$linia[4]', '$linia[5]', '$linia[6]')"; $result = mysql_query($query) or die("Query failed"); Na stronie pojawia się tabelka z nazwami poszczególnych pól bazy ale łącznie z komunikatem błędnego zapytania 'Query failed'. Tu cały skrypt: Kod <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <HTML> <HEAD> <TITLE>HOTELE: dodawanie rekordów</TITLE> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> </HEAD> <BODY> <H1>HOTELE - dodawanie rekordów</H1> <H2>Dołączanie rekordów do bazy danych:</H2> <TABLE border="1"> <TR> <TD> <STRONG>Nazwa</STRONG> </TD> <TD> <STRONG>Kod</STRONG> </TD> <TD> <STRONG>miejscowość</STRONG> </TD> <TD> <STRONG>Ulica</STRONG> </TD> <TD> <STRONG>Numer domu</STRONG> </TD> <TD> <STRONG>telefon</STRONG> </TD> <TD> <STRONG>www</STRONG> </TD> </TR> <?php $nazwabazydanych = "dbhotele"; $link = mysql_connect("localhost", "root", "krasnal") or die("BŁĄD: nie można się połączyć z serverem mySQL"); mysql_select_db($nazwabazydanych) or die("BŁĄD: wybór bazy danych"); $plik = file('hotele.txt'); $plikc = count($plik); for ($i = 0; $i < $plikc; $i++) { $linia = explode('|', trim($plik[$i])); $linia[0] = strtoupper($linia[0]); $query = "INSERT INTO thotele(nazwa, kod, miejscowosc, ulica, numerdomu, telefon, www)". " VALUES ('$linia[0]', '$linia[1]', '$linia[2]', '$linia[3]', '$linia[4]', '$linia[5]', '$linia[6]')"; $result = mysql_query($query) or die("Query failed"); $liniac = count($linia); for ($j = 0; $j < $liniac; $j++) { if ($linia[$j] == '') { $linia[$j] = ' '; } } ?> <TR> <TD><?php echo $linia[0]; ?></TD> <TD><?php echo $linia[1]; ?></TD> <TD><?php echo $linia[2]; ?></TD> <TD><?php echo $linia[3]; ?></TD> <TD><?php echo $linia[4]; ?></TD> <TD><?php echo $linia[5]; ?></TD> <TD><?php echo $linia[6]; ?></TD> </TR> <?php }//for ($i = ... mysql_close($link); ?> </TABLE> </BODY> </HTML> Czy może mi ktoś napisać dlaczego tak się dzieje? Skrypty pod wskazanym wyżej adresem - można je ściągnąć w kilka sekund. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 153 Pomógł: 2 Dołączył: 28.05.2007 Skąd: Stamtąd Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 15 Dołączył: 2.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast
daj
i napisz co wyświetla |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 0 Dołączył: 11.04.2006 Skąd: Chojnów Ostrzeżenie: (0%) ![]() ![]() |
powinno zadziałac, jak nie zadziała to zamiast
daj i skopiuj treść błędu Ten post edytował Lee 12.06.2007, 17:21:57 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 6.06.2007 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za Wasze odpowiedzi. Po wstawieniu
dostałem komunikat o duplikowaniu rekordu. Okazało się (a raczej ja to dopiero zobaczyłem) że funkcja sprawdza plik txt z którego ma zaciągnąć dane do przesłania dla bazy. Jeśli jest tam (w tekstowym pliku) wpis o nazwie np. xxxxx i w mysql-u rekord o tej samej nazwie czyli xxxxx to wyświetla błąd. Zatem jeśli chciałbym uzupełniać tylko plik tekstowy o nowe wpisy to skrypt nie zadziała. Jeśli natomiast utworzę nowy (tak aby nie zawierał powtarzających się wpisów) to wtedy jest ok. Jeszcze raz dziękuję, a może znacie jakieś strony gdzie łopatologicznie wytłumaczono jak dodawać i modyfikować rekordy w bazie poprzez www? Pozdrawiam |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 319 Pomógł: 0 Dołączył: 11.04.2006 Skąd: Chojnów Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za Wasze odpowiedzi. Po wstawieniu dostałem komunikat o duplikowaniu rekordu. Okazało się (a raczej ja to dopiero zobaczyłem) że funkcja sprawdza plik txt z którego ma zaciągnąć dane do przesłania dla bazy. Jeśli jest tam (w tekstowym pliku) wpis o nazwie np. xxxxx i w mysql-u rekord o tej samej nazwie czyli xxxxx to wyświetla błąd. Zatem jeśli chciałbym uzupełniać tylko plik tekstowy o nowe wpisy to skrypt nie zadziała. Jeśli natomiast utworzę nowy (tak aby nie zawierał powtarzających się wpisów) to wtedy jest ok. Jeszcze raz dziękuję, a może znacie jakieś strony gdzie łopatologicznie wytłumaczono jak dodawać i modyfikować rekordy w bazie poprzez www? Pozdrawiam Poczytaj o zapytaniach
i
dzięki nim dodajesz i edytujesz rekordy w MySQL |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 21:17 |