Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][OOP] Błąd w kodzie
Forum PHP.pl > Forum > Przedszkole
Xart
Witam przerzucam się powoli na OOP i jakoś słabo mi to idzie...

No i niestety kolejny problem....

  1. public function news() {
  2. $na_stronie = $this->ilosc;
  3. $tabela = $this->tabela;
  4. $wpisy = $this->mysqli->query("SELECT COUNT(id) FROM $tabela");
  5. $wpisy = $wpisy->fetch_assoc();
  6. $liczba_wpisow = $wpisy[0];
  7. $liczba_stron = ceil($liczba_wpisow / $na_stronie);
  8. if (isset($_GET['strona'])) {
  9. if ($_GET['strona'] < 1 || $_GET['strona'] > $liczba_stron) {
  10. $strona = 1;
  11. } else {
  12. $strona = $_GET['strona']; }
  13. } else {
  14. $strona = 1; }
  15. $od = $na_stronie * ($strona - 1);
  16. $zapytanie = $this->mysqli->query("SELECT * FROM $tabela ORDER BY id DESC LIMIT $od , $na_stronie");
  17. while($wynik = $zapytanie->fetch_assoc()) {
  18. print("<h2 class='t01'><span>".$wynik['tytul']."</span></h2>".$wynik['tresc']."");
  19. };
  20. if ($liczba_wpisow > $na_stronie) {
  21. $poprzednia = $strona - 1;
  22. $nastepna = $strona + 1;
  23. if ($poprzednia > 0) {
  24. echo '<p align="left"><a id="POPRZEDNIA" href="index.php?strona='.$poprzednia.'">Poprzednia strona</a></p>';
  25. }
  26. if ($nastepna <= $liczba_stron) {
  27. echo '<p align="right"><a id="NASTEPNA" href="index.php?strona='.$nastepna.'">Następna strona</a></p>';
  28. }
  29. }
  30. }


Powinno wyświetlić dwa odnośniki a ich nie wyświetla, newsy natomiast poprawnie smile.gif
redeemer
facepalmxd.gif "... pewnie parser error" .

Włącz wyświetlanie błędów.
Xart
... mam włączone ale na hostingu i parser errou nie czyta biggrin.gif

już wiem sprawdziłem na lokalu zapomniałem o jednym nawiasie...

denerwuje mnie ten host zewnętrzny errorów nie wyświetla ...
ZaXaZ
nie zamknięty if linia 9
Kshyhoo
Zmień tytuł wątku, bo "błąd w kodzie" to praktycznie wszystkie wątki zawierają...
Xart
Faktycznie smile.gif
Tematu możecie nie zamykać bo mogę mieć kolejne pytania to poco zaśmiecać forum..
ZaXaZ
Cytat(Xart @ 28.04.2014, 17:29:30 ) *
Faktycznie smile.gif
Tematu możecie nie zamykać bo mogę mieć kolejne pytania to poco zaśmiecać forum..


temat nie do zamknięcia a do skasowania powinien być ;p dopiero co miałeś dokładnie taki sam temat tylko słowa przestawione... tutaj... pomijając że odpowiedziałeś sobie w parę minut na pytanie... więc [...]
Xart
@UP
No tak ;d ale mnie szlag już trafia od tych błędów..

No i niestety kolejny problem....

  1. public function news() {
  2. $na_stronie = $this->ilosc;
  3. $tabela = $this->tabela;
  4. $wpisy = $this->mysqli->query("SELECT COUNT(id) FROM $tabela");
  5. $wpisy = $wpisy->fetch_assoc();
  6. $liczba_wpisow = $wpisy[0];
  7. $liczba_stron = ceil($liczba_wpisow / $na_stronie);
  8. if (isset($_GET['strona'])) {
  9. if ($_GET['strona'] < 1 || $_GET['strona'] > $liczba_stron) {
  10. $strona = 1;
  11. } else {
  12. $strona = $_GET['strona']; }
  13. } else {
  14. $strona = 1; }
  15. $od = $na_stronie * ($strona - 1);
  16. $zapytanie = $this->mysqli->query("SELECT * FROM $tabela ORDER BY id DESC LIMIT $od , $na_stronie");
  17. while($wynik = $zapytanie->fetch_assoc()) {
  18. print("<h2 class='t01'><span>".$wynik['tytul']."</span></h2>".$wynik['tresc']."");
  19. };
  20. if ($liczba_wpisow > $na_stronie) {
  21. $poprzednia = $strona - 1;
  22. $nastepna = $strona + 1;
  23. if ($poprzednia > 0) {
  24. echo '<p align="left"><a id="POPRZEDNIA" href="index.php?strona='.$poprzednia.'">Poprzednia strona</a></p>';
  25. }
  26. if ($nastepna <= $liczba_stron) {
  27. echo '<p align="right"><a id="NASTEPNA" href="index.php?strona='.$nastepna.'">Następna strona</a></p>';
  28. }
  29. }
  30. }


Powinno wyświetlić dwa odnośniki do poprzedniej i następnej a ich nie wyświetla, newsy natomiast poprawnie smile.gif
timon27
W 21 linijce masz średnik po }
Czy ty uważasz forum za parser błędów?

