Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Dziwne - switch ..., Wyświetla mi dane co nie powinno.
camilost
post 6.10.2010, 18:04:08
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.02.2010

Ostrzeżenie: (0%)
-----


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.

Ten post edytował camilost 6.10.2010, 18:12:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post 6.10.2010, 18:22:25
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Poczytaj w manualu jak działa switch. Zainteresuj się takim magicznym słowem jak BREAK


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
camilost
post 6.10.2010, 18:34:51
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.02.2010

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
nospor
post 6.10.2010, 18:59:56
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
camilost
post 6.10.2010, 19:03:49
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.02.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował camilost 6.10.2010, 19:06:42
Go to the top of the page
+Quote Post
CuteOne
post 6.10.2010, 19:15:07
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  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.  
Go to the top of the page
+Quote Post
camilost
post 6.10.2010, 19:27:00
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.02.2010

Ostrzeżenie: (0%)
-----


@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.

Ten post edytował camilost 6.10.2010, 19:27:46
Go to the top of the page
+Quote Post
CuteOne
post 6.10.2010, 23:22:24
Post #8





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 22:27