Function met variablen
Ik wil een update functie maken voor het updaten voor een profiel in mijn DB. Nu heb ik allen 20 velden en wil dus een functie maken waar bij ik kan zeggen welke data ik mee stuur.
Voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
function send_data($a, $b, $c, $d, $e, $id){
$sql = "UPDATE table SET a=$a, b=$b, c=$c, d=$d, e=$e WHERE id = $id";
mysql_query($sql);
}
?>
function send_data($a, $b, $c, $d, $e, $id){
$sql = "UPDATE table SET a=$a, b=$b, c=$c, d=$d, e=$e WHERE id = $id";
mysql_query($sql);
}
?>
Nu wil ik deze functie kunnen aanroepen en bijv allen A en D mee geven
Kan dit ? zo ja hoe ?
Controleer dan vervolgens wel in je function of de variabele die je wilt gebruiken leeg zijn.
Tips: mysql_* is deprecated. Gebruik liever MySQLi of PDO. Ik neem aan dat het alfabet als voorbeeld is, maar altijd duidelijke namen gebruiken.
Je zou eens kunnen kijken naar een Ternary Operator. http://www.php.net/manual/en/language.operators.comparison.php
Je query zal wel veel groter worden maar ook flexibeler.
Code (php)
Bovenstaande code is een indicatie om je op weg te helpen.
Succes!
Gewijzigd op 15/04/2014 15:57:29 door Pieter Zandman
Michael - op 15/04/2014 15:54:29:
Door de variabele alvast in te vullen kun je deze optioneel maken
Controleer dan vervolgens wel in je function of de variabele die je wilt gebruiken leeg zijn.
Tips: mysql_* is deprecated. Gebruik liever MySQLi of PDO. Ik neem aan dat het alfabet als voorbeeld is, maar altijd duidelijke namen gebruiken.
Controleer dan vervolgens wel in je function of de variabele die je wilt gebruiken leeg zijn.
Tips: mysql_* is deprecated. Gebruik liever MySQLi of PDO. Ik neem aan dat het alfabet als voorbeeld is, maar altijd duidelijke namen gebruiken.
Oke maar hoe foep ik de fuctie aan ? kan je daar ook een voorbeeld van geven zeg ik wil allen A en D mee geven
Dat is dus het lastigste, je moet wel de variabelen in die volgorde gebruiken. Als je A en D wilt mee geven, zul je B en C ook mee moeten geven. E en D kun je wel weg laten.
send_data('A','','','D');
>>> Je zou eens kunnen kijken naar een Ternary Operator
Ternary Operator is niets anders dan een verkorte if/else statement en staat los van function.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
function send_data($data, $id) {
$build = array();
foreach($data as $k=>$v) {
$build[] = "`".$k."` = '".mysql_real_escape_string($v)."'";
}
$sql = "UPDATE `table` SET ".implode(", ",$build)." WHERE `id`=".intval($id);
mysql_query($sql);
}
?>
function send_data($data, $id) {
$build = array();
foreach($data as $k=>$v) {
$build[] = "`".$k."` = '".mysql_real_escape_string($v)."'";
}
$sql = "UPDATE `table` SET ".implode(", ",$build)." WHERE `id`=".intval($id);
mysql_query($sql);
}
?>
Ik zou de lelijke backticks (`) weglaten en als het enigszins mogelijk is vast gaan kijken naar MySQLi of PDO.