Guten Abend zusammen,
aus Performance-Gründen (da direkt mal eine Frage... was geht mehr auf die leistung, ein langer quellcode oder massenweise tabelleneinträge... nehmen wir zb. an ein user kann 10 sachen ein- und ausstellen... dann würde ich 10 bool-spalten nehmen... ist das von der leistung her besser wenn ich nur eine nehme und dann mit arrays arbeite?) also aus Performance-Gründen möchte ich gerne mehrere Werte (Array) in eine Spalte der db schreiben...
würde ja beispielsweise mit base64_encode(gzcompress(serialize($xxx))) gehen...
Ausgeben mit unserialize(gzuncompress(base64_decode($xxx))) ...
(Das hab ich übrigends auch hier aus dem forum)
So wie arbeite ich jetzt bei WHERE mit arrays?
Folgendes Beispiel:
WHERE settings['a'] ='1' ist natürlich quatsch... ich hab keine idee wie ich das lösen könnte...
Also ich könnte natürlich auch mit implode und explode arbeiten... zb. werte mit kommata trennen aber auch da wüsste ich nicht wie ich damit die db durchsuchen kann
habe auch mal zum testen folgendes probiert:
Obwohl da die vergleichenden Werte ja genau gleich sind (habe per echo nachgeguckt und in die tabelle geschaut,bei beiden eJwrtjKxUipJLS5RsgYAFCoDWw==) gibt er nichts zurück...
Ich hoffe jemand hat eine Idee... ansonsten muss ich halt ganz viele Spalten anlegen...
Danke schonmal - Rick
aus Performance-Gründen (da direkt mal eine Frage... was geht mehr auf die leistung, ein langer quellcode oder massenweise tabelleneinträge... nehmen wir zb. an ein user kann 10 sachen ein- und ausstellen... dann würde ich 10 bool-spalten nehmen... ist das von der leistung her besser wenn ich nur eine nehme und dann mit arrays arbeite?) also aus Performance-Gründen möchte ich gerne mehrere Werte (Array) in eine Spalte der db schreiben...
würde ja beispielsweise mit base64_encode(gzcompress(serialize($xxx))) gehen...
Ausgeben mit unserialize(gzuncompress(base64_decode($xxx))) ...
(Das hab ich übrigends auch hier aus dem forum)
So wie arbeite ich jetzt bei WHERE mit arrays?
Folgendes Beispiel:
PHP:
<?php
$array = array("a" => "1", "b" => "2");
$string = base64_encode(gzcompress(serialize($array)));
# ... Schreibe umgewandelten String > eJxLtDKyqi62MrRSSlSyBtOGUDoJShspWdcCAL8nCYI= in Datenbank ...
# Durchsuche in Datenbank den String
$LD_1 = mysql_query("SELECT * FROM user WHERE settings['a'] ='1'");
while($LD1 = mysql_fetch_array($LD_1)) {
$username = $LD1['username'];
echo "$username<br>"; }
?>
WHERE settings['a'] ='1' ist natürlich quatsch... ich hab keine idee wie ich das lösen könnte...
Also ich könnte natürlich auch mit implode und explode arbeiten... zb. werte mit kommata trennen aber auch da wüsste ich nicht wie ich damit die db durchsuchen kann
habe auch mal zum testen folgendes probiert:
PHP:
$test = "test";
$string = base64_encode(gzcompress(serialize($test)));
$o1 = mysql_query("SELECT * FROM user WHERE settings = '$string'");
$o1_ = mysql_fetch_array($o1);
$o1_name = $o1_['name'];
echo $o1_name;
Obwohl da die vergleichenden Werte ja genau gleich sind (habe per echo nachgeguckt und in die tabelle geschaut,bei beiden eJwrtjKxUipJLS5RsgYAFCoDWw==) gibt er nichts zurück...
Ich hoffe jemand hat eine Idee... ansonsten muss ich halt ganz viele Spalten anlegen...
Danke schonmal - Rick