Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Krótka funkcja ułatwiająca korzystanie z zapytań do bazy danych
Kildyt
post
Post #1





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Witajcie!

Piszę aktualnie nową wersję redbooka i pomyślałem, że niektórym powinna ułatwić życie krótka funkcja, która generuje ciąg do zapytań do bazy danych.
Przy okazji proszę o ocenę.

Oto kod:
  1. <?php
  2. function pull($item, $method = NULL) { // Generowanie ciągu do zapytania mysql
  3.    $return = NULL;
  4.    
  5.    /*
  6.     OJAŚNIENIE SYTUACJI
  7.     1 - Została podana jedynie nazwa elementu
  8.         Przykład: array('imie', 'nazwisko')
  9.     2 - Została podana tablica zawierająca nazwę elementu i jej wartość, która nie jest obiektem
  10.         Przykład: array(
  11.                                         array('imie', 'Jan'),
  12.                                         array('imie', $autor),
  13.                                         array('imie', $_POST['autor'])
  14.                                     )
  15.     3 - Została podana tablica zawierająca nazwę elementu i jej wartość, która jest tablicą i przyjmuje wartość nazwy elementu
  16.         Przykład: array(
  17.                                         array('imie', $_POST),
  18.                                         array('imie', $_GET)
  19.                                     )
  20.     */
  21.    
  22.    if (empty($method)) {
  23.        $method = $_POST;
  24.    }
  25.    
  26.    for ($i = 0, $to = count($item)-1; $i <= $to; $i++) {
  27.        if (is_array($item[$i])) {
  28.            if (is_array($item[$i][1])) {
  29.                // Sytuacja 3
  30.                $return .= '`'.$item[$i].'` = ''.$item[$i][1][$item[$i][0]].'', ';
  31.            } else {
  32.                // Sytuacja 2
  33.                $return .= '`'.$item[$i][0].'` = ''.$item[$i][1].'', ';
  34.            }
  35.        } else {
  36.            // Sytuacja 1
  37.            $return .= '`'.$item[$i].'` = ''.$method[$item[$i]].'', ';
  38.        }
  39.    }
  40.    
  41.    return substr($return, 0, -2);
  42. }
  43. ?>


I stąd zamiast:
  1. <?php
  2. mysql_query("INSERT INTO `name` SET `imie`='$_POST[imie]', `nazwisko`='$_POST[nazwisko]', `gg`='$_POST[gg]', `jabber`='$_POST[jabber]', `email`='$_POST[email]'");
  3. ?>
Mamy:
  1. <?php
  2. mysql_query("INSERT INTO `name` SET ".pull(array('imie', 'nazwisko', 'gg', 'jabber', 'email')));
  3. ?>


Funkcja napisana w kilkanaście minut. Licencja GPL v3.
Może się to wielu wydawać dziwne, że tak prosty kod daję do oceny i publikuję na GPL-u, ale chciałbym dać chociaż mały znak, że wspieram open source! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Kildyt 2.03.2009, 18:08:33
Go to the top of the page
+Quote Post

Posty w temacie
- Kildyt   [php] Krótka funkcja ułatwiająca korzystanie z zapytań do bazy danych   2.03.2009, 14:38:03
- - .radex   [PHP] pobierz, plaintext <?phpfor ($i = 0, ...   2.03.2009, 15:21:07
|- - Kildyt   Cytat(.radex @ 2.03.2009, 17:21:07 ) ...   2.03.2009, 18:07:53
|- - .radex   Cytat(Kildyt @ 2.03.2009, 18:07:53 ) ...   2.03.2009, 18:55:06
- - Kildyt   Używam w nowym CMS-ie: error_reporting(E_ALL), wię...   2.03.2009, 15:29:50
|- - mike   Cytat(Kildyt @ 2.03.2009, 15:29:50 ) ...   2.03.2009, 15:37:38
- - bim2   count() wydziel do zmiennej i na niej iteruj... P...   2.03.2009, 16:35:53
|- - mike   Cytat(bim2 @ 2.03.2009, 16:35:53 ) co...   2.03.2009, 16:37:09
- - bim2   @mike Tak jest jak patrzy się na for( i count() ;d...   2.03.2009, 19:28:33
- - erix   A czemu nie zrobisz funkcji w stylu: [PHP] pobierz...   2.03.2009, 20:54:25
- - Crozin   Jak będę miał jakąś wartość numeryczną to efektem ...   3.03.2009, 23:42:12
- - Kildyt   Wartość zawsze będzie w apostrofach. Zastosowanie ...   4.03.2009, 11:38:51
- - nospor   CytatWartość zawsze będzie w apostrofach.ale zdaje...   4.03.2009, 11:50:02
- - phpion   Cytat(Kildyt @ 2.03.2009, 16:38:03 ) ...   4.03.2009, 12:09:12
- - Kildyt   Trochę poprawiłem. Apostrofy nie s...   4.03.2009, 13:18:23
- - Crozin   A co jak będę chciał np. zrobić UPDATEa:[SQL] pobi...   4.03.2009, 14:36:57
|- - Kildyt   Cytat(Crozin @ 4.03.2009, 16:36:57 ) ...   4.03.2009, 15:00:00
- - sowiq   Cytatarray('sthCount', '`sthCount ...   4.03.2009, 15:03:19
|- - Kildyt   Cytat(sowiq @ 4.03.2009, 17:03:19 ) T...   4.03.2009, 15:17:06
- - Crozin   Z góry zaśmiecasz wszystkie zmienne z $_POST,...   4.03.2009, 16:03:49
|- - Kildyt   Cytat(Crozin @ 4.03.2009, 18:03:49 ) ...   4.03.2009, 18:12:54
- - erix   CytatCo jest złego w hurtowym przefiltrowaniu zmie...   4.03.2009, 20:27:34
|- - .radex   Cytat(erix @ 4.03.2009, 20:27:34 ) An...   4.03.2009, 21:55:07
- - nospor   Cytatto się odfiltruje To przepuszczaj tez od...   4.03.2009, 22:18:32
- - Crozin   Poprzednicy już ładnie skrytykowali za m...   6.03.2009, 19:45:13
- - rzymek01   nie dałeś nawiasu w linii 6,7 i 11   6.03.2009, 20:01:11


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: 25.08.2025 - 02:39