Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przekazywanie pustej zmiennej do funkcji.
MalyKazio
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Witam.

Piszę funkcję dodającą dane do bazy danych. Jako jedyny argument przekazuję do funkcji tablicę $wartosci. Przed dodaniem wszystkie dane są przepuszczane przez funkcję sprawdzającą ich poprawność. Mam pytanie dotyczące danych, które mają być liczbami. Funkcja sprawdzająca wygląda mniej więcej tak:
  1. <?php
  2. function sprawdz($co) {
  3. (int)$co;
  4. // dalej sprawdzanie zakresu itp.
  5. }
  6. ?>

Przed dodaniem do bazy wywołuję dla każdej porzebnej wartości funkcję czyli np:
  1. <?php
  2. $dodaj['wiek']=sprawdz($wartosci['wiek']);
  3. ?>

Czasem jednak przekazywana tablica $wartosc może nie zawierać $wartosci['wiek']. Czy zatem błędem jest przekazywanie tego do funkcji sprawdz? Czy konieczne jest uprzednie sprawdzenie, czy taka wartosc w tablicy istnieje?

Ten post edytował MalyKazio 27.04.2008, 12:40:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MalyKazio
post
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 1
Dołączył: 19.11.2005

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


Ok, wiem już mniej więcej jak to zrobić.
Mam funkcję dodającą rekord do bazy danych. Wygląda to mniej więcej tak:
  1. INSERT INTO ludzie(id,nazwisko,imie,wiek,nrdomu,nrbuta,iloscdzieci) VALUES('',$wartosci['nazwisko'],$wartosci['imie'],$wartosci['wiek'],$wartosci['nrdomu'],$wartosci['nrbuta'],$wartosci['iloscdzieci'])


Potrzebuję tych wartości w tablicy $wartosci. Czasem jednak niektóre są nieustawione np. wiek, nrdomu, iloscdzieci. Dane tekstowe juz sobie przygotowałem wcześniej. Potrzebuję jeszcze kompletu danych typu INT, które nie zawsze są w tablicy $wartosci i w przypadku ich braku trzeba uzupełnić je wartościami domyślnymi. Stąd też kod:

  1. <?php
  2. // funkcja sprawdzajaca czy wartosc w tablicy istnieje i przypisująca jej wartosc domyslna w przypadku nieistnienia
  3. function sprawdzczyjest($co,$domyslna) {
  4. global $wartosci; // dodalem bo brakowalo wczesniej
  5. if(isset($wartosci[$co])) { // nie wiem czy nie zastąpić lepiej tego array_key_exists
  6. $wartosci[$co]=$wartosci[$co]; // tu jeszcze docelowo funkcja sprawdzajaca poprawnosc danych waliduj($wartosci[$co])
  7. } else {
  8. $wartosci[$co]=$domyslna;
  9. }
  10. return $wartosci[$co];
  11. }
  12.  
  13. $a = array('wiek', 'nrdomu', 'nrbuta', 'liczbadzieci'); // tablica z koniecznymi wartosciami $wartosci
  14. $b = array(18, 0, 40, 1); // wartosci domyslne
  15.  
  16. $wartosci .= array_map("sprawdzczyjest", $a, $b);
  17. ?>


BIM2 Twoje rozwiązanie, o ile moja skromna znajomość php mi podpowiada nie uzupełni mi brakujących danych w tablicy $wartosci, prawda? Ale dzięki za naprowadzenie na rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował MalyKazio 27.04.2008, 15:16:02
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 14:08