![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich.
Otórz uczę się php i z pomocą pewnej książki zaczynam rozumieć język który mnie kiedyś irytował. Jednak w trakcie pisania kodu napotkałem na pewien problem. Może zacznę od tego że w PhpMyAdmin utworzyłem baze o nazwie "szkola" a do tej bazy dodałem tabelę o nazwie "osoby". Za pomocą php łączę się z bazą danych, jednak gdy chce wyświetlić dane które wprowadziłem w tabeli wyskakuje mi błąd. Mój kod pliku dane-osobowe.php Cytat <?php $baza = mysql_connect ('localhost', 'admin', 'admin123'); if ($baza === false) die('nie mozna nawiazac polaczenia z baza ![]() mysql_query('SET NAMES "utf8"'); $ok = mysql_select_db('szkola');{ $status = 'baza danych działa <b>poprawnie</b>!!!'; } if ($ok === false) die('nie mozna bylo wybrac bazy danych ![]() echo $status; ?> <?php $zapytanie = 'SELECT imie, nazwisko, telefon FROM osoby'; ?> <?php $odpowiedz = mysql_query($zapytanie); if ($odpowiedz === false) die('Nie mozna odebrac danych'); mysql_free_result($odpowiedz); ?> <table border="1"> <tr> <th>Lp.</th> <th>Imię.</th> <th>Nazwisko</th> <th>Nr telefonu</th> </tr> <tbody> <?php while ($rekord = mysql_fetch_assoc($odpowiedz)){ $lp = 0; $lp = $lp + 1; $imie = $rekord['imie']; $nazwisko = $rekord['nazwisko']; $nrtelefonu = $rekord['telefon']; echo ' <tr>'."\r\n"; echo ' <td>'.$lp.'</td>'."\r\n"; echo ' <td>'.$imie.'</td>'."\r\n"; echo ' <td>'.$nazwisko.'</td>'."\r\n"; echo ' <td>'.$nrtelefonu.'</td>'."\r\n"; echo ' </tr>'."\r\n"; } ?> </tbody> </table> <?php mysql_close($baza); ?> Po uruchomieniu tego pliku w przeglądarce wyswietla mi sie taki komunikat błędu. Cytat baza danych działa poprawnie!!! Lp. Imię. Nazwisko Nr telefonu ( ! ) Warning: mysql_fetch_assoc(): 5 is not a valid MySQL result resource in home\www\baza\dane-osobowe.php on line 25 Call Stack # Time Memory Function Location 1 0.0008 677600 {main}( ) ..\dane-osobowe.php:0 2 0.0059 685456 mysql_fetch_assoc ( ) ..\dane-osobowe.php:25 Co ciekawe sprawdziłem kod przy pomoc mysql_error(); i niestety wywala mi ten błąd. Zmieniałem nazwe bazdy danych ale to nic nie pomogło. Wiem że to dla was strasznie prosta sprawa dlatego sie do Was z tym zgłaszam. I mam nadzieje że bedziecie wyrozumiali ![]()
Powód edycji: [piotrooo89]: wstawiam tagi
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 0 Dołączył: 23.05.2008 Ostrzeżenie: (10%) ![]() ![]() |
Zwolnij pamięć rekordu po przetworzeniu danych w pętli while, nie przed. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 6 Dołączył: 20.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Skonstruuj sobie zapytanie w taki sposób:
i wyniki przejrzyj za pomocą
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 195 Pomógł: 109 Dołączył: 3.11.2011 Ostrzeżenie: (10%) ![]() ![]() |
Po co takie porównania ===(sprawdzanie typów),nie wystarczyłoby ==,czyli(samo sprawdzanie wartości),które jest szybsze.Kiedyś taki nawyk może wyjść Tobie,na gorsze kiedy będziesz się bawił więcej obiektówką.
==będzie wykonywało się szybciej. |
|
|
![]()
Post
#5
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
proszę zastosować się do: Temat: Tematyka i zasady panujace na forum Przedszkole, w przeciwnym razie zamknę.
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Kiedyś taki nawyk może wyjść Tobie,na gorsze kiedy będziesz się bawił więcej obiektówką. Wyjść to mu może na złe Twoja rada, gdy np bedzie robił0==false zamiast 0===false A co ma === do obiektówki? zamiast nic nie mowiącego: $status = 'baza danych działa <b>poprawnie</b>!!!'; masz dać: $status = mysql_error(); -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Oki dokonałem drobnych zmian i już wyświetal mi się tabela bez błędów ale nie ma zapełnionych danyc
![]() oto screen : ![]() A oto plik po zmianach.
Czy mogli byście zmodyfikować kod i wrzucić go tutaj? A co do innych modyfikacje to kodu które poradziłeś mi 'basstone' wyskakuje mi jeden błąd : Parse error: syntax error, unexpected $end in home\www\baza\dane-osobowe.php on line 38 Przepraszam za moje byki w orto. Dostałem zapytanie od paru osób ![]() Korzystam z książki Tworzenie serwisów WWW. Pierwsza pomoc Autorzy: Maria Sokół, Radosław Sokół Stron: 112 Książka w bardzo fajny sposób daje informacje związane z php. Te kod właśnie jest z książki. Nie wiem dlaczego on nie działa. Głównie robie tak że jak pisze jakiś kod i on działa pisze później w ramach nauki kolejnych kilka zmodyfikowanych żeby zobaczyć czy dobrze rozumiem temat. Jeśli kod napisany przez mnie nie działa analizuje go i poprawiam. Jak narazie moje zmodyfikowane programiki w poprzednich rozdziałach działają ale z tym nie moge dać sobie rady ![]() Pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 9 Dołączył: 2.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zwróć uwagę na to, że:
Po pierwszym przejściu pętli zwalniasz odpowiedź, przez co nie zawiera ona kolejnych rekordów. Jeśli koniecznie chcesz użyć mysql_free_result, to użyj tego poza pętlą while, a nie wewnątrz tej pętli. Dodatkowo, napraw sobie licznik - bo teraz zawsze wyrzuca Ci jedynkę.
możesz umieścić przed pętlą while, a przed jej zakończeniem wrzucić
Wspomniano tutaj także o porównywaniu typów przy sprawdzaniu połączenia z bazą. W związku z tym, że zmiennie mają wartość true lub false - można to zrobić w następujący sposób: Dodatkowo używanie mysql_close() nie jest zwykle konieczne, ponieważ nie stałe linki są automatycznie zamykane na końcu wykonywania skryptu. Proponuję Ci zerknąć na poniższy kod:
Ten post edytował Bartłomiej Skwara 2.01.2012, 15:06:43 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 11.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Temat zamkniety.
![]() Dziękuje Bartku za pomoc teraz to śmiga ![]() Przeanalizuje kod i będę tak jak juz poprzednio pisałem tworzył swoje modyfikacje. Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 09:37 |