Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja raz działa raz nie
john_doe
post 15.07.2009, 15:26:00
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witam,

mam funkcję w stylu

  1. <?php
  2. function wypisz($id)
  3. {
  4.  switch($id)
  5.  {
  6.     case: 27;
  7.     print ' 1,2,3';
  8.     break;
  9.  }
  10. }
  11.  
  12. //i potem
  13.  
  14. $ajdi = $_SESSION['xlid'];
  15. $printuj = wypisz($ajdi);
  16. print $printuj; // printuje ok 1,2,3
  17.  
  18. $zapytanie = "id in (" . $printuj .")"; // tutaj $printuj jest puste
  19. ?>


o co chodzi?
Go to the top of the page
+Quote Post
antyqjon
post 15.07.2009, 15:27:20
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 27
Dołączył: 24.03.2002
Skąd: Tarnów

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


Cytat(john_doe @ 15.07.2009, 15:26:00 ) *
Witam,

mam funkcję w stylu

  1. <?php
  2. $printuj = wypisz($ajdi);
  3. ?>


o co chodzi?

A jak myślisz, co zwraca Twoja funkcja?


--------------------
Zbyszek 'antyqjon' Siciarz

siciarz.net | Aquila DSP C++
Go to the top of the page
+Quote Post
pks
post 15.07.2009, 15:28:58
Post #3





Grupa: Zablokowani
Postów: 16
Pomógł: 0
Dołączył: 20.03.2009

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


Rzuć okiem jak powinno wyglądać przykładowe switch:

Kod
switch($_GET['act'])
    {
        case 'dodaj':
            echo 'Dodawanie danych';            
            break;
        case 'edytuj':
            echo 'Edycja danych';
            break;
        case 'usun':
            echo 'Usuwanie danych';
            break;
        default:
            echo 'Wyświetlenie danych';    
    }


Ten post edytował pks 15.07.2009, 15:29:18
Go to the top of the page
+Quote Post
john_doe
post 15.07.2009, 15:30:57
Post #4





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


zwraca string 1,2,3
Go to the top of the page
+Quote Post
blooregard
post 15.07.2009, 15:36:37
Post #5


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Cytat
zwraca

Bez return?
Ciekawe...


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
john_doe
post 15.07.2009, 15:40:23
Post #6





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


pisałem na forum z ręki i faktycznie winno być "case cos:"

dałem coś takiego i nadal nie chodzi

  1. <?php
  2. function wypisz($id)
  3. {
  4. switch($id)
  5. {
  6.    case 27:
  7.    $string = ' 1,2,3';
  8.    break;
  9. }
  10. return $string;
  11. }
  12. ?>


Ten post edytował john_doe 15.07.2009, 15:40:38
Go to the top of the page
+Quote Post
kefirek
post 15.07.2009, 16:07:37
Post #7





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


No przecież działa
  1. <?php
  2. function wypisz($id)
  3. {
  4. switch($id)
  5. {
  6.   case 27:
  7.   $string = ' 1,2,3';
  8.   break;
  9. }
  10. return $string;
  11. }
  12.  
  13.  
  14. $id = 27;
  15.  
  16. echo wypisz($id);
  17. ?>
Go to the top of the page
+Quote Post
john_doe
post 15.07.2009, 18:01:17
Post #8





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


działa... ale jak zapodaje

  1. <?php
  2. $printuj = wypisz($id)
  3. $zapytanie = "id in (" . $printuj .")"; // tutaj $printuj jest puste
  4. ?>


tutaj jest pusto
Go to the top of the page
+Quote Post
Wicepsik
post 15.07.2009, 18:09:15
Post #9





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. <?php
  2. function wypisz($id)
  3. {
  4. switch($id)
  5. {
  6.    case: 27;
  7.    $cos = ' 1,2,3';
  8.    break;
  9. }
  10. return $cos;
  11. }
  12.  
  13. //i potem
  14.  
  15. $ajdi = $_SESSION['xlid'];
  16.  
  17.  
  18. $zapytanie = "id in (" . wypisz($ajdi) .")"; // tutaj $printuj jest puste
  19. ?>


--------------------
Go to the top of the page
+Quote Post
SzamanGN
post 15.07.2009, 18:14:58
Post #10





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


Musisz zmienić swoją funkcję tak:

  1. <?php
  2. function wypisz($id)
  3.  
  4.  {
  5.  
  6.  switch($id)
  7.  
  8.   {
  9.  
  10.   case 27:
  11.  
  12.    $pokaz=' 1,2,3';
  13.  
  14.    break;
  15.  
  16.   default:
  17.  
  18.    $pokaz=' 0'; //Domyślny wpis, który spowoduje, że zapytanie nic nie zwróci.
  19.  
  20.   }
  21.  
  22.   return $pokaz;
  23.  
  24.  }
  25. ?>


Zapamiętaj, ze używając switch w twojej funkcji i tylko jeden warunek w case=27, to tylko wartość 27 spełni warunek twojej funkcji!


