mysql results funktion
Ahoy - jeg keder mig lige lidt, og har ikke mulighed for at teste flg. ligenu.function mysql_p($query, $content, $prefix = "", $suffix = "", $arrt = "MYSQL_ASSOC", $db = "my_fancy_default_db") {
$db_selected = mysql_select_db($db);
if (!$db_selected) {
return mysql_error();
}
$result = mysql_query($query);
while ($row = mysql_fetch_array($result, $arrt)) {
foreach ($row as $key => $elem) {
${$key} = $elem;
}
$returnvar .= $content;
}
return $prefix . $returnvar . $suffix;
}
mysql_p("SELECT foo, bar FROM foobar WHERE foo = $bar","<tr><td>${'foo'}</td><td>${'bar'}</td></tr>\n","<table>\n","</table>\n");Det er egentligt bare for at lege lidt rundt, og for at lave en funktion, som med en simpel linje kan parse resultatet fra en query så fleksibelt som muligt.
Der er med garanti bedre måder at gøre det på, og da koden ovenfor som sagt er utestet, er der muligvist nogle syntax-fejl.
Hvordan ville du/i løse ovenstående?
Her er lige et par tillægsspørgsmål:
1.) når "${'foo'}" bruges i funktionskaldet, vil PHP så ikke brokke sig over at den ingen værdi har?
2.) vil "foreach ($row as $key => $elem) {${$key} = $elem;}" sløve scriptet rigtigt meget? (Det kommer naturligvist an på antallet af elementer i $row, og sikkert størrelsen af disse, men er det f.eks en fordobling af eksekveringstiden?)
3.) ville f.eks. "return $row;" beholde sine assosiative keys? (i det her tilfælde, ville det selvfølgeligt være irrelevant, da hvis man valgte at gøre det, ville hele idéen med funktionen bare være redundant).
Smider lige en god stak point på, for der er ikke rigtig nogen desideret løsning på ovenstående, da det i øjeblikket er et tankeeksperiment, og ikke et egentligt problem - så folk kommer nok til at dele lidt :)
