ik moet een select maken uit een array, de array is echter opgeslagen in de database via serialze.
tabel1 = server_lijst
tabel2 = server_updates
In tabel 1 staan alle gegevens van bepaalde type servers, de gegevens die ik nodig zijn zijn allemaal "tinyint(4)" waardes zoals"
os_type = '1' (of andere waarde), deze tabel komt overeen met specific_os
panel_type = '2' (of andere waarde), deze tabel komt overeen met specific_panel
server = '0' (of andere waarde), deze tabel komt overeen met specific_server
In tabel 2 staan oa 3 velden met arrays (via serialize toegevoegd) namelijk:
specific_os, specific_panel en specific_server
specific_server is bv: Array ( [0] => 1 [1] => 11 [2] => 4 )
Dit houd in dat ik servers (tabel1) met waardes 1,4 en 11 van tabel 1 wil hebben.
Nou wil ik dus een querie draaien op tabel2, bv:
Met deze querie haal ik alle beschikbare "updates" (want die staan in deze tabel) op tussen bepaalde datums, wat ik nu wil is dat ik alle "servers" krijg die een match hebben.
Ik heb al diverse queries geprobeerd maar ik krijg nooit het gewenste resultaat.
Hoe kan ik dit het beste aanpakken, hoe krijg ik een lijst van de servers die ik zoek vanuit de array?
Iemand tips?
tabel1 = server_lijst
tabel2 = server_updates
In tabel 1 staan alle gegevens van bepaalde type servers, de gegevens die ik nodig zijn zijn allemaal "tinyint(4)" waardes zoals"
os_type = '1' (of andere waarde), deze tabel komt overeen met specific_os
panel_type = '2' (of andere waarde), deze tabel komt overeen met specific_panel
server = '0' (of andere waarde), deze tabel komt overeen met specific_server
In tabel 2 staan oa 3 velden met arrays (via serialize toegevoegd) namelijk:
specific_os, specific_panel en specific_server
specific_server is bv: Array ( [0] => 1 [1] => 11 [2] => 4 )
Dit houd in dat ik servers (tabel1) met waardes 1,4 en 11 van tabel 1 wil hebben.
Nou wil ik dus een querie draaien op tabel2, bv:
PHP:
1
2
3
4
5
6
7
8
9
10
| SELECT specific_os, specific_panel, specific_server FROM server_updates WHERE start_date <='".date("Y-m-d")."' AND end_date >= '".date("Y-m-d")."' while(list($specific_os, $specific_panel, $specific_server)= mysql_fetch_row($sql)) { //wat moet ik nou achter WHERE exact gebruiken? $sql = "SELECT ip, en_andere_gegevens, etc FROM server_lijst WHERE os_type='array_specific_os' AND panel_type='array_specific_panel' etc... "; $res = mysql_query($sql, $db1); while(list($server_ip, $en_andere_gegevens, etc) = mysql_fetch_row($res)) { // dit zijn de server gegevens die ik wil } } |
Met deze querie haal ik alle beschikbare "updates" (want die staan in deze tabel) op tussen bepaalde datums, wat ik nu wil is dat ik alle "servers" krijg die een match hebben.
Ik heb al diverse queries geprobeerd maar ik krijg nooit het gewenste resultaat.
Hoe kan ik dit het beste aanpakken, hoe krijg ik een lijst van de servers die ik zoek vanuit de array?
Iemand tips?
[ Voor 13% gewijzigd door rob3rt op 11-02-2010 16:06 ]