anpera.net
https://anpera.homeip.net/phpbb3/

Arrays in SQL-Befehl
https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=2011
Seite 1 von 1

Autor:  Darkness [ Sa 17 Dez, 2005 19:48 ]
Betreff des Beitrags:  Arrays in SQL-Befehl

Ich habe da ein Problem,
ich will per sql ein Arrayfeld aufrufen
also ich meine
$sql = SELECT * FROM blabla WHERE blabla[blabla]=1";
also so geht das schonmal nich^^

kann man das, und wenn ja wie?

Autor:  Eliwood [ Sa 17 Dez, 2005 19:55 ]
Betreff des Beitrags:  Re: Arrays in SQL-Befehl

[php]$array = array("key1"=>"Ich bin Schlüssel 1");
$array = addslashes(serialize($array));
mysql_query("UPDATE `arrays` SET `value` = '".$array."'");
$result = mysq_query("SELECT `value` FROM `arrays` LIMIT 1");
$row = mysql_fetch_assoc($result);
$value = unserialize(stripslashes($row['value']));
print $value['key1']; // Gibt aus: Ich bin Schlüssel 1[/php]

Autor:  Darkness [ Sa 17 Dez, 2005 20:02 ]
Betreff des Beitrags: 

Ich glaub ich ahbs schelcht erklärt ich meinte was anderes.

Also wenn ich jetzt ein Array ind er Db hab,
wie z.b.
$array = array("key1"=>1,"key2"=>2,"key3"=>3);

jetzt will ich die Einträge aus der Datenbank laden bei denen $array['key1'] größer als 1 ist.

Autor:  Eliwood [ Sa 17 Dez, 2005 20:03 ]
Betreff des Beitrags: 

Wie speicherst du das array in der Db?

Autor:  Darkness [ Sa 17 Dez, 2005 20:06 ]
Betreff des Beitrags: 

mit (es is in der accounts-tabelle)
$session[user][array]=serialize($array);
also ohne addslashes.

Autor:  Eliwood [ Sa 17 Dez, 2005 20:12 ]
Betreff des Beitrags: 

Darkness hat geschrieben:
mit (es is in der accounts-tabelle)
$session[user][array]=serialize($array);
also ohne addslashes.


Axo...
Mit Sql kannst du das... Ich sag mal nur mit Umwegen... machen.

Müsstest sowas machen wie:
select array from accounts where array like '%am_besten_array_schlüssel%'

Oder mit Regex...

Umständlich, sehr umständlich, sowas per Sql machen zu wollen ;)

Autor:  Darkness [ Sa 17 Dez, 2005 20:32 ]
Betreff des Beitrags: 

Eliwood hat geschrieben:
Darkness hat geschrieben:
mit (es is in der accounts-tabelle)
$session[user][array]=serialize($array);
also ohne addslashes.


Axo...
Mit Sql kannst du das... Ich sag mal nur mit Umwegen... machen.

Müsstest sowas machen wie:
select array from accounts where array like '%am_besten_array_schlüssel%'

Oder mit Regex...

Umständlich, sehr umständlich, sowas per Sql machen zu wollen ;)

Hm. das mit dem Like würde wohl nich funktionieren,
weil ich bei der Abfrage ja überprüfen will, ob zum Beispiel key1 größer als key2 is und keine konstanten Werte abfrag.

Was ist Regex?

Autor:  Eliwood [ Sa 17 Dez, 2005 20:38 ]
Betreff des Beitrags: 

#[`].#\s

Das ist ein Regex *lach*

Aber mit dem kann man ebenfalls nur Konstante werte holen.
MySql kennt keine arrays - leider.
Deshalb wird das so nicht gehen.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/