2016-07-04 15 views
1

Ich Abrufen von Daten aus MySQL mit Ajax und PHP ohne Aktualisierung, Das Problem ist meine Ergebnisse, die doppelt angezeigt werden. Ich möchte nur eine Instanz eines Benutzernamens zurück anzeigen.Wiederholen von Ergebnissen PHP-Abfrage While-Schleife

Die Tabelle, die username hat einen eindeutigen Index nicht zuzulassen, dass die doppelte Namen aber seine meine (glaube ich), während meine Aussage, wie ich glaube, dass dies bewirkt, dass die Ergebnisse enthält bestimmte

Wie kann ich bitte duplizieren? Korrigieren Sie dies, um nur die Instanz jedes Benutzernamens anzuzeigen. Sorry im Voraus, dass ich nicht schon weiß, aber hoffnungsvoll kann jemand helfen.

<?php 
    include('..\db.php'); 
    $con = mysqli_connect($dbsrvname, $dbusername, $dbpassword, $dbname); 
    $q1 = mysqli_query($con,"SELECT * FROM tbl1 username"); 

    $data=""; 

    // if the search is true 
    if(isset($_POST['search'])) 
    { 
// 
    $var = $_POST['search']; 

    if($query = mysqli_query($con,"SELECT username FROMtbl1 WHERE username LIKE '%$var%'")) 

    { 
    // possible creating duplicate results 
    while($row = mysqli_fetch_array($query)) 
    { 
     $data .= $data . '<div>' . $row['username'] . '</div>'; 

    } 
    echo $data; 
    } 
    }else{ 
} 
?> 


<html> 

<head> 

     <script 
      src="https://code.jquery.com/jquery-3.0.0.js" 
      integrity="sha256-jrPLZ+8vDxt2FnE1zvZXCkCcebI/C8Dt5xyaQBjxQIo=" 
      crossorigin="anonymous"></script> 



     <script> 

      $(function(){ 
       $('.input').keyup(function(){ 
        var a = $('.input').val(); 
        $.post('livesusers.php',{"search":a},function(data){ 
         $('#display').html(data); 
        }); 
       }); 
      }); 

     </script> 


</head> 
<body> 

// form to input text and search 
    <form action= "livesusers.php" method='POST'> 
    <input type="text" name="search" class='input'> 
    </form> 
    <div id='display' style='margin-top:100px'></div> 
</body> 

+0

Haben Sie richtigen Daten in 'echo $ data' bekommen? – jitendrapurohit

+0

Ich habe versucht, DISTINCT in meiner Abfrage, aber immer noch duplicates + Die Ergebnisse von $ data zeigen richtige Daten Nur seine dupliziert die Namen, also wenn ich zwei Namen, die mit K beginnen, wird es jeden Namen zweimal zeigen –

Antwort

1

Der Fehler ist in der while-Schleife, wie Sie gesagt haben. Sie verketten sich zweimal auf jedem Zyklus.

Versuchen Sie, diese zu ersetzen:

// possible creating duplicate results 
    while($row = mysqli_fetch_array($query)) 
    { 
     $data .= $data . '<div>' . $row['username'] . '</div>'; 

    } 
    echo $data; 

dazu:

while($row = mysqli_fetch_array($query)) 
{ 
    $data .= '<div>' . $row['username'] . '</div>'; 

} 
echo $data; 
+0

Vielen Dank. –

+0

Gern geschehen! –

Verwandte Themen