--------------------
SzamanGN
Go to the top of the page
+Quote Post
john_doe
post 16.07.2009, 07:33:14
Post #11





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


dokładnie tak mam teraz funkcję i teraz:

  1. <?php
  2. $id = 27;
  3.  
  4. print wypisz($id); // dostaję na ekran 27
  5.  
  6. // ale gdy zrobię tak
  7.  
  8. $query = "select * from tabela where id in (" . wypisz($id) . ")";
  9.  
  10. //lub
  11.  
  12. $query = "select * from tabela where id in (" . print wypisz($id) . ")";
  13.  
  14. print $query;   // czy tak czy tak nie działą
  15. ?>
Go to the top of the page
+Quote Post
dr_bonzo
post 16.07.2009, 08:12:16
Post #12





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


john_doe: pokaz tresc funkcji wypisz, bo co chwile jest zmieniana a ty nie mowisz ktorej uzywasz.
No i print() NIE zwroci ci napisu, tylko 1


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
john_doe
post 16.07.2009, 12:52:33
Post #13





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


ok,
$id pochodzi z sesji $_SESSION['xlid']
  1. <?php
  2. function returnGidsAkw($id)
  3. {
  4.    
  5.    switch ( $id )
  6.    {
  7.    // ----------- M 1 -----------------------
  8.        case 282:
  9.        $string = '282, 69, 295, 84';
  10.        exit;
  11.        
  12.        case 69:
  13.        $string =  '69';
  14.        exit;        
  15.        
  16.        case 295:
  17.        $string =  '295';
  18.        exit;
  19.  
  20.        case 84:
  21.        $string =  '84';
  22.        exit;        
  23.        
  24.    // ----------- M 2 -----------------------        
  25.        case 12:
  26.        $string =  '12, 78, 302, 277, 293, 147, 176';
  27.        exit;
  28.        
  29.        case 78:
  30.        $string =  '78';
  31.        exit;        
  32.        
  33.        case 302:
  34.        $string =  '302';
  35.        exit;        
  36.        
  37.        case 277:
  38.        $string =  '277';
  39.        exit;        
  40.        
  41.        case 293:
  42.        $string =  '293';
  43.        exit;        
  44.    
  45.        case 147:
  46.        $string =  '147';
  47.        exit;    
  48.        
  49.        case 176:
  50.        $string =  '176';
  51.        exit;        
  52.        
  53.    // ----------- M 2 -----------------------        
  54.        case 283:
  55.        $string =  '283, 39, 136, 280, 291';
  56.        exit;        
  57.        
  58.        case 39:
  59.        $string =  '39';
  60.        exit;    
  61.  
  62.        case 136:
  63.        $string =  '136';
  64.        exit;    
  65.  
  66.        case 280:
  67.        $string =  '208';
  68.        exit;        
  69.  
  70.        case 291:
  71.        $string =  '291';
  72.        exit;            
  73.        
  74.        case 130:
  75.        $string =  '282, 69, 295, 84, 12, 78, 302, 277, 293, 147, 176, 283, 39, 136, 280, 291';
  76.        break;
  77.        
  78.        case 148:
  79.        $string =  '282, 69, 295, 84, 12, 78, 302, 277, 293, 147, 176, 283, 39, 136, 280, 291';
  80.        break;
  81.  
  82.        case 13:
  83.        $string =  '282, 69, 295, 84, 12, 78, 302, 277, 293, 147, 176, 283, 39, 136, 280, 291';
  84.        break;        
  85.        
  86.        case 5555555:
  87.        $string =  '282, 69, 295, 84, 12, 78, 302, 277, 293, 147, 176, 283, 39, 136, 280, 291';
  88.        break;
  89.  
  90.        case 63:
  91.        $string =  '282, 69, 295, 84, 12, 78, 302, 277, 293, 147, 176, 283, 39, 136, 280, 291';
  92.        break;        
  93.        
  94.        default:
  95.        $string = '0';
  96.    }
  97.    return $string;
  98. }
  99. ?>


i teraz nie wiem zupełnie dlaczego działa jak zaloguje sie numerek id usera 130 i w dół czyli te które zwaracjają ten ciag
'282, 69, 295, 84, 12, 78, 302, 277, 293, 147, 176, 283, 39, 136, 280, 291'
jest ok.
na pozostałe nie. Czyli ten $string pakuje do zapytanie SQL. Dlaczego nie działa dla pozostałych??

  1. <?php
  2. $id    = $_SESSION['xlid'];
  3.  
  4.  include('../../templates/header.php');
  5.  include('../../funkcje/returnGidsAkw.php');  // tutaj ta funkcja
  6.  include('../../db/conection.php');
  7.  include('../../querries/plansQuerries.php');  
  8. print $zapytanie; // i tutaj dla numerka np 12 nic kompletnie nie wypisuje tylko dla tych o których pisałem wyżej
  9. ?>


-----EDIT: można zamknąć. Moja wina. jak widać wyżej w funkcji zamiast brak; dałem exit;

Ten post edytował john_doe 16.07.2009, 13:24:32
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 - 19:53