Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem ze skryptem
Forum PHP.pl > Forum > PHP
Fallout
Witam,

na początek listingi ,niestety rozjezdzaja sie tu na forum 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 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
gruszek_
zdaje sie ze zmienne z plikuw includnietych nie sa widoczne w plikach "nadrzednych", tych, w ktorych zostalo wywolane polecenie include. (ale zmienne z nadrezedbnych plikow sa dostepne w plikach includowanych)

jezeli myslisz ze to wina tego (nie wiem bo nei analizowalem za bardzo kodu tongue.gif ) to zamiast include uzyj require (nazwa dolaczanego pliku musi byc podana - nie moze byc to zmienna), z tego co w manualu czytalem to przy require najpierw dolaczane sa potrzebne pliki a potem dopiero rozpoczyna sie cala machina przetwarzania czy jak to nazwac winksmiley.jpg (a przy include pliki dolaczane sa na zawolanie, przy napotkaniu instrukcji include).
Fallout
Cytat(gruszek_ @ 2005-02-21 17:03:39)
zdaje sie ze zmienne z plikuw includnietych nie sa widoczne w plikach "nadrzednych", tych, w ktorych zostalo wywolane polecenie include. (ale zmienne z nadrezedbnych plikow sa dostepne w plikach includowanych)

jezeli myslisz ze to wina tego (nie wiem bo nei analizowalem za bardzo kodu tongue.gif ) to zamiast include uzyj require (nazwa dolaczanego pliku musi byc podana - nie moze byc to zmienna), z tego co w manualu czytalem to przy require najpierw dolaczane sa potrzebne pliki a potem dopiero rozpoczyna sie cala machina przetwarzania czy jak to nazwac winksmiley.jpg (a przy include pliki dolaczane sa na zawolanie, przy napotkaniu instrukcji include).

Hmm.. cos chyba ci sie pokrecilo ale oka smile.gif Manual mówi, że require i include różnią się tylko raportowaniem błędów..... ale poprawiłem troszke kod, i już znalazłem co nie pasuje...

w tym fragmencie:

  1. <?php
  2.  
  3. case 'cechy':
  4. {
  5.  
  6. $id_cn = $wiersz['id_cn'];
  7. $nazwa_cechy = $wiersz['nazwa_cechy'];
  8. echo $cechy_tab_end;
  9. }
  10. break;
  11.  
  12. ?>


jest odwolanie do zmiennej $cechy_tab_end ktora wyglada tak:

  1. <?php
  2.  
  3. $cechy_tab_end = &#092;"<tr align=center>
  4. <td>$id_cn</td>
  5. <td>$nazwa_cechy</td>
  6.  </tr>&#092;";
  7.  
  8. ?>


Gdy zamiast <td>$id_cn</td> dam <td>$id_cn AAA</td> to mi wyświetli tylko AAA. zmienna $id_cn nie posiada wartości z "$id_cn = $wiersz['id_cn']

W takim razie pytanie brzmi już o wiele prościej.. jak to rozwiązać? Jak przypisać do zmiennej w <td>$id_cn</td> wartosc z $wiersz['id_cn']?

Bardzo prosze o pomoc,
Pozdrawiam
gruszek_
na poczatek musze sam siebie ochrzanic:
Cytat
z plikuw
- polska jezyk trudna mowa tongue.gif

a teraz do rzeczy: NAJPIERW includujesz plik w ktorym uzywasz tej zmiennej a POTEM nadajesz jej wartosc (w tej petli) winksmiley.jpg
Fallout
  1. <?php
  2. function pokaz($co, $jak)
  3. {
  4. require 'config.inc.php'; <-------------------- TU INKLUDUJE
  5.  $p = mysql_connect($host,$user,$pass)  or Die ($blad['E_BASE']);
  6. $db = mysql_select_db($baza,$p)  or Die ($blad['E_DB']);
  7. $sql = &#092;"SELECT * FROM $co ORDER BY $jak\";
  8. $wynik = mysql_query($sql,$p)  or Die ($blad['E_QUERY']);
  9. switch ($co)
  10. {
  11. case 'cechy': echo $cechy_tab_start; break;
  12. case 'producenci': echo $producenci_tab_start; break;
  13. }
  14.  
  15. switch ($co)
  16. {
  17. case 'cechy':
  18. {
  19.  while ($wiersz = mysql_fetch_array($wynik))
  20. {
  21.  $id_cn = $wiersz['id_cn']; <----------- TU NADAJE WARTOŚĆ
  22.  $nazwa_cechy = $wiersz['nazwa_cechy'];
  23. echo $cechy_tab_end; <----------------- TU WYPISUJE
  24. }
  25. }
  26. break;
  27.  
  28. case 'producenci':
  29. {
  30. $id_producent = $wiersz['id_producent'];
  31.  $nazwa = $wiersz['nazwa'];
  32. $www = $wiersz['www'];
  33. $foto = $wiersz['foto'];
  34. echo $producenci_tab_end;
  35. }
  36. break;
  37.  
  38.  
  39. echo $tab_end;
  40. }
  41. }
  42. ?>



Wynik: nie działa sad.gif

a moze dlatego nie chodzi bo:

nie da sie przypisac wartosci zmiennej do takiego czegos:

$zmienna = "<td>$zmienna_do_ktorej_chce_przypisac_wartosc</td>";

i potem wypisac
echo $zmienna; (wraz z nowa zawartoscia $zmienna_do_ktorej_chce_....)

questionmark.gifquestionmark.gif
gruszek_
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 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. ?>
Fallout
aha, juz zrozumialem smile.gif (dzieki Ci!:))

czyli musze zadeklarowac zmienna przed przypisaniem jej do innej zmiennej
zanim ja wywolam... dobra wszystko pieknie.. ale jak...

kompletnie nie wiem co zrobic.. jedynym wyjsciem bedzie wyrzucenie tego chyba do innego includa tak mi sie zdaje.. jak jakies propozycje to chetnie poczytam


dzieki

oka...

po prostu wyrzucilem to do innego pliku, i inkludowalem to po przypisaniu wartosci do zmiennej, ale przed pobraniem tej nowej zminnej ze zmienna z wartoscia biggrin.gif

dzieki jeszcze raz,

pozdrawiam
gruszek_
edytnolem moj powyzszy post i podaem przykladowe rozwiazanie Twojego problemu, nie wiem czy tu jeszze zajrzysz wiec dla tego to pisze
Fallout
Cytat(gruszek_ @ 2005-02-21 18:15:30)
edytnolem moj powyzszy post i podaem przykladowe rozwiazanie Twojego problemu, nie wiem czy tu jeszze zajrzysz wiec dla tego to pisze

a kiedy Ty edytowales swoj, ja zrobilem jak napisalem i po problemie biggrin.gif dzieki wielkie za wskazowki.. !
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.