Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Dziwne - switch ...
Forum PHP.pl > Forum > Przedszkole
camilost
Mam taki kod
  1. <?php
  2. $lines = file('pliczek.txt', FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
  3. // for($i=0;$i<count($lines);$i++) Wyświetlanie wszystkich linii pokolei
  4.  
  5. $strona = 1;
  6. switch($strona) {
  7. case 1: {
  8. for($i=0;$i<9;$i++) {
  9. echo '<p><div class="quotewrapper"><div class="quotecontent">';
  10. echo $lines[$i];
  11. echo '</div></div></p>';
  12. }
  13. $strona = 1;
  14. }
  15. case 2: {
  16. for($i=10;$i<19;$i++) {
  17. echo '<p><div class="quotewrapper"><div class="quotecontent">';
  18. echo $lines[$i];
  19. echo '</div></div></p>';
  20. }
  21. }
  22. }
  23.  
  24. ?>


I j/w strona = 1, a wyświetla nawet to co w strona 2... (+ puste pola przez to..)

Dałem 2-wa razy strona = 1;, bo myślałem że coś to da.

Piczek.txt ma 13linii łącznie, a wyświetla 18. // To już naprawiłem - count($lines) w for2.
nospor
Poczytaj w manualu jak działa switch. Zainteresuj się takim magicznym słowem jak BREAK
camilost
W programowaniu switch inaczej działał, nie potrzebował break; ;]
bo jeśli strona == 1 to case == 1, a nie case == 2 jeśli strona == 1...

Jak zrobić taki odnośnik ?strona=1 questionmark.gif
I żeby wyświetlało odpowiednio?
nospor
Cytat
W programowaniu switch inaczej działał, nie potrzebował break; ;]
A to co teraz robisz to co jest jak nie programowanie? Robienie na drutach? tongue.gif
camilost
W pawnie. : P

Znalazłem takie coś:
  1. <?php
  2. function add_or_change_parameter($parameter, $value) {
  3. $params = array();
  4. $output = "?";
  5. $firstRun = true;
  6. foreach($_GET as $key=>$val)
  7. {
  8. if($key != $parameter) {
  9. if(!$firstRun) {
  10. $output .= "&";
  11. }
  12. else {
  13. $firstRun = false;
  14. }
  15. $output .= $key."=".urlencode($val);
  16. }
  17. }
  18. if(!$firstRun)
  19. $output .= "&";
  20. $output .= $parameter."=".urlencode($value);
  21. $parameter = $value;
  22. return htmlentities($output);
  23. }
  24. ?>


I ta funkcja wyświetlania:
  1. <?php
  2. $lines = file('pliczek.txt', FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
  3. // for($i=0;$i<count($lines);$i++) Wyświetlanie wszystkich linii pokolei
  4.  
  5. switch($strona) {
  6. case 1: {
  7. for($s1=0;$s1<10;$s1++) {
  8. echo '<p><div class="quotewrapper"><div class="quotecontent">';
  9. echo $lines[$s1];
  10. echo '</div></div></p>';
  11. }
  12. break;
  13. }
  14. case 2: {
  15. for($s2=10;$s2<count($lines);$s2++) {
  16. echo '<p><div class="quotewrapper"><div class="quotecontent">';
  17. echo $lines[$s2];
  18. echo '</div></div></p>';
  19. }
  20. break;
  21. }
  22. }
  23. ?>
  24.  
  25. <a href="<?php echo add_or_change_parameter("strona", "2"); ?>">Następna strona (2)</a><br /><br />


I jak przejdę i w adresie mam: ?strona=1 argument strona tak jakby nie działa (lol) : P Nic nie wyświetla z pliku (arg = 0?: D
CuteOne
  1. <?php
  2. $lines = file('pliczek.txt', FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES);
  3. // for($i=0;$i<count($lines);$i++) Wyświetlanie wszystkich linii pokolei
  4.  
  5. $strona = $_GET['strona'];
  6.  
  7. switch($strona) {
  8.  
camilost
@UP - Dzięki, działa.
Dodałem sobie jeszcze:
  1. if($strona != 1 && $strona != 2) { $strona = 1; }

Bo np. jak wchodziłem na index.php to było pusto bo nie było ?strona ^^ - czyli nie ustawiło.

// Do zamknięcia. Wszystko działa good. : P Dzięki, Wam.
CuteOne
Lepsze rozwiązanie:
  1.  
  2. $strona = (!empty($_GET['strona'])) ? $_GET['strona'] : 1;
  3.  


bo co gdy nagle zapragniesz mieć 50 stron [strona=50].. będziesz sprawdzał każdego if'em?
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.