+ Svara på ämne
Sidan 2 av 2 FörstaFörsta 1 2
Resultat 21 till 32 av 32

Ämne: Problematik datumsökning MySQL

  1. #21
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Fick inget syntax-fel när jag körde det på MySQL (hos one.com). Vet inte vilken version de använder.

  2. #22
    Cognatuss avatar
    Jonas Magnusson
    Medlemsnr
    40573
    Ort
    Vänge, Uppsala
    Inlägg
    27
    Gjorde du det i en CREATE VIEW?
    Jonas Magnusson
    www.cognatus.se


  3. #23
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Först bara en select-sats, men testade även att skapa vyer och det gick utan problem. Data-typen blev dessutom rätt.

  4. #24
    Cognatuss avatar
    Jonas Magnusson
    Medlemsnr
    40573
    Ort
    Vänge, Uppsala
    Inlägg
    27
    Vill du får du gärna posta koden för viewn så kanske jag kan förstå vad jag gör fel?
    Jonas Magnusson
    www.cognatus.se


  5. #25
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Använde phpMyAdmin. Minns nu inte vad jag skrev, men eftersom jag även testade med den inbyggda versionen kan du ju testa den (om du har phpMyAdmin). När man skrivit en SELECT-fråga kan man göra om den till en vy (med en knapp nere till höger, skapa vy).

  6. #26
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Lånade din CREATE-kod och den fungerar ...
    Kod:
    CREATE SQL SECURITY INVOKER VIEW xxx__vy0
    AS
    SELECT CONVERT(IF(FDatum<>'0000-00-00',FDatum,IF(DDatum<>'0000-00-00',DDatum,'1000-01-01')),DATE) as sdatum, fdatum, ddatum, namn
    FROM xxx__tab
    ORDER BY sdatum, namn

  7. #27
    Cognatuss avatar
    Jonas Magnusson
    Medlemsnr
    40573
    Ort
    Vänge, Uppsala
    Inlägg
    27
    Ja, jag får det att fungera nu också, måste ha klämt in en parentes för mycket??? Stort tack C-G!

    Är du intresserad kan jag PM'a adressen till det pågående projektet. Alltid intressant med kunniga människors synpunkter!
    Jonas Magnusson
    www.cognatus.se


  8. #28
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Det är alltid intressant att se vad som händer i släktforskarvärlden så du kan gärna skicka adressen ...

  9. #29
    Cognatuss avatar
    Jonas Magnusson
    Medlemsnr
    40573
    Ort
    Vänge, Uppsala
    Inlägg
    27
    Nästa sak, och förhoppningsvis den sista, att ta sig förbi är hur jag skall formulera en SELECT-fråga som omfattar att söka på antingen enbart ett datum, alternativt ett intervall.

    Mitt sökformulär för födda kan ni se i bifogad fil.

    SQl-frågan som den ser ut nu, med enbart sökning på ett datum tillsammans med andra söktermer i textformat:


    Kod:
    $sql = mysql_query("SELECT * FROM fvy WHERE 
               (Datum LIKE '$SDatum%' OR FDatum LIKE '$SDatum%') 
               AND BFnamn LIKE '$BFnamn%'											
    	   AND FFnamn LIKE '$FFnamn%'
    	   AND FEnamn LIKE '$FEnamn%'		
    	   AND FYrke LIKE '$FYrke%'											
               AND MOFnamn LIKE '$MOFnamn%'	
               AND MOEnamn LIKE '$MOEnamn%'	
               AND MOYrke LIKE '$MOYrke%'	
               AND OrtN LIKE '$OrtN%'	
               AND Anm LIKE '$Anm%'
    	   ORDER BY SDatum, Kalla, Id");
    Hur utökar jag denna query att omfatta intervallet "Mellan åren" (se bild), som har fått variabelnamnen $SDatummin och $SDatummax.

    Jag vill alltså att queryn skall gälla antingen $SDatum eller intervallet $SDatummin till $SDatummax, där båda alternativen kombineras med övriga söktermer.

    Hoppas det gick att förstå den frågan?

    Mvh
    Bifogade bilder
    Jonas Magnusson
    www.cognatus.se


  10. #30
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Citat Ursprungligen postat av Cognatus Visa inlägg
    Jag vill alltså att queryn skall gälla antingen $SDatum eller intervallet $SDatummin till $SDatummax, där båda alternativen kombineras med övriga söktermer.
    Jag undrar om alla kan innehålla ett riktigt datum eller '0000-00-00'!? Hur ska man då tolka öppna intervall, dvs de utan min- eller max-värde? När det gällde födelse- och dop-datum prioriterade du födelse. Hur blir det i detta fall? Undrar hur det går att testa om ett datum är i ett intervall när du använder LIKE ... Varför använder du förresten LIKE på datumfältet?

  11. #31
    Cognatuss avatar
    Jonas Magnusson
    Medlemsnr
    40573
    Ort
    Vänge, Uppsala
    Inlägg
    27
    Anledningen till att jag använder LIKE i datumsökningarna är att det skall fungera att bara söka på "1685" i sökfältet. Använder jag "=" så behöver jag ange exakt datum med 10 siffror. Wildcards fungerar inte.

    Jag har letat runt lite och vad jag förstår bör man kunna använda något i stil med :

    Kod:
    SELECT * FROM fvy WHERE  (Datum >= '$SDatummin' AND Datum <= '$SDatummax')
    Men jag vill ju bara använda den frågan när båda eller något min-max variablerna är satta och när inte den enkla variabeln $SDdatum används. Om jag använder exempelkoden i ovanstående fall får jag väl försöka göra det tydligt på sidan att dessa två datum måste anges med 10 siffror.
    Jonas Magnusson
    www.cognatus.se


  12. #32
    Phryxes avatar
    C-G Magnusson
    Medlemsnr
    13088
    Inlägg
    982
    Man validerar oftast det som kommer in i ett formulär. Du kan styra ganska hårt vad användaren får knappa in. Många använder Javascript för inmatningskontroll på klientsidan (innan det skickas till servern). På serversidan kan du också kontrollera det som kommer in i formuläret och trimma/manipulera variablerna innan du skickar dem vidare i en fråga till databasen, eller ställa olika frågor beroende på vad som skrivs i formuläret.

+ Svara på ämne
Sidan 2 av 2 FörstaFörsta 1 2

Behörigheter för att posta

  • Du får inte posta nya ämnen
  • Du får inte posta svar
  • Du får inte posta bifogade filer
  • Du får inte redigera dina inlägg