Avatar billede smartguy Nybegynder
26. november 2001 - 18:12 Der er 11 kommentarer og
1 løsning

Udvidet SQL/Java søgning...

Jeg har denne kode:
-------------------------------------------
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIKE \'\" + input.getText() + \"%\'\");
-------------------------------------------
Lige nu søger den kun på fornavn, men hvordan udvider jeg den så jeg også kan søge på f.eks. efternavn og tlf nr??
Avatar billede soreno Praktikant
26. november 2001 - 18:24 #1
prøv:
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIKE \'\" + input.getText() + \"%\' AND \'\" + efternavn.getText() + \"%\'\");
Avatar billede smartguy Nybegynder
26. november 2001 - 18:27 #2
Det virkede ikke. Den kom med en fejl, på efternavn.getText()...på e\'et!
Avatar billede smartguy Nybegynder
26. november 2001 - 18:33 #3
jeg har ogås prøvet at at skrive efternavn efter fornavn i koden afskilt med et komma, men det virkede heller ikke!
Avatar billede soreno Praktikant
26. november 2001 - 18:40 #4
jeg tror jeg giver op, det er ikke lige sql jeg er stærkest i..
Avatar billede smartguy Nybegynder
26. november 2001 - 18:41 #5
OK...HJÆÆÆÆLP!!!
Avatar billede soreno Praktikant
26. november 2001 - 18:48 #6
hov forresten prøv:
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIKE \'\" + input.getText() + \"%\' AND efternavn LIKE \'\" + efternavn.getText() +\"%\'\");
Avatar billede smartguy Nybegynder
26. november 2001 - 18:52 #7
Desværre soreno...Den kommer med samme fejl under kompilering! Jeg mener at der hvor du har skrevet efternavn.getText() skal forblive input.getText(), da jeg har et tekst felt, hvor der indtastes et søgeord, og der bruger den input kommandoen.
Avatar billede soreno Praktikant
26. november 2001 - 19:05 #8
har du ikke et felt til fornavn og et til efternavn? eller skal man skrive fornavn og efternavn i input?
hvis det er det sidste så prøv:
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn, efternavn LIKE \'\" + input.getText() + \"%\'\");
Avatar billede smartguy Nybegynder
26. november 2001 - 19:07 #9
Det har jeg også prøvet...Du kan se hele min kode her:
--------------------------------------------------
try {

      // Loader driverfilen til MySQL
      Class.forName(\"org.gjt.mm.mysql.Driver\");

      // Definerer hvor databasen ligger og de nødvendige oplysninger til at logge på
      String sourceURL = \"jdbc:mysql://vale.netimage.dk:3306/e1202\";
      String user = \"e1202\";
      String password = \"e1202\";
   
      // Opretter en forbindelse til databasen ved hjælp af DriverManager
      Connection databaseConnection = DriverManager.getConnection(sourceURL, user, password);

      // Bekræfter at der er hul igennem til databasen
      System.out.println(\"\\nDIN FORSP0RGSEL GAV F0LGENDE RESULTAT:\\n\");

      Statement statement = databaseConnection.createStatement();
     
      //Definere hvilke data der skal forespørges på med executeQuery
    //ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIKE \'\" + input.getText() + \"%\'\");
    ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIKE \'\" + input.getText() + \"%\'\");
       
      while (brugerNavne.next()) {
        System.out.println(brugerNavne.getString(\"fornavn\") + \" \" + brugerNavne.getString(\"efternavn\") + \" \" + brugerNavne.getString(\"gade\") + \" \" + brugerNavne.getInt(\"postnr\") + \" \" + brugerNavne.getString(\"bynavn\") + \" \" + brugerNavne.getInt(\"tlf\") + \" \" + brugerNavne.getString(\"email\"));

    }

      // lukker forbindelsen
      databaseConnection.close();
    }
      catch (ClassNotFoundException cnfe) {
      System.err.println(cnfe);
    }
      catch (SQLException sqle) {
      System.err.println(sqle);
    }
--------------------------------------------------
Måske lidt svær at se...sig sig, hvis jeg skal prøve at sende dig den...
Avatar billede smartguy Nybegynder
26. november 2001 - 19:09 #10
Der er kun et tekst felt, og meningen er at man deri skal kunne søge på alt i databasen!
Avatar billede smartguy Nybegynder
26. november 2001 - 19:23 #11
Jeg fik selv løst opgaven soreno! Man skulle bruge OR istedet for AND. Her er den færdige kode:
--------------------------------------------------
ResultSet brugerNavne = statement.executeQuery(\"SELECT * FROM brugere WHERE fornavn LIKE \'\" + input.getText() + \"%\' OR efternavn LIKE \'\" + input.getText() + \"%\' OR gade LIKE \'\" + input.getText() + \"%\' OR postnr LIKE \'\" + input.getText() + \"%\' OR bynavn LIKE \'\" + input.getText() + \"%\' OR tlf LIKE \'\" + input.getText() + \"%\' OR email LIKE \'\" + input.getText() + \"%\'\");
--------------------------------------------------

Ellers mange tak for hjælpen!
Avatar billede morw Nybegynder
26. november 2001 - 19:36 #12
Har lige et spørgsmål: Med sådan en java-applet, kan en bruger så ikke hexe sig frem til koden til mysql.

Ja grunden til jeg spørger er alt jeg selv havde tænkt mig at lave et applet der kunne hente content til et chat.

Nogen der har en link til noget der beskriver hvordan man laver mysql kald i applets?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester