SQL Funktion?

Hiob

Mitglied
Hallo Leute.
Ich bins mal wieder. Ich stehe gerade auf dem Schlauch und brauche Hilfe.
Folgendes:
Ich erstelle ein Essensmenü für die Kantine. Das Menü wechselt logischerweise jede Woche.
Nun kann der Admin jeden für jeden Tag das Menü (pro Tag gibt es fünf verschiedene Menü) per html und php eingeben.
Nun die Frage:
Beim Auslesen der Variablen, wird der Inhalt in der DB gespeichert bzw. überschrieben (UPDATE). Kann man sich irgendwie eine Funktion bauen, die das auslesen der Daten und das (über)schreiben in die DB macht. Sodass ich im Quelltext immer nur dir Funktion aufrufen kann?
Ich finde es nämlich sehr unübersichtlich und auch unlogisch wenn ich in jedes Skript den mehr oder weniger selben Quellcode kopieren muss. Wie z.B den Quellcode:
PHP:
//for monday    
$m1 = mysqli_real_escape_string($db, trim($_POST['menu1']));  
$m2 = mysqli_real_escape_string($db, trim($_POST['menu2']));  
$m3 = mysqli_real_escape_string($db, trim($_POST['menu3']));  
$m4 = mysqli_real_escape_string($db, trim($_POST['menu4']));  
$m5 = mysqli_real_escape_string($db, trim($_POST['menu5']));  

if(isset($_POST['save'])){

//Update the Database with weekly menu
$sql="UPDATE monday SET menu1=('$m1'), menu2=('$m2'), menu3=('$m3'), menu4=('&m4'), menu5=('$m5') WHERE monday ='$monday'";
Ich hoffe Ihr wisst was ich meine.
Danke vielmals
 
Klar kanst du das
Ich weiss zwar nicht welchen Teil du genau innerhalb der Funktion haben willst, aber so etwa kann das nachher aussehen

Achja, dein WHERE ist komisch. Da hast eine Tabelle Mondy und darin prüfst noch ob monday monday ist. Irgendwie komisch.

PHP:
$menus = array($_POST['menu1'], $_POST['menu2'], $_POST['menu3'], $_POST['menu4'], $_POST['menu5'])
$weekday = 'monday';

updateWeekDay($weekday, $menus);

function updateWeekDay($weekday, $menus){
	global $db;
	foreach($menus as $nr => $menu){
		$menu = trim($menu);
		$menu = mysqli_real_escape_string($db, $menu);
		$sets[] = "menu{$nr} = '{$menu}'";
	}
	$sql = "UPDATE {$weekday} SET " . implode($sets, ', ') . "WHERE {$weekday} = '{$weekday}'";
	mysql_query($sql);
}
 
Zurück