[MSSQL] mysqlabfrage mit array-daten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [MSSQL] mysqlabfrage mit array-daten

    hallöchen,

    ich habe ein mehr oder weniger großes problem. um dieses zu verstehen, muss ich einige erläuterungen dazu geben:

    also, ich habe eine mysql-datenbank mit fertigem layout bekommen, daran kann, will und soll ich nix ändern (leider). und zwar gibt es dort eine tabelle userdaten, in welcher diese gespeichert werden. die einzelnen felder sind häufig als varchar(255) deklariert. über das eingabeformular können user ihre daten eingeben. dabei ist zu beachten, dass sie bei manchen einträgen auch mehrfachauswahlen nutzen können. diese werden zunächst über ein array gehandelt. beim eintragen in die datenbank wird dieses array mit implode(","array) in einen string umgewandelt, der dann in das entsprechende feld in die datenbank gespeichert wir. also steht dann in der db z.b. daten1,daten2,... dabei handelt es sich meistens um id aus einer auflösungstabelle.

    nun zu meinem eigentlichen problem.

    es gibt ein suchformular, wo user nach anderen usern suchen können. in diesem formular gibt es wieder diese mehrfachauswahlfelder. um etwas näher ins detail zu gehen nehmen wir mal an, ich habe eine tabelle bundesländer in meiner db. diese haben jeweils eine betsimmte id! in der selectbox (mehrfachauswahl) stehen die namen der bundesländer, im hintergrund werden die ids übergeben. ich wähle nun zum beispiel sachsen und thüringen aus (id 1 bzw 2). diese werden wieder in ein array übergeben. nun soll eine select-abfrage auf die datenbank ausgeführt werden, wo ich herausfinden will, ob ein eintrag in der db entweder die id1, oder die id2 enthält. hat der user nur ein bundesland beim eintragen ausgewählt, funktioniert die abfrage bereits. wenn aber mehrehre bundesländer in der db stehen, also 1,2,3,4... dann geht das ganze nicht mehr, da 1 <> 1,2,3,4... usw. ich brauche also einen algorythmus, welcher das array aus der suchanfrage mit den einzelnen ids aus dem string der db vergleich!
    also ist 1(erste auswahl aus array) ==1 oder 1==2... oder 2(zweite auswahl aus array) = 1 oder 2 ==2...
    so ungefähr.

    hier mal noch ein auszug aus meinem quellcode:

    PHP-Code:
    $SQL="SELECT * FROM `job_an`"
    $WHERE=""
    function 
    add_where$str ){ 
        global 
    $WHERE
        
    $temp   =   trim($WHERE); 
        if ( !empty(
    $temp) ) $WHERE.=" AND "
        
    $WHERE.=$str


    $temp=array_data("bundesland"); 
    if ( 
    count($temp) > ){ 
        
    $tmp_str="("
        foreach( 
    $temp as $key=>$val ){ 
            if ( 
    $tmp_str!="(" $tmp_str.=" OR "
            
    $tmp_str.="`bundesland`='${val}'"
        } 
        
    add_where($tmp_str.")"); 


    $SQL    .=  " WHERE ".$WHERE."; 
    wie gesagt, das geht eben aber nur, wenn beim eintragen des user in die db nur ein bundesland gewählt wurde.

    ich hoffe, ihr habt die problematik verstanden und könnt mir bei der lösung helfen!?? falls was unklar ist, einfach noch mal nachfragen

    danke für eure bemühungen

    mfg

    x_ray

  • #2
    grrr, formatier mal den php code richtig
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      was ist daran falsch formatiert??

      bin neu hier im forum, wie soll ich das naders formatieiren??

      mfg x_ray

      Kommentar


      • #4
        Wozu der unnötige PHP-Code und die ellenlangen erklärungen. interessiert hier keinen.

        n kurzer query und ne frage wie du nachgucken kannst, ob 1 oder 2 om 1,2,3 drinsteht hätte vollkommen gereicht,

        bin jetzt bächtig möse über die verbrauchte zeit.

        LIKE kennst du?

        Kommentar


        • #5
          n ganz aktueller thread zum thema:

          http://www.php-resource.de/forum/sho...threadid=48916

          Kommentar


          • #6
            ok, sorry, werds beim nächsten mal berücksichtigen!

            danke erst mal für die rasche auskunft!

            mfg x_ray

            Kommentar

            Lädt...
            X