Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]zwracana tablica
Forum PHP.pl > Forum > Przedszkole
miallih
Witam, mam funkcje zwracającą tablice danych. Otóż ta funkcja uruchomiona raz, działa dobrze, ale jak ją odpalę drugi raz w tym samym skrypcie to już zwraca tylko część wyników. Ma ktoś pomysł dlaczego tak się dzieje?
lDoran
nikt tu nie wróży z fusów daj kod
nospor
Bład jest w linii nr 5.
Wstaw tam taki kod:
  1. die 'Wrozek nie ma! Podaj kod';

A od razu zauważysz różnicę.
miallih
  1. function zmienne_postaci($id_postaci)
  2. {
  3.  
  4. include_once('../postac/ekwipunek.php');
  5. $polaczenie=mysqli_connect(host, login, password, basename);
  6.  
  7. $zapytanie_o_staty = "SELECT str, agi, con, wis, `int`, cha, fort, will, ref, bab, zycie, zycie_maksymalne,
  8. witalnosc, wielkosc FROM baza_postaci WHERE id_postaci = '$id_postaci'";
  9. $staty = mysqli_query($polaczenie, $zapytanie_o_staty);
  10. $postac = mysqli_fetch_array($staty);
  11.  
  12. $postac['str_mod']=modyfikator($postac['str']);
  13. $postac['agi_mod']=modyfikator($postac['agi']); $postac['ref']=$postac['ref']+($postac['agi_mod']);
  14. $postac['con_mod']=modyfikator($postac['con']); $postac['fort']=$postac['fort']+($postac['con_mod']);
  15. $postac['wis_mod']=modyfikator($postac['wis']); $postac['will']=$postac['will']+($postac['wis_mod']);
  16. $postac['int_mod']=modyfikator($postac['int']);
  17. $postac['cha_mod']=modyfikator($postac['cha']);
  18. $magia_ac=0;
  19. $uniki_ac=0;
  20. $naturalne_ac=0;
  21. if($wielkosc != 'medium')
  22. {
  23. switch($postac['wielkosc'])
  24. {
  25. case 'small':
  26. $wielkosc_ac = 1;
  27. break;
  28. case 'large':
  29. $wielkosc_ac = -1;
  30. break;
  31. case 'medium':
  32. $wielkosc_ac=0;
  33. break;
  34. }
  35. }
  36. $postac['ac']=10+$agi+$reka_lewa['ac']+$armor['ac']+($wielkosc_ac)+$naturalne_ac+$magia_ac+$uniki_ac;
  37. $postac['touch_ac']=10+$agi+($wielkosc_ac)+$magia_ac+$uniki_ac;
  38. $postac['flatfooted_ac']=10+($wielkosc_ac)+$magia_ac+$uniki_ac+$reka_lewa['ac']+$armor['ac'];
  39. $postac['right_dmg']=$reka_prawa['dmg_'.$postac['wielkosc']];
  40. $postac['left_dmg']=$reka_lewa['dmg_'.$postac['wielkosc']];
  41. $postac['melee_hit']=$postac['bab']+($postac['str_mod']);
  42.  
  43. $postac['right_weapon']= $ekwipunek['right_hand'];
  44. $postac['left_weapon']= $ekwipunek['left_hand'];
  45. $postac['left_shield']=$ekwipunek['left_hand'];
  46. $postac['armor']= $ekwipunek['body'];
  47. return $postac;


nie wyświetla tych ostatnich danych tabeli:/ jakby nie widziało pliku include once ekwipunek:/
nospor
include_once wczytuje plik tylko raz. Jak chcesz go wczytywac za kazdym razem to zrob include
miallih
Ok, dzięki działa. Sory za zaśmiecanie ale już mnie szlak trafiałsmile.gif
nospor
Fajnie, że działa, ale logikę to masz złą smile.gif
Nie należy za każdym razem tworzyć połączenia do bazy danych.
Podczas działania skryptu połączenie do bazy masz stworzyć tylko raz i w całym skrypcie z niego korzystać. Tutaj zaś, w kodzie co pokazałeś, to za kazdym wywolaniem funkcji tworzysz połączenie do bazy. Podejrzewam, że inne Twoje kody wyglądają równie źle.
miallih
Tyle że za każdym razem połączenie jest zamykane zaraz na końcu skryptu. Skrypty są pisane tak aby zawsze można było je wywołać bez konieczności wstawiania w nowym skrypcie niepotrzebnych zmiennych.
nospor
Cytat
Tyle że za każdym razem połączenie jest zamykane zaraz na końcu skryptu
I? Odpalasz 10 razy funkcje i 10 razy otwierasz połączenie z bazą. Baaardzo nie optymalne.

Cytat
Skrypty są pisane tak aby zawsze można było je wywołać bez konieczności wstawiania w nowym skrypcie niepotrzebnych zmiennych.
Skrypt ten jest napisany tak:
- nieoptymalnie
- be znajomości podstawowych zasad
- o znajomości wzorców już nie wspominając

Rada: poducz się trochę i nie pisz, że skrypt ten jest napisany fajnie winksmiley.jpg
miallih
Ok. snitch.gif
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.