• 24-01-2023, 16:19:19
    #1
    PHP & AJAX & PDO ile anlık olarak ekrana veri basan arama sistemi yapıyorum fakat PDO sorgumda bir hata var sanırım. Hatam Nerede?

    <?php
    
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=abc', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
    
    
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
    
        $name = htmlspecialchars(($_POST['search']));
    
        $query = $db->query("SELECT * FROM posts WHERE title LIKE '%$name%'", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
    
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach;; ?>
  • 24-01-2023, 16:21:17
    #2
    Hocam merhaba bu sorunla bende daha önceden karşılaşmıştım % leri oraya eklemeyerek deneyin, şöyle:
    <?php
     
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=lpanelen', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
     
     
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
     
        $name = htmlspecialchars(($_POST['search']));
    
        $name = "%".$name."%";
     
        $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
     
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach; ?>
  • 24-01-2023, 16:22:29
    #3
    v4r1able adlı üyeden alıntı: mesajı görüntüle
    Hocam merhaba bu sorunla bende daha önceden karşılaşmıştım % leri oraya eklemeyerek deneyin, şöyle:
    <?php
     
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=lpanelen', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
     
     
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
     
        $name = htmlspecialchars(($_POST['search']));
    
        $name = "%".$name."%";
     
        $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
     
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach; ?>
    endforeach kısmında da iki tane ; vardı, düzenledim
  • 24-01-2023, 16:23:11
    #5
    v4r1able adlı üyeden alıntı: mesajı görüntüle
    Hocam merhaba bu sorunla bende daha önceden karşılaşmıştım % leri oraya eklemeyerek deneyin, şöyle:
    <?php
     
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=lpanelen', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
     
     
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
     
        $name = htmlspecialchars(($_POST['search']));
    
        $name = "%".$name."%";
     
        $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
     
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach; ?>
    Onu denedim maalesef şe yaramıyor. ek olarak diğer sayfalarımı da atayım.

    script.js
    //Getting value from "ajax.php".
    function fill(Value) {
    //Assigning value to "search" div in "search.php" file.
    $('#search').val(Value);
    //Hiding "display" div in "search.php" file.
    $('#display').hide();
    }
    $(document).ready(function() {
    //On pressing a key on "Search box" in "search.php" file. This function will be called.
    $("#search").keyup(function() {
    //Assigning search box value to javascript variable named as "name".
    var name = $('#search').val();
    //Validating, if "name" is empty.
    if (name == "") {
    //Assigning empty value to "display" div in "search.php" file.
    $("#display").html("");
    }
    //If name is not empty.
    else {
    //AJAX is called.
    $.ajax({
    //AJAX type is "Post".
    type: "POST",
    //Data will be sent to "ajax.php".
    url: "ajax.php",
    //Data, that will be sent to "ajax.php".
    data: {
    //Assigning value of "name" into "search" variable.
    search: name
    },
    //If result found, this funtion will be called.
    success: function(html) {
    //Assigning result to "display" div in "search.php" file.
    $("#display").html(html).show();
    }
    });
    }
    });
    });

    Ana sayfam
    <!DOCTYPE html>
    <html>
    <head>
        <title>Live Search using AJAX</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
    <input type="text" id="search" placeholder="Search" />
    <br>
    <br>
    <div id="display"></div>
    </body>
    </html>
  • 24-01-2023, 16:24:05
    #6
    iltu33 adlı üyeden alıntı: mesajı görüntüle
    Onu denedim maalesef şe yaramıyor. ek olarak diğer sayfalarımı da atayım.

    script.js
    //Getting value from "ajax.php".
    function fill(Value) {
    //Assigning value to "search" div in "search.php" file.
    $('#search').val(Value);
    //Hiding "display" div in "search.php" file.
    $('#display').hide();
    }
    $(document).ready(function() {
    //On pressing a key on "Search box" in "search.php" file. This function will be called.
    $("#search").keyup(function() {
    //Assigning search box value to javascript variable named as "name".
    var name = $('#search').val();
    //Validating, if "name" is empty.
    if (name == "") {
    //Assigning empty value to "display" div in "search.php" file.
    $("#display").html("");
    }
    //If name is not empty.
    else {
    //AJAX is called.
    $.ajax({
    //AJAX type is "Post".
    type: "POST",
    //Data will be sent to "ajax.php".
    url: "ajax.php",
    //Data, that will be sent to "ajax.php".
    data: {
    //Assigning value of "name" into "search" variable.
    search: name
    },
    //If result found, this funtion will be called.
    success: function(html) {
    //Assigning result to "display" div in "search.php" file.
    $("#display").html(html).show();
    }
    });
    }
    });
    });

    Ana sayfam
    <!DOCTYPE html>
    <html>
    <head>
        <title>Live Search using AJAX</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
    <input type="text" id="search" placeholder="Search" />
    <br>
    <br>
    <div id="display"></div>
    </body>
    </html>
    htmlspecialchars kısmında da iki tane ( varmış

    <?php
      
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=lpanelen', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
      
      
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
      
        $name = htmlspecialchars($_POST['search']);
     
        $name = "%".$name."%";
      
        $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
      
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach; ?
  • 24-01-2023, 16:26:19
    #7
    v4r1able adlı üyeden alıntı: mesajı görüntüle
    htmlspecialchars kısmında da iki tane ( varmış

    <?php
      
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=lpanelen', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
      
      
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
      
        $name = htmlspecialchars($_POST['search']);
     
        $name = "%".$name."%";
      
        $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
      
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach; ?
    Şu kodda
    <?php
    
    /* Veri Tabanını Bağla */
    try {
        $db = new PDO('mysql:host=localhost;dbname=hh', 'root', '');
    }catch(PDOException $e) {
        $e->getMessage();
    }
    
    
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
    
        $name = htmlspecialchars($_POST['search']);
    
        $name = "%".$name."%";
    
        $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
        $query->execute();
    }
    ?>
    
        <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
        <?=$result['title']?>
    <?php endforeach; ?>
    Şu Hatayı almaktayım
    Fatal error: Uncaught Error: Call to a member function execute() on bool in C:xampphtdocsaraajax.php:19 Stack trace: #0 {main} thrown in C:xampphtdocsaraajax.php on line 19
  • 24-01-2023, 16:26:54
    #8
    omergunay adlı üyeden alıntı: mesajı görüntüle
    hata olarak ne geliyor hocam. Kodda bi hata gözükmüyor.
    Bu kodda
    <?php
    
    /* Veri Tabanını Bağla */
    try {
    $db = new PDO('mysql:host=localhost;dbname=hh', 'root', '');
    }catch(PDOException $e) {
    $e->getMessage();
    }
    
    
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
    
    $name = htmlspecialchars($_POST['search']);
    
    $name = "%".$name."%";
    
    $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
    $query->execute();
    }
    ?>
    
    <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
    <?=$result['title']?>
    <?php endforeach; ?>

    Bu hatayı alıyorum
    Fatal error: Uncaught Error: Call to a member function execute() on bool in C:xampphtdocsaraajax.php:19 Stack trace: #0 {main} thrown in C:xampphtdocsaraajax.php on line 19
  • 24-01-2023, 16:29:29
    #9
    iltu33 adlı üyeden alıntı: mesajı görüntüle
    Bu kodda
    <?php
    
    /* Veri Tabanını Bağla */
    try {
    $db = new PDO('mysql:host=localhost;dbname=hh', 'root', '');
    }catch(PDOException $e) {
    $e->getMessage();
    }
    
    
    /* Sorgu Başlat */
    if (isset($_POST['search'])) {
    
    $name = htmlspecialchars($_POST['search']);
    
    $name = "%".$name."%";
    
    $query = $db->query("SELECT * FROM posts WHERE title LIKE $name", PDO::FETCH_ASSOC);
    $query->execute();
    }
    ?>
    
    <!-- Yazdır -->
    <?php foreach ($query as $result): ?>
    <?=$result['title']?>
    <?php endforeach; ?>
    Bu hatayı alıyorum
    Fatal error: Uncaught Error: Call to a member function execute() on bool in C:xampphtdocsaraajax.php:19 Stack trace: #0 {main} thrown in C:xampphtdocsaraajax.php on line 19

    execute(array()) şeklinde bi dener misin hocam.