MySQL Autocomplete

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

  • MySQL Autocomplete

    Hallo, ich habe ein Script, welches in einem Textfeld autocomplete erstellt.
    Das Problem ist, dass ich beide Daten aus der Zeile angezeigt bekommen möchte.

    Der Aufbau der Datenbank ist: z.B. Name=Test1234, Nachname=Test5678

    Ich bekomme das ganze aber nicht zum laufen.

    Vielen Dank
    Fynn

    PHP Datei:

    PHP-Code:
    <?php


    ******** ****define (DB_USER"xxx");
    ******** ****
    define (DB_PASSWORD"xxx");
    ******** ****
    define (DB_DATABASE"test");
    ******** ****
    define (DB_HOST"localhost");


    ******** ****
    $mysqli = new mysqli(DB_HOSTDB_USERDB_PASSWORDDB_DATABASE);


    ******** ****
    $sql "SELECT * FROM testdb
    ******** ************ ************ ****WHERE Name LIKE '%"
    .$_GET['query']."%'
    ******** ************ ************ ****LIMIT 10"
    ;****


    ******** ****
    $result $mysqli->query($sql);


    ******** ****
    $json = [];
    ******** ****while(
    $row $result->fetch_assoc()){
    ******** **** **** **** 
    $json[] = $row["Name","Nachname"];
    ******** ****}




    ******** ****echo 
    json_encode($json);
    ?>

  • #2
    Bitte beachten Sie, dass Sicherheitsvorkehrungen (wie die Filterung und Bereinigung von Benutzereingaben) wichtig sind, um vor SQL-Injection-Angriffen zu schützen. Stellen Sie sicher, dass Sie angemessene Sicherheitsmaßnahmen implementieren, mapquest bevor Sie Benutzereingaben in SQL-Abfragen verwenden.

    Kommentar


    • #3
      Hi,

      kommt da überhaupt irgendwas raus, oder funktioniert es gar nicht?

      VG

      p.s. lager mal den DB-Connect aus und steuere die DB Abfrage mit prepared statements. Dient alles der Sicherheit.
      Zuletzt geändert von ; 25.08.2023, 10:57.

      Kommentar


      • #4
        Mit

        PHP-Code:
        WHERE Name LIKE '%".$_GET['query']."%'  ​ 
        Wird nur die Spalte "Name" durchsucht, nicht aber "Nachname".

        Probier mal so:

        PHP-Code:
        WHERE NameNachname LIKE '%".$_GET['query']."%' 

        Kommentar


        • #5

          Schon mal auf das Datum des Theads geachtet:[COLOR=#c0392b] 30.05.2020[/COLOR]
          Das wird wohl niemanden mehr interessieren!
          Außerdem ist es fahrlässig, eine $_GET-Variable direkt in eine SQL-Aweisung einzuschleusen und dein Versuch mit
          Code:
          WHERE Name, Nachname LIKE '%".$_GET['query']."%'
          ist auch falsch
          Zuletzt geändert von scatello; 25.08.2023, 15:14.

          Kommentar


          • #6
            Zitat von scatello Beitrag anzeigen

            Schon mal auf das Datum des Theads geachtet:[COLOR=#c0392b] 30.05.2020[/COLOR]
            Das wird wohl niemanden mehr interessieren!
            Außerdem ist es fahrlässig, eine $_GET-Variable direkt in eine SQL-Aweisung einzuschleusen und dein Versuch mit
            Code:
            WHERE Name, Nachname LIKE '%".$_GET['query']."%'
            ist auch falsch
            Ach, haha. Dann ist der nur wegen dem Spam Post nach oben gerutscht...

            Kommentar


            • #7
              Sie können zuerst Ihre Daten aus der Datenbank abrufen und in einem geeigneten Format speichern, z.B. als Array von Objekten. Jedes Objekt im Array könnte die Eigenschaften "Name" und "Nachname incredibox " haben.
              Zuletzt geändert von Bernie; 03.10.2023, 11:11.

              Kommentar


              • #8
                Thank you for the suggestion. To address the issue, I've followed your advice and made some progress. Here's what I've done:
                PHP-Code:
                $data = array(
                    array(
                "Name" => "Test1234""Last Name" => "Test5678"),
                    
                // Add more entries for other data
                );
                ​ 
                PHP-Code:
                // Sample JavaScript code to populate the autocomplete results
                $('#autocomplete').on('input', function() {
                    
                let input = $(this).val();
                    
                let results = [];

                    
                // Iterate through the data array
                    
                data.forEach(function(item) {
                        if (
                item["Name"].includes(input) || item["Last Name"].includes(input)) {
                            
                results.push(item["Name"] + ' ' item["Last Name"]);
                        }
                    });

                    
                // Display results
                    
                displayResults(results);
                });

                function 
                displayResults(results) {
                    
                // Code to display the autocomplete results here
                }
                ​ 
                With this setup, I'm now able to create autocomplete functionality in my text field that displays both the Name and Last Name from the database.

                Thanks again for your help!​
                Zuletzt geändert von Bernie; 17.10.2023, 09:20.

                Kommentar

                Lädt...
                X