usersuche mit evtl sortierung

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

  • usersuche mit evtl sortierung

    sers miteinander!

    also: MySQL - 4.1.13

    ich habe ein problem mit einem query...

    ich will eine usersuche nach dem usernamen machen.

    momentan benutze ich folgenden query:

    PHP-Code:
    SELECT `user_id`, `username`, `city`, `birth`, `penis
    FROM `usersWHERE `usernameLIKE '%CHRIS%' 
    LIMIT 020 
    hier ist jetzt das prob, dass er jeden usernamen der chris enthält in chronologischer reihenfolge ausspuckt. ich hätte es jetzt aber gerne, wenn er entweder die exaktesten übereinstimmungen als erstes ausgibt oder sie nach einer art "match-zahl" oder so sortiert. mit der fulltext-suche (und einem fulltext-index) hatte ich das problem, dass er nicht nach wort-fragmenten, sondern nach richtigen wörtern (mit einem whitespace am anfang/ende) sucht.

    meine erste idee war jetzt, dass zumin. exakte übereinstimmungen oben sind:

    PHP-Code:
    SELECT `user_id`, `username`, `city`, `birth`, `penis`, 
    IF(`
    username`='CHRIS') AS `exactFROM `users
    WHERE `usernameLIKE '%CHRIS%' ORDER BY `exactDESC 
    LIMIT 0
    20 
    ...das gibt jetzt aber aus welchem grund auch immer nen syntax-error! :-/

    findet jemand den fehler oder fällt jemandem eine bessere lösung ein?!

    thx im vorraus, mfg, ex
    Zuletzt geändert von extr3m0; 12.02.2006, 17:54.
    www.myplaner.de

  • #2
    Hi, mein Ansatz wäre dieser:

    Code:
    SELECT `user_id`, `username`, `city`, `birth`, `penis`, username AS exact 
    FROM `users` WHERE `username` LIKE '%CHRIS%'  or exact = 'CHRIS'
    order by exact ASC, username ASC
    Probiers mal!

    Kommentar


    • #3
      heinzelmännchen:

      theoretisch ja... bloss dein query macht nichts anderes als mein erster query sortiert nach dem usernamen.. !?!

      oder etwa nciht?

      mfg
      www.myplaner.de

      Kommentar


      • #4
        Re: usersuche mit evtl sortierung

        OffTopic:
        Original geschrieben von extr3m0
        SELECT `user_id`, `username`, `city`, `birth`, `penis` FROM ...
        ... ?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          OffTopic:
          ich brech weg...
          Werden da Längenangabe gespeichert?
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar


          • #6
            OffTopic:
            Hab auch schon überlegt - je nach Zielgruppe wäre das vielleicht das Sortierkriterium, welches die User am meisten interessiert ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              lol... ne...

              `penis` ist ein boolean...

              ich kann dann mit if($user['penis']) abfragen ob m oder w!
              www.myplaner.de

              Kommentar


              • #8
                Boolean in MySql
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar


                • #9
                  sieh es als tinyint(1) oder "enum('0', '1)"!


                  aber zurück zu meiner frage: hat keiner eine antwort??!!

                  mfg
                  www.myplaner.de

                  Kommentar


                  • #10
                    es wär sehr nett, wenn mir jetzt mal jemand helfen könnte!

                    thx, mfg, ex
                    www.myplaner.de

                    Kommentar


                    • #11
                      Original geschrieben von extr3m0
                      lol... ne...
                      `penis` ist ein boolean...
                      ich kann dann mit if($user['penis']) abfragen ob m oder w!
                      lol ... entweder da oder nicht?

                      warum nennst du das feld nicht geschlecht oder ************ und nimmt den feldtyp SET ?

                      geschlecht : SET ('m','w')

                      ************ : SET ('m','f')
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        bin grad selbst draufgekommen: das IF kann ich im query weglassen:

                        PHP-Code:
                        SELECT `user_id`, `username`, `city`, `birth`, `penis`,  (`username`='CHRIS') AS `exact
                        FROM `users`   
                        WHERE `usernameLIKE '%CHRIS%' 
                        ORDER BY `exactDESC  
                         LIMIT 0
                        20 
                        naja, trotzdem thx
                        www.myplaner.de

                        Kommentar


                        • #13
                          welches IF meinst du ? hab keines gesehen ... aber das username= im select kannst du auch weglassen.

                          'CHRIS' exact ist das gleiche wie (`username`='CHRIS') AS `exact`
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            @Abraxax

                            Enum würde doch reichen, nicht wahr? Oder sollte man wirklich 'm' UND 'w' auswählen können?
                            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                            Schön - etwas Geschichte kann ja nicht schaden.
                            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                            Kommentar


                            • #15
                              Original geschrieben von Quetschi
                              wirklich 'm' UND 'w' auswählen
                              ok. das mag sein. aber ich habe mal von einer bekannten person gehört, dass SET schneller ist als ENUM. daher verwende ich das so.
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X