• 26-09-2024, 15:22:07
    #1
    Canlı arama yapmaya çalışıyorum. Takıldıgım bir yer var yardımcı olursanız çok sevinirim.
    arama tuşuna basıldıgında benzeri sonuçlar için json dataya çevirmem lazım.
    Örnek
    Elma yazıldıgında elma ile ilgili 4 sonuç arama kutusuna yansıyor. Elmayı alıyorum sonuçlarıda çıkartıyorum.
    Get ile arama kelimesi alınıp benzeri kelimeleri veritabanından while ile alıyorum.
     if ($_REQUEST['q']) { // Bir terim gelip gelmediğini kontrol ediyoruz.
            $term = $_REQUEST['q']; // Gelen terimi değişkene atıyoruz.
            /* Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz. */
            $check_query = mysql_query("SELECT * FROM etiket WHERE etiket LIKE '%".$term."%'");
            $check_row = mysql_fetch_array($check_query);
            /* Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz. */
            if ($check_row) { // Sorgulama sonucu dolu olursa eğer sonuçları ekrana basıyoruz.
                $query = mysql_query("SELECT * FROM etiket WHERE etiket LIKE '%".$term."%'");
    while($row = mysql_fetch_array($query)){
      $name = $row['etiket'];
    Tek istediğim aşagıdaki gibi dizilimi sağlamak Bu dizilim için nasıl bir kod yazmalıyım.

    {"query":"elma","suggestions":["elmalı turta","elma şekeri","elma suyu","elma kabuğu"]}
  • 26-09-2024, 15:25:54
    #2
    php kodu:

    //{"query":"elma","suggestions":["elmalı turta","elma şekeri","elma suyu","elma kabuğu"]}
    
    $query = $_GET["query"];
    $suggestions = array();
    .......
    suggestions dizisine sonuçları ekleyecek db kodların...
    ......
    
    $json = array('query' => $query, 'suggestions' => $suggestions);
    echo json_encode($json);
    gönderdiğin koda göre düzenledim

    if ($_REQUEST['q']) { // Bir terim gelip gelmediğini kontrol ediyoruz.
            $term = $_REQUEST['q']; // Gelen terimi değişkene atıyoruz.
            /* Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz. */
            $check_query = mysql_query("SELECT * FROM etiket WHERE etiket LIKE '%".$term."%'");
            $check_row = mysql_fetch_array($check_query);
            /* Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz. */
            if ($check_row) // Sorgulama sonucu dolu olursa eğer sonuçları ekrana basıyoruz.
                $query = mysql_query("SELECT * FROM etiket WHERE etiket LIKE '%".$term."%'");
            $suggestions = array();
            while($row = mysql_fetch_array($query)){
                $suggestions[] = $row['etiket'];
            }
            $json = array('query' => $term, 'suggestions' => $suggestions);
            echo json_encode($json);
    }
  • 26-09-2024, 15:27:04
    #3
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Gerekli yerleri düzenleyiniz.

    <?php
    header('Content-Type: application/json'); // JSON olarak döndürüleceğini belirtir.
    
    if (isset($_REQUEST['q'])) { // Bir terim gelip gelmediğini kontrol ediyoruz.
        $term = $_REQUEST['q']; // Gelen terimi değişkene atıyoruz.
        
        // Veritabanına bağlan (mysql_connect ile eski yöntem)
        $conn = mysql_connect('localhost', 'root', '');
        mysql_select_db('veritabani_adi', $conn);
    
        // Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz
        $check_query = mysql_query("SELECT * FROM etiket WHERE etiket LIKE '%".$term."%'");
    
        // Sonuçları saklamak için bir dizi oluştur
        $suggestions = [];
    
        // Sorgulama sonucu dolu olursa sonuçları ekrana basıyoruz
        if (mysql_num_rows($check_query) > 0) {
            while ($row = mysql_fetch_array($check_query)) {
                $suggestions[] = $row['etiket'];
            }
        }
    
        // JSON formatında çıktıyı oluştur
        $response = [
            "query" => $term,
            "suggestions" => $suggestions
        ];
    
        // JSON olarak çıktıyı döndür
        echo json_encode($response);
        
        // Bağlantıyı kapat
        mysql_close($conn);
    }
    ?>
  • 26-09-2024, 15:53:06
    #4
    Supportemin adlı üyeden alıntı: mesajı görüntüle
    Gerekli yerleri düzenleyiniz.

    <?php
    header('Content-Type: application/json'); // JSON olarak döndürüleceğini belirtir.
    
    if (isset($_REQUEST['q'])) { // Bir terim gelip gelmediğini kontrol ediyoruz.
        $term = $_REQUEST['q']; // Gelen terimi değişkene atıyoruz.
        
        // Veritabanına bağlan (mysql_connect ile eski yöntem)
        $conn = mysql_connect('localhost', 'root', '');
        mysql_select_db('veritabani_adi', $conn);
    
        // Gelen terim ile eşleşen kayıt olup olmadığını sorguluyoruz
        $check_query = mysql_query("SELECT * FROM etiket WHERE etiket LIKE '%".$term."%'");
    
        // Sonuçları saklamak için bir dizi oluştur
        $suggestions = [];
    
        // Sorgulama sonucu dolu olursa sonuçları ekrana basıyoruz
        if (mysql_num_rows($check_query) > 0) {
            while ($row = mysql_fetch_array($check_query)) {
                $suggestions[] = $row['etiket'];
            }
        }
    
        // JSON formatında çıktıyı oluştur
        $response = [
            "query" => $term,
            "suggestions" => $suggestions
        ];
    
        // JSON olarak çıktıyı döndür
        echo json_encode($response);
        
        // Bağlantıyı kapat
        mysql_close($conn);
    }
    ?>
    Supersin hocam çok saolasın. Denemediğim şey kalmamıştı Çok Tşk ediyorum. mysql bağlantısını mysqli_ çevirip veritabanı bağlantısını yeniye göre değiştirdim oldu Diğer ilgilenen yazan arkadaşda sendende Allah razı olsun
  • 26-09-2024, 15:58:10
    #5
    Wolfmaster adlı üyeden alıntı: mesajı görüntüle
    Supersin hocam çok saolasın. Denemediğim şey kalmamıştı Çok Tşk ediyorum. mysql bağlantısını mysqli_ çevirip veritabanı bağlantısını yeniye göre değiştirdim oldu Diğer ilgilenen yazan arkadaşda sendende Allah razı olsun
    Dilediğiniz zaman yardım isteyebilirsiniz.
    Allah sizden de razı olsun. İyi çalışmalar
  • 26-09-2024, 20:09:34
    #6
    nerede çalıştırıyorsunuz ki bu yazılımı, mysql_query çoğu sunucuda desteklenmiyor artık, MySQLi yada PDO kullanın,

    düzeltme: sanırım mysqli olarak güncellemişssin, diğer önerimde get yada post ile gelen değerleri direk sql sorgusu içine yazmamanız olacaktır, sql injection açığı oluşturur , parametre kullanın

    https://www.php.net/manual/en/mysqli.execute-query.php