Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd w funkcji czy w składni?
Forum PHP.pl > Forum > Przedszkole
neoski
Sam w sumie nie wiem gdzie robie problem. Prosiłbym o przejrzenie tego co niżej i ew. podpowiedzi.

  1. <?php 
  2. $slc="selected=\"selected\"";
  3. function countryselect($country,$select,$change) { 
  4.  
  5. print "<select name=\"$select\" class=\"form\" onChange=\"var a=theform.$select.options[theform.$select.selectedIndex].value; document.get
    ElementById('$change').src=a\">"
    ;
  6.  
  7. $sql_flags="SELECT * FROM flags ORDER BY name DESC";
  8. $data_flags=mysql_query($sql_flags, $db);
  9. while ($flags = mysql_fetch_object ($data_flags)) {
  10. print "<option value=\"$flags->image\""; 
  11. if($country=="$flags->short") { print "$slc"; }
  12. print ">"; 
  13. print "$flags->name</option><br>"; } ?>
  14.  
  15. </select>&nbsp;
  16.  
  17. <?php if(empty($country)) { $country="images/flags/na.gif"; }
  18. else { $country="images/flags/$country.gif"; } 
  19. print "<img src=\"$country\" id=\"$change\" alt=\"\">"; }
  20.  
  21. function countrylist($country) {
  22.  
  23. $sql_flags2="SELECT * FROM flags ORDER BY name DESC";
  24. $data_flags2=mysql_query($sql_flags2, $db);
  25. while ($flags2 = mysql_fetch_object ($data_flags2)) { 
  26. if($country=="$flags2->short") { $country2="$flags2->name"; } }
  27.  
  28. print "$country2"; } ?>


Error jaki wywala to:
Kod
Warning:  mysql_query(): supplied argument is not a valid MySQL-Link resource in <b>C:\Xampp\xampp\htdocs\wgk\system\country.php</b> on line 8

Warning:  mysql_fetch_object(): supplied argument is not a valid MySQL result resource in <b>C:\Xampp\xampp\htdocs\wgk\system\country.php</b> on line 9


Plik wywołuję tym:
  1. <?php include ("system/country.php"); countrylist("$users->country"); ?>
dr_bonzo
A kolega zapomnial o polaczeniu sie z serwerem baz danych i wybraniu bazy danych? Odsylam do manuala.
neoski
Łączę się za pośrednictwem configa.

  1. <?php 
  2. $db = mysql_connect("localhost","root","****"); mysql_select_db("cms1");
  3. ?>
mike
Przeczytaj dokładnie to: Zasięg zmiennych

Jesli łączysz się poza funkcją i identyfikator połączenia przekazujesz do zmiennej $db to nic Ci nie da.
Bo zmienna ta nie jest widoczne wewnątrz funkcji.
ActivePlayer
są 3 wyjscia z Twojego problemu...

1. usuwasz wszystkie identyfikatory $db z mysql_query (wtedy będzie wybrane domyślne, w Twoim przypadku jedyne połączenie, więc problem znika)
2. w kazdej funkcji gdzie uzywasz bazy danych dodajesz
  1. <?php
  2.  
  3. global $db;
  4.  
  5. ?>

3. przekazujesz db w parametrze funkcji czyli:
  1. <?php 
  2. include ("system/country.php"); 
  3. countrylist("$users->country", $db); 
  4.  
  5. //....
  6. function countrylist($country, $db) {
  7. $sql_flags2  = "SELECT * FROM flags ORDER BY name DESC";
  8. $data_flags2  = mysql_query($sql_flags2, $db);
  9. while ( $flags2 = mysql_fetch_object ( $data_flags2 ) ) { 
  10. if ( $country == $flags2->short ){ 
  11. $country2 = $flags2->name; 
  12. } 
  13. }
  14. print $country2;
  15. }
  16. ?>


nawiasem mówiąc, piszesz strasznie kod. uzywaj wcięć i trzymaj sie jakichs standardów
neoski
Cytat("ActivePlayer")
są 3 wyjscia z Twojego problemu...

1. usuwasz wszystkie identyfikatory $db z mysql_query (wtedy będzie wybrane domyślne, w Twoim przypadku jedyne połączenie, więc problem znika)
O! I to wyjście jest najlepsze smile.gif.

Cytat("ActivePlayer")
nawiasem mówiąc, piszesz strasznie kod. uzywaj wcięć i trzymaj sie jakichs standardów
Nawiasem mówiąc wcale nie lepiej piszesz po polsku smile.gif. No offence of course.

Dzięki za pomoc! Pozdrawiam.
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.