0

I try to include a live search into my website. This is my code:

index.html:

<script src="typeahead.min.js"></script>
<input type="text" name="typeahead" class="typeahead tt-query" autocomplete="off" spellcheck="false" placeholder="Type your Query">

search.php

<?php
    $key=$_GET['key'];
    $array = array();
    $con=mysql_connect("localhost","root","");
    $db=mysql_select_db("gs_dev",$con);
    $query=mysql_query("select * from dmdkh_posts where post_title LIKE '%{$key}%'");
    $query2=mysql_query("select * from dmdkh_posts where post_title LIKE '%in%'");

    //THIS OUTPUT WORKS! I get all titles.
    //echo $query2;
    /*while ($row = mysql_fetch_array($query2, MYSQL_ASSOC)) {
    printf("Title: %s ", $row["post_title"]);
    }*/ 

    while($row=mysql_fetch_array($query, MYSQL_ASSOC))
    {
      $array[] = $row['post_title'];
    }
    //THIS OUTPUT IS EMPTY! OUTPUT: []
    echo json_encode($array);
?>

I've two query.. (query and query2) the ouput of query2 works, I get the titles. The output of query is "[]"

In firebug I can see the parameters which will transfer from index.html into search.php.

I hope someone can guard me.

cgee
  • 1,910
  • 2
  • 22
  • 38
  • If you can, you should [stop using `mysql_*` functions](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). They are no longer maintained and are [officially deprecated](https://wiki.php.net/rfc/mysql_deprecation). Learn about [prepared](http://en.wikipedia.org/wiki/Prepared_statement) [statements](http://php.net/manual/en/pdo.prepared-statements.php) instead, and consider using PDO, [it's really not hard](http://jayblanchard.net/demystifying_php_pdo.html). – Jay Blanchard Aug 03 '15 at 12:47
  • [Your script is at risk for SQL Injection Attacks.](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Jay Blanchard Aug 03 '15 at 12:47
  • I know thats not mysqli. It is only a test. If I type 3 letters into the input field my script works... – cgee Aug 03 '15 at 12:50

1 Answers1

0

Change your first query with $query=mysql_query("select * from dmdkh_posts where post_title LIKE '%$key%'");

Mayank Vadiya
  • 1,437
  • 2
  • 19
  • 32