• 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
  • 12-10-2024, 16:15:53
    #7
    Supportemin adlı üyeden alıntı: mesajı görüntüle
    Dilediğiniz zaman yardım isteyebilirsiniz.
    Allah sizden de razı olsun. İyi çalışmalar
    Hocam özelden yazdım ama özel mesajlarınız dolu oldugu için yazamadım.
    Benzer bir sorunum daha var rica etsem yardımcı olurmusunuz. Aynı veriler aynı tablolar yine bu sefer farklı olan json kısmı
    suggestions?q=elma&limit=10&langs=de&is_regex=true bu şekilde js ile alacak
    Şu şekilde de çıktı almam lazım.
    {"limit":10,"query":"elma","languages":["de","en"],"queries":[{"value":"yesil elma","locale":"en"},{"value":"elmas","locale":"en"},{"value":"amasya elma","locale":"en"},{"value":"elma turta","locale":"en"},{"value":"elma kremasi","locale":"en"},{"value":"elma sekeri","locale":"en"}]}
    Yardımcı olursanız çok sevinirim. Şimdiden tşk ediyorum.
    Birde eksik sorgu gelince hata vermesi gerekiyor