Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] System news'ów.
Forum PHP.pl > Forum > Przedszkole
Cly
Witam serdecznie.
Niedawno zaczęłam zabawę z php oraz mysql i niestety, nadal posiadam w tych zakresach duże braki, które mam zamiar stopniowo nadrabiać. W każdym razie, tym razem postanowiłam za pomocą poradnika ze strony http://it-maniak.pl/prosty-system-newsow-w...e-takie-trudne/ stworzyć system news’ów. Jakoś nie chciałam korzystać z cute news, czy czegoś podobnego. Wolałam sama przeczytać, co, jak, gdzie i po co. Niestety, idąc zgodnie z zaleceniami autora tutka, nie udało mi się osiągnąć zamierzonego celu. W utworzonych plikach pojawia się błąd, który widnieje przy wpisaniu ścieżki do przeglądarki. No, oprócz w dodaj.php, tam mniej więcej wszystko działa. Przeszukałam parę stron, jednak nie znalazłam rozwiązania problemu. Oczywiście, stworzyłam bazę danych za pośrednictwem phpMyAdmin. Czy ktoś mógłby mi powiedzieć, co robię źle?

Z góry dziękuję za pomoc. smile.gif
mit2
pokaz jaki masz kod to zobaczymy co masz zle
cim
Witam,

Cytat(Cly @ 13.04.2011, 23:13:10 ) *
W utworzonych plikach pojawia się błąd, który widnieje przy wpisaniu ścieżki do przeglądarki.

pokaż jaki to błąd.

Pozdrawiam
ciekawskiii
to pokaz te bledy, kawalki kodu gdzie masz te bledy, skad mamy wiedziec co robisz zle? wacko.gif
Cly
Podałam tamtą stronę dlatego, że widnieje tam cały kod, ale mogę również tutaj wkleić.

  1. <?php
  2. include("skrot.php");
  3. $naz .= '<li><a href="news.php?id='.$rekord[0].'">'.$rekord[1].'</a>Autor:
  4. '.$rekord[3].' - '.$rekord[2].'<p>'.substr($rekord[4], 0,
  5. 150).''.$kr.'</p></li>';
  6. echo '<ul>'.$naz.'</ul>';
  7. ?>

Powinny pojawić się nowe posty (5), a skoro ich jeszcze nie napisałam, to chyba pusta strona, tak?
Błędy:
Notice: Undefined variable: rekord in C:\xampp\htdocs\news\skrot.php on line 2

Notice: Undefined variable: rekord in C:\xampp\htdocs\news\skrot.php on line 2

Notice: Undefined variable: rekord in C:\xampp\htdocs\news\nowe.php on line 3

Notice: Undefined variable: rekord in C:\xampp\htdocs\news\nowe.php on line 3

Notice: Undefined variable: rekord in C:\xampp\htdocs\news\nowe.php on line 4

Notice: Undefined variable: rekord in C:\xampp\htdocs\news\nowe.php on line 4

Notice: Undefined variable: rekord in C:\xampp\htdocs\news\nowe.php on line 4

Notice: Undefined variable: naz in C:\xampp\htdocs\news\nowe.php on line 5

  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select * from news order by id");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<li><a href="news.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[3].' - '.$rekord[2].'</li>';
  7. }
  8. echo '<ul>'.$naz.'</ul>';
  9. ?>
Tu jest archiwum, czyli również, jak nie ma postów, to powinna być pusta strona, a wyświetla się błąd: Notice: Undefined variable: naz in C:\xampp\htdocs\news\archiwum.php on line 6

Zawartość skrot.php (Służy do skracania posta na stronie, jak jest więcej niż 150 znaków, to stawia wielokropek):

  1. <?php
  2. if (substr($rekord[4], 0, 150)<$rekord[4]) // 1
  3. {
  4. $kr = '...'; //
  5. }
  6. else
  7. {
  8. $kr = '';
  9. }
  10. ?>
ciekawskiii
to sa komunikaty nie bledy, wyswietlaja sie bo nie masz zadnego warunku i zmienne sa puste.
Zrob tak
  1. if(mysql_num_rows($query)>0){
  2. //Tu petla while i wyswietlanie wynikow
  3. }else{
  4. echo 'brak postow';
  5. }