ps. twój walidator numeru strony nie uwzględnia że ktoś wpisze 1.5. Co prawda jeśli ktoś coś takiego wpisuje to jego sprawa że się wysypuje, no ale skoro to sprawdzasz, to sprawdzaj porządnie.
Dodatkowo jeśli z niewyjaśnionych powodów ktoś się znajdzie na złej stronie: np miał link do 100tnej, ale przed chwilą ilość stron zmniejszyła się do 90, to wtedy będzie widział że jest na 100 a na prawdę będzie na 1.
Powinieneś dać jakiś komunikat.
Xart
Średnik po }; mam bo zamykam while questionmark.gif
parser nie wywala błędów... skrypt działa tylko nie wyświetla odnośników.. do NASTĘPNA POPRZEDNIA
timon27
Jeśli wpisów jest 1 a jesteś na 1 stronie to czemu ma wyświetlać następna/poprzednia??

Jedym słowem:
1. Wyświetl $liczba_wpisow
  1. echo $liczba_wpisow;

i powiedz co widzisz.
2. Wyświetl $na_stronie
  1. echo $na_stronie;

i powiedz co widzisz.
3. Powiedz na której stronie jesteś.
Xart
Timon dzięki ;d
źle pobierałem ilość do zmiennej z bazy bo jak wpisałem ręcznie to śmiga smile.gif

I kolejne pytanie tym razem dotyczące HTML wyświetlanym w PHP

Jak wyświetlam to takim kodem:

  1. if ($poprzednia > 0) {
  2. echo '<p align="left"><a id="POPRZEDNIA" href="index.php?strona='.$poprzednia.'">Poprzednia strona</a></p>';
  3. }
  4. if ($nastepna <= $liczba_stron) {
  5. echo '<p align="right"><a id="NASTEPNA" href="index.php?strona='.$nastepna.'">Następna strona</a></p>';


I zachodzi sytuacji, że musi wyświetlić dwie i wtedy jeden odnośnik ma być po prawo a drugi po lewo i tak jest lecz nie są na jednym poziomie tzn:



są poprostu w innej linijce a dzieje się dlatego tak, że p to nowy akapit... nie mogę p usunąć bo musi być wyrównanie do prawej czy lewej jak to mogę rozwiązać ?
ZaXaZ
  1. display:inline;


edit: znów nie doczytalem, tym razem że dwa akapity.
możesz zrobić coś takiego?
  1. <span style="display:inline"><p>...</p> i przy drugim <p>...</p></span>
Xart
@UP
No właśnie nie bardzo ;d
bo wtedy span będzie zamknięty tylko jeżeli spełni się drugi warunek
a takto wyświetli tylko POPRZEDNI i nie będzie </span> ;/
pozatym coś itak nie działa ..
ZaXaZ
Cytat(Xart @ 28.04.2014, 18:53:42 ) *
@UP
No właśnie nie bardzo ;d
bo wtedy span będzie zamknięty tylko jeżeli spełni się drugi warunek
a takto wyświetli tylko POPRZEDNI i nie będzie </span> ;/



  1. echo '<span style="display:inline;">';
  2. if ($poprzednia > 0) {
  3. echo '<p align="left"><a id="POPRZEDNIA" href="index.php?strona='.$poprzednia.'">Poprzednia strona</a></p>';
  4. }
  5. if ($nastepna <= $liczba_stron) {
  6. echo '<p align="right"><a id="NASTEPNA" href="index.php?strona='.$nastepna.'">Następna strona</a></p>';
  7. }
  8. echo '</span>';

?
Xart
Nie niestety nie działa ;/
jeszcze zostaje opcja pierwsze do lewej a potem twarde spacje no ale to lipa troche ;d
Nawet diva zrobiłem dodałem do css'a sprawdzam w przeglądarce czyta go w css ale nic nie daje
trueblue
Wstaw obydwa linki do diva, jednemu linkowi nadaj float:left, drugiemu float:right;
Xart
Tak zrobiłem...

  1. if ($liczba_wpisow > $na_stronie) {
  2. $poprzednia = $strona - 1;
  3. $nastepna = $strona + 1;
  4. echo '<div id="linia">';
  5. if ($poprzednia > 0) {
  6. echo '<p align="left"><a id="POPRZEDNIA" href="index.php?strona='.$poprzednia.'">Poprzednia strona</a></p>';
  7. }
  8. if ($nastepna <= $liczba_stron) {
  9. echo '<p align="right"><a id="NASTEPNA" href="index.php?strona='.$nastepna.'"></p>     Następna strona</a>';
  10. }
  11. echo '</div>';


  1. CSS:
  2. #linia {
  3. display:inline;
  4. }


nadal nie działa niestety
trueblue
Nie zrobiłeś.


  1. echo '<div id="linia">';
  2. if ($poprzednia > 0) {
  3. echo '<a id="POPRZEDNIA" href="index.php?strona='.$poprzednia.'">Poprzednia strona</a>';
  4. }
  5. if ($nastepna <= $liczba_stron) {
  6. echo '<a id="NASTEPNA" href="index.php?strona='.$nastepna.'">Następna strona';
  7. }
  8. echo '</div>';


  1. #linia a#POPRZEDNIA{
  2. float:left;
  3. }
  4. #linia a#NASTEPNA{
  5. float:right;
  6. }
Xart
Dzięki wielkie smile.gif
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.