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:
<?php
function pull($item, $method = NULL) { // Generowanie ciągu do zapytania mysql
$return = NULL;
/*
OJAŚNIENIE SYTUACJI
1 - Została podana jedynie nazwa elementu
Przykład: array('imie', 'nazwisko')
2 - Została podana tablica zawierająca nazwę elementu i jej wartość, która nie jest obiektem
Przykład: array(
array('imie', 'Jan'),
array('imie', $autor),
array('imie', $_POST['autor'])
)
3 - Została podana tablica zawierająca nazwę elementu i jej wartość, która jest tablicą i przyjmuje wartość nazwy elementu
Przykład: array(
array('imie', $_POST),
array('imie', $_GET)
)
*/
$method = $_POST;
}
for ($i = 0
, $to = count($item)-1; $i <= $to; $i++) { // Sytuacja 3
$return .= '`'.$item[$i].'` = ''.$item[$i][1][$item[$i][0]].'', ';
} else {
// Sytuacja 2
$return .= '`'.$item[$i][0].'` = ''.$item[$i][1].'', ';
}
} else {
// Sytuacja 1
$return .= '`'.$item[$i].'` = ''.$method[$item[$i]].'', ';
}
}
return substr($return, 0
, -2
); }
?>
I stąd zamiast:
<?php
mysql_query("INSERT INTO `name` SET `imie`='$_POST[imie]', `nazwisko`='$_POST[nazwisko]', `gg`='$_POST[gg]', `jabber`='$_POST[jabber]', `email`='$_POST[email]'"); ?>
Mamy:
<?php
mysql_query("INSERT INTO `name` SET ".pull
(array('imie', 'nazwisko', 'gg', 'jabber', 'email'))); ?>
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