nospor
Cytat
to sa komunikaty nie bledy
To są błędy. Jak ktoś używa zmiennej, która nie istnieje, to to jest właśnie błąd. Niestety php uznaje to za błąd najmniejszej wagi.
ciekawskiii
no fakt, jest to tez blad ale wlasnie mniejszej wagi wiec mozna uznac to za informacje/komunikat.
Myslalem, ze ma fatal errora
nospor
Cytat
ale wlasnie mniejszej wagi wiec mozna uznac to za informacje/komunikat.
Nie ucz złych nawyków. To jest błąd. Nie żadna informacja czy komunikat - błąd. Potem nauczy się jeden z drugim olewać takie "informacje" a potem płacze bo nagle się okazuje że na stronie wyskakuje 300 "informacji" i wśród nich nie można znaleźć takiej która odpowiada za aktualny problem z jakim stanął user.

http://nospor.pl/notice-wyswietlac-czy-nie.html
ciekawskiii
1.nie ucze zlych nawykow bo przeciez nie kaze nikomu tego olewac.
2.jak to zwykle w takich przypadkach bywa, ta dyskusja nie ma sensu.
Dla jednego to jest blad, dla drugiego komunikat a dla trzeciego informacja.
Notice znaczy informacja,
error znaczy blad i tego sie trzymam
nospor
a warning znaczy ostrzeżenie... smile.gif

A error_reporting() służa do ustawiania poziomu raportowania błędów E_ALL łapie też błędy NOTICE. (w nazwie error_reporting zauważ masz słowo klucz "error" wink.gif )
Tak więc ERROR, WARNING, NOTICE to wszystko to błędy a nazwy mają tylko sugerować poziom ich ważności wg. autorów php. Patrzenie na sztywno że coś ma w nazwie error a coś nie i na tej podstawie określanie czy coś jest błędem a coś nie to chyba nie tędy droga. A już tym bardziej przyjmowanie NOTICE jako notatki/informacji. error to też informacja na dobrą sprawę smile.gif
Cly
Teraz wyświetla „brak postow”, kiedy w przeglądarkę wpiszę ścieżkę do archiwum.php, jednak nadal w nowe.php pojawiają się te komunikaty/błędy/informacje. Kod do tego pliku zamieściłam we wcześniejszym poście, jako pierwszy. Niestety nie mam pomysłu, co może być źle.
Pitter
archiwum.php
  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select * from news order by id");
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .= '<li><a href="news.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[3].' - '.$rekord[2].'</li>';
  7. }
  8. else
  9. {
  10. $naz = '<li>brak postów</li>';
  11. }
  12. echo '<ul>'.$naz.'</ul>';
  13. ?>

plik nowe.php

  1. <?php
  2. include("polacz.php"); // 1
  3.  
  4. $query = mysql_query("select * from news order by id desc limit 0,5"); // 2
  5. while($rekord = mysql_fetch_array($query))
  6. {
  7. $naz .= '<li><a href="news.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[3].' - '.$rekord[2].'</li>'; // 3
  8. }
  9. else
  10. {
  11. $naz = '<li>brak postów.</li>';
  12. }
  13. include("skrot.php"); // musi być tutaj ponieważ skrót.php pracuje na $rekord która musi istniec
  14. echo '<ul>'.$naz.'</ul>'; // 4
  15. ?>
Cly
Niestety teraz, kiedy otwieram archiwum.php pokazuje się:
Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\news\archiwum.php on line 8
natomiast gdy wpisuję w pasek przeglądarki nowe.php, wyświetla:
Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\news\nowe.php on line 9 .
Pitter
spróbuj tak
  1. <?php
  2. include("polacz.php"); // 1
  3. $naz = 'brak postów';
  4. $query = mysql_query("select * from news order by id desc limit 0,5"); // 2
  5. while($rekord = mysql_fetch_array($query))
  6. {
  7. $naz .= '<li><a href="news.php?id='.$rekord[0].'">'.$rekord[1].'</a> Autor: '.$rekord[3].' - '.$rekord[2].'</li>'; // 3
  8. }
  9.  
  10. include("skrot.php"); // musi być tutaj ponieważ skrót.php pracuje na $rekord która musi istniec
  11. echo '<ul>'.$naz.'</ul>'; // 4
  12. ?>
Cly
W nowe.php wyświetla się "brak postów", czyli teraz jest tam w porządku, natomiast w archiwum.php nadal coś nie gra i wyświetla ten sam komunikat, co wcześniej, czyli:
Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\news\archiwum.php on line 8 .
ciekawskiii
pomieszalas gdzies klamry { } policz, posprawdzaj
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.