Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcje w jednym pliku
Forum PHP.pl > Forum > Przedszkole
walus16
Witam, mam pewien problem możliwe, że dla was banalny. Męczę się od godziny jak to rozwiązać i nim mi nie przychodzi do głowy.
Otóż mam dwa pliki to silnik.php ,który muszę trochę przerobić a drugi to sterownik_mysql.php. Chcę te dwa pliki połączyć w całość ale przy zapytaniach do bazy pojawił się problem.

silnik.php
  1. if($BazaDanych == 'mysql')
  2. {
  3. $ZapytanieKonfiguracja = 'SELECT konfig_nazwa,konfig_wartosc FROM '.$PrefixTabelek.'konfig';
  4. }
  5.  
  6. if(!WykonajZapytanie($ZapytanieKonfiguracja))
  7. {
  8. PokazBlad('Błąd w zapytaniu',__FILE__,__LINE__,$ZapytanieKonfiguracja);
  9. }
  10.  
  11. $Wynik = PobierzWynik();
  12. $IleWynikow = PobierzIlosc();
  13.  
  14. for($i=0;$i<$IleWynikow;$i++)
  15. {
  16. $KluczWyniku = $Wynik[$i]['konfig_nazwa'];
  17. $KonfiguracjaWitryny[$KluczWyniku] = $Wynik[$i]['konfig_wartosc'];
  18. }


sterownik_mysql.php
  1. function WykonajZapytanie($ZapytanieDoBazy)
  2. {
  3. global $WynikZapytania;
  4.  
  5. $WynikZapytania = mysql_query($ZapytanieDoBazy);
  6.  
  7. if($WynikZapytania)
  8. {
  9. return TRUE;
  10. }
  11. else
  12. {
  13. return FALSE;
  14. }
  15. }
  16.  
  17. function PobierzWynik()
  18. {
  19.  
  20. global $WynikZapytania;
  21.  
  22. while($wiersz = mysql_fetch_array($WynikZapytania,MYSQL_ASSOC))
  23. {
  24. $RezultatZapytania[] = $wiersz;
  25. }
  26.  
  27. return $RezultatZapytania;
  28. }
  29.  
  30. function PobierzIlosc()
  31. {
  32. global $WynikZapytania;
  33.  
  34. $IloscRekordow = mysql_num_rows($WynikZapytania);
  35.  
  36. return $IloscRekordow;
  37. }


Próbując to połączyć napisałem taki skrypt, ale nie działa:
  1. $result = mysql_query("SELECT konfig_nazwa, konfig_wartosc FROM ".$PrefixTabelek." konfig") or die ("Zapytanie niepoprawne");
  2. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  3. $num_rows = mysql_num_rows($result);
  4.  
  5. $Wynik = ; // Nie wiem co podstawić
  6. $IleWynikow = ; // Nie wiem co podstawić
  7.  
  8. for($i=0;$i<$IleWynikow;$i++)
  9. {
  10. $KluczWyniku = $Wynik[$i]['konfig_nazwa'];
  11. $KonfiguracjaWitryny[$KluczWyniku] = $Wynik[$i]['konfig_wartosc'];
  12. }


Bardzo proszę was o pomoc.
peter13135
Kod
".$PrefixTabelek." konfig"

czyżbym widział spację ?

Kod
    $IleWynikow =; // Nie wiem co podstawić

Wiesz może co robi ta linijka ?
Kod
$num_rows = mysql_num_rows($result);


tutaj podobnie:
Kod
$Wynik =; // Nie wiem co podstawić

Kod
$row = mysql_fetch_array($result, MYSQL_ASSOC)


poza tym, jeśli masz wiele wierszy w danym zapytaniu, to robisz pętlę... no i ty ją zrobiłeś ale bez sensu, bo w tej pętli jest tylko mysql_free_results.

Ogólnie mówiąc : piszesz same głupoty. Bez obrazy, ale stoisz na samym początku. Weź się za jakikolwiek kurs php - mysql
walus16
Spacje poprawiłem.

Odnośnie:
mysql_fetch_array() - zapisuje wiersz wyniku w tablicy
mysql_num_rows() - zwraca liczbę wierszy w wyniku

Mógłbyś napisać jak coś takiego ma poprawnie wyglądać?
peter13135
w takim razie, dlaczego głowisz się nad tymi linijkami ?
Kod
      $Wynik =; // Nie wiem co podstawić
    $IleWynikow =; // Nie wiem co podstawić


Jadę dalej:

Kod
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  mysql_free_result($result);

Nie widzisz jakie głupoty tu napisałeś ? za pierwszym "przejściem: pętli usuwasz $results, a więc kończysz od razu pętlę

Kod
$num_rows = mysql_num_rows($result);

jak to chcesz odczytać, skoro wyczyściłeś zmienną result questionmark.gif

ok napisze poprawnie:

  1. mysql_connect(parametry);
  2. mysql_select_db(nazwa_bazy);
  3. $sql = mysql_query(zapytanie);
  4. $wyniki = array();
  5. while($row = mysql_fetch_assoc($sql))
  6. $wyniki[] = $row;
  7. $IleWynikow = count($wynik);//nie użyję tej zmiennej w skrypcie, ale... w twoim skrypcie miałeś to i tu ci dam, tylko trochę innym sposobem.
  8.  
  9. foreach($wyniki as $wynik)
  10. {
  11. echo $wynik['nazwa_kolumny'];
  12. }
  13.  
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.