Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem ze skryptem, i funkcjami, include i zmiennymi
Fallout
post
Post #1





Grupa: Zarejestrowani
Postów: 154
Pomógł: 0
Dołączył: 17.12.2003
Skąd: Olsztyn

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


Witam,

na początek listingi ,niestety rozjezdzaja sie tu na forum (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Plik config.inc.php

  1. <?php
  2.  
  3. // system
  4. $img_sys_root = &#092;"img/sys/\";
  5. $img_prod_root = &#092;"img/prod/\";
  6. // bledy
  7. $blad = array( 'E_BASE'  => &#092;"Połącznie do bazy nie powiodło się!\",
  8. 'E_DB' => &#092;"Wybranie bazy nie powiodło się!\",
  9. 'E_QUERY' => &#092;"Pobranie danych nie powiodło się\");
  10. // baza
  11. $host = &#092;"xxxt\";
  12. $user  = &#092;"xxx\";
  13. $pass = &#092;"xxx\";
  14. $baza = &#092;"xxx\";
  15. // tabele
  16. $tab_end  = &#092;"</table>\";
  17. $cechy_tab_start = &#092;"<table border=1>
  18. <tr>
  19. <th><a href=&#092;"tabele.php?co=cechy&akcja=pokaz&jak=id_cn\">ID</a></th>
  20. <th><a href=&#092;"tabele.php?co=cechy&akcja=pokaz&jak=nazwa_cechy\">Nazwa Cechy</a></th>
  21. </tr>&#092;";
  22.  
  23. $cechy_tab_end = &#092;"<tr align=center>
  24. <td>$id_cn</td>
  25. <td>$nazwa_cechy</td>
  26.  </tr>&#092;";
  27.  
  28. $producenci_tab_start  = &#092;"<table border=1>
  29. <tr>
  30. <th><a href=&#092;"tabele.php?co=producenci&akcja=pokaz&jak=id_producent\">ID</a></th>
  31. <th><a href=&#092;"tabele.php?co=producenci&akcja=pokaz&jak=nazwa\">Nazwa Producenta</a></th>
  32. <th><a href=&#092;"tabele.php?co=producenci&akcja=pokaz&jak=www\">Adres WWW</a></th>
  33. <th>Logo</th>
  34. </tr>&#092;";
  35.  
  36. $producenci_tab_end =  &#092;"<tr align=center>
  37. <td>$id_producent</td>
  38. <td>$nazwa</td>
  39. <td>$www</td>
  40. <td><img src=&#092;"$img_prod_root$foto\"></td>
  41.  </tr>&#092;";
  42. ?>


plik tabele.php:

  1. <?php
  2. include 'tabele.inc.php';
  3. if (isset($_GET['co'])) { $co = $_GET['co']; } else $co = '';
  4. if (isset($_GET['akcja']))  { $akcja  = $_GET['akcja'];  } else $akcja  = '';
  5. if (isset($_GET['jak']))  { $jak  = $_GET['jak'];  } else $jak  = '';
  6. ?>
  7. <head>
  8. <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-2\">
  9. <title>Panel Administratora - Menu</title>
  10. </head>
  11. <center>
  12. <table border=\"1\">
  13. <tr><td><a href=\"tabele.php?co=cechy\"><strong>Cechy</strong></a></td></tr>
  14. <tr><td><a href=\"tabele.php?co=cechy&akcja=pokaz&jak=id_cn\">Pokaż listę cech</a></td></tr>
  15. <tr><td><a href=\"tabele.php?co=cechy&akcja=dodaj\">Dodaj cechę</a></td></tr>
  16. <tr><td><a href=\"tabele.php?co=cechy&akcja=kasuj\">Usuń cechy</a></td></tr>
  17. <tr><td><a href=\"tabele.php?co=cechy&akcja=zmien\">Popraw cechy</a></td></tr>
  18. </table> <br><br>
  19. <table border=\"1\">
  20. <tr><td><a href=\"tabele.php?co=producenci\"><strong>Producenci</strong></a></td></tr>
  21. <tr><td><a href=\"tabele.php?co=producenci&akcja=pokaz&jak=id_producent\">Pokaż listę producentów</a></td></tr>
  22. <tr><td><a href=\"tabele.php?co=producenci&akcja=dodaj\">Dodaj producenta</a></td></tr>
  23. <tr><td><a href=\"tabele.php?co=producenci&akcja=kasuj\">Usuń wpisy producentów</a></td></tr>
  24. <tr><td><a href=\"tabele.php?co=producenci&akcja=zmien\">Popraw wpisy producentów</a></td></tr>
  25. </table>
  26. <?php
  27. switch ($akcja)
  28. {
  29.  case 'pokaz':
  30.  pokaz($co,$jak);
  31.  break;
  32. }


i na koniec plik: tabele.inc.php

  1. <?php
  2.  
  3. include 'config.inc.php';
  4. function pokaz($co, $jak)
  5. {
  6. include 'config.inc.php';
  7. $p = mysql_connect($host,$user,$pass)  or Die ($blad['E_BASE']);
  8. $db = mysql_select_db($baza,$p)  or Die ($blad['E_DB']);
  9. $sql = &#092;"SELECT * FROM $co ORDER BY $jak\";
  10. $wynik = mysql_query($sql,$p)  or Die ($blad['E_QUERY']);
  11. switch ($co)
  12. {
  13. case 'cechy': echo $cechy_tab_start; break;
  14. case 'producenci': echo $producenci_tab_start; break;
  15. }
  16. while ($wiersz = mysql_fetch_array($wynik))
  17. {
  18. switch ($co)
  19. {
  20. case 'cechy':
  21. {
  22.  
  23.  $id_cn = $wiersz['id_cn'];
  24.  $nazwa_cechy = $wiersz['nazwa_cechy'];
  25. echo $cechy_tab_end;
  26. }
  27. break;
  28.  
  29. case 'producenci':
  30. {
  31. $id_producent = $wiersz['id_producent'];
  32.  $nazwa = $wiersz['nazwa'];
  33. $www = $wiersz['www'];
  34. $foto = $wiersz['foto'];
  35. echo $producenci_tab_end;
  36. }
  37. break;
  38.  
  39. }
  40. echo $tab_end;
  41. }
  42. }
  43.  
  44. ?>


A teraz problem... Nie działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) heeh no dobra..
jak wida idea skryptu jest aby zrobic uniwersalna funkcje do pobierania danych z bazy. taki byl plan.. niestety nie chodzi mi to mysle ze przez to ze includowane sa zmienne.. dobrze mysle?

ten sam skrypt mam rozbity na osobne tabele i wszystko chodzi. ale jako ze tabel jest pare i roznych operacji na nich jest tez kilka chcialem sobie ulatwic zycie a tu jak na zlosc..

tu jest przyklaodwy skrypt chodzacy "osobno" dla tabeli:

  1. <?php
  2.  
  3. function cechy_pokaz($jak)
  4. {
  5. include 'config.inc.php';
  6. $p = mysql_connect($host,$user,$pass) or Die(&#092;"Połącznie do bazy nie powiodło się!\");
  7. $db = mysql_select_db($baza,$p) or Die(&#092;"Wybranie bazy nie powiodło się!\");
  8. $sql = &#092;"SELECT * FROM cechy ORDER BY $jak\";
  9. $wynik = mysql_query($sql,$p) or Die(&#092;"Pobranie danych nie powiodło się\");
  10.  echo &#092;"<table border=1>
  11. <tr>
  12. <th><a href=&#092;"t_cechy.php?akcja=pokaz&jak=id_cn\">ID</a></th>
  13. <th><a href=&#092;"t_cechy.php?akcja=pokaz&jak=nazwa_cechy\">Nazwa Cechy</a></th>
  14. </tr>&#092;";
  15. while ($wiersz = mysql_fetch_array($wynik))
  16. {
  17.  $id_cn = $wiersz['id_cn'];
  18.  $nazwa_cechy = $wiersz['nazwa_cechy'];
  19. echo &#092;"<tr>
  20. <td>$id_cn</td>
  21. <td>$nazwa_cechy</td>
  22.  </tr>&#092;";
  23. }
  24. echo &#092;"</table>\";
  25.  
  26. }
  27.  
  28. ?>


troszke sie rozni to (1. jedna tabela, 2. bez bledow w tablicy, 3. odwolania do innych plikow) ale idea jest ta sama.. ..

dodam ze przy probie wykonywania nowego skryptu (wielotabelowego) mam od cholery notice`ow o nie zadeklarowanych zmiennych np. "Notice: Undefined variable: id_cn in (...) on line 23"

prosze pomozcie, nie ma sensu robic osobnych plikow z podobnymi funkcjami (dodaj,usun,zmien,itp) dla kazdej tabli gdy tylko zmieniaja sie zmienne i tabela...

z gory dziekuje z (p)odpowiedzi
pozdrawiam
Marcin

Ten post edytował Fallout 21.02.2005, 17:52:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gruszek_
post
Post #2





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 21.02.2005

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


wlasnie o to mi chodzi, z tego co sie zorietowalem to piszac $a = "costam $b blabla"; do ciagu wpisywana jest poprostu zawartosc tej zmiennej (w danym momencie) a nie wskaznik do zmiennej czy jak to tam nazwac (to co bys chcial zeby bylo).

jezeli nie rozumiesz to sprawdz roznice miedzy tym:
  1. <?php
  2.  
  3. $a = &#092;"a $b a\";
  4. $b = &#092;"b\";
  5. echo ($a);
  6. ?>

a tym:
  1. <?php
  2. $b = &#092;"b\";
  3. $a = &#092;"a $b a\";
  4. echo ($a);
  5. ?>


nie jestem pewien ale chyba istnieje mozliwosc zrobienia tego co chcesz (zeby nie wklejalo wartosci zmiennej tylko wstawialo jakby wskaznik do niej) ale nie wiem jak to zrobic, nie jestem na tyle w temacie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

-------edytejszon-----------
zamiast zmiennej
  1. <?php
  2. $cechy_tab_end = &#092;"<tr align=center><td>$id_cn</td><td>$nazwa_cechy</td></tr>\";
  3. ?>
mozesz np. stworzyc funkcje
  1. <?php
  2. function cechy_tab_end($ta_twoja_zmienna){
  3. return(&#092;"<tr align=center><td>$id_cn</td><td>$ta_twoja_zmienna</td></tr>\");
  4. }
  5.  
  6. //i wywolywac ja tak: 
  7. cechy_tab_end($nazwa_cechy);
  8. //=======================================
  9.  
  10.  
  11. //albo mysle ze prosciej tak:
  12. function cechy_tab_end(){
  13. global $nazwa_cechy;
  14. return(&#092;"<tr align=center><td>$id_cn</td><td>$ta_twoja_zmienna</td></tr>\");
  15. }
  16.  
  17. //i wywolanie juz bez parametru
  18. cechy_tab_end();
  19. ?>


Ten post edytował gruszek_ 21.02.2005, 18:13:23
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 11.10.2025 - 09:45