sprintf mit einem Array?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
dank
date
daten
durchgang
eins
fehlermeldung
funktion
global error
klasse
limit
parameter
result
rufen
schleifen
-
Hiho,
Ich habe mir jetzt eine neue MySQL Klasse geschrieben, aber leider komm ich nicht weiter.
Also zuerst einmal der wichtigste Code. ;)
function query ($sql, $daten = false) {
global $error;
printf($sql, $daten[0], $daten[1]); // EINS
if ($daten != false) {
$daten = $this -> slashes($daten);
if (is_array($daten)) {
foreach($daten as $index => $date) { // ZWEI
$sql = sprintf($sql, $daten[$index]);
}
} else {
$sql = sprintf($sql, $daten);
}
}
$result = mysql_query($sql);
if (!$result) {
// Fehlermeldung erstellen
}
$query = array();
while($res = mysql_fetch_array($result)) {
$query[] = $res;
}
if (!$res) {
// Fehlermeldung erstellen
}
return $query;
}
Die Funktion rufe ich jetzt so auf :
$daten = array();
$daten[] = 'admin';
$daten[] = '0,1';
$result = $mysql -> query('SELECT * FROM `%s` LIMIT %s', $daten);
Das Problem ist ich bekomme bei ZWEI eine Fehlermeldung, weil er mehr Parameter erwartet, da ja zwei %s im String sind, aber ich nur einens pro Durchgang der Schleife ersetzten will.
Bei EINS wird alles korrekt ausgegeben, aber ich will ja unterschiedliche viele Werte ?bergeben.
Hoffe mir kann jemand helfen! :)
ps : Das mit dem [ code ] funtzt leider nicht, da ein > falsch dargestellt wird...
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So das Problem hat sich jetzt dank dem IRC Channel #php!
Die Funktion die ich selber machen wollte gibt es bereits in PHP und sie heisst
vsprintf().
http://php.net/vsprintf
Der Thread kann geschlossen werden! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage