Net123 Posted July 18, 2012 Share Posted July 18, 2012 hello i am making ajax php mysql live search script everything working fine by ajax but my problem is only about query and output correct result it was not working perfectlyit was showing results but ............. $searchq = $_GET['searchq']; $result = mysql_query("SELECT * FROM files WHERE name LIKE '%" . $searchq . "%' LIMIT 2");if (!$result) { echo 'Could not run query: ' . mysql_error(); exit;}while($row = mysql_fetch_array($result)) {echo $row['name'];}mysql_free_result($result); you can know from this query Link to comment Share on other sites More sharing options...
justsomeguy Posted July 18, 2012 Share Posted July 18, 2012 But what? What's the problem? Link to comment Share on other sites More sharing options...
Net123 Posted July 18, 2012 Author Share Posted July 18, 2012 (edited) it was not showing up the exact mach likeif i searched for 'w3schools' it was showing "quackit" and under what to do for this ?? Edited July 18, 2012 by Net123 Link to comment Share on other sites More sharing options...
justsomeguy Posted July 18, 2012 Share Posted July 18, 2012 That doesn't make sense based on the code. This query: SELECT * FROM files WHERE name LIKE '%w3schools%' LIMIT 2 Would not return a record where the name is set to "quackit". It doesn't match the condition. Either way though, you need to escape the value going into the query: $result = mysql_query("SELECT * FROM files WHERE name LIKE '%" . mysql_real_escape_string($searchq) . "%' LIMIT 2"); Link to comment Share on other sites More sharing options...
Net123 Posted July 18, 2012 Author Share Posted July 18, 2012 oh god error in this please help me what was error in thisAJAX /* ---------------------------- *//* XMLHTTPRequest Enable *//* ---------------------------- */function createObject() {var request_type;var browser = navigator.appName;if(browser == "Microsoft Internet Explorer"){request_type = new ActiveXObject("Microsoft.XMLHTTP");} else {request_type = new XMLHttpRequest();}return request_type;}var http = createObject();/* -------------------------- *//* SEARCH *//* -------------------------- */function searchNameq() {searchq = encodeURI(document.getElementById('searchq').value);document.getElementById('msg').style.display = "block";document.getElementById('msg').innerHTML = "Searching for <strong>" + searchq+"";// Set te random number to add to URL requestnocache = Math.random();http.open('get', 'searchfast.php?name='+searchq+'&nocache = '+nocache);http.onreadystatechange = searchNameqReply;http.send(null);}function searchNameqReply() {if(http.readyState == 4){var response = http.responseText;document.getElementById('search-result').innerHTML = response;}} Link to comment Share on other sites More sharing options...
justsomeguy Posted July 18, 2012 Share Posted July 18, 2012 Well, the code to create the XHR object isn't that great. There's a better example here: http://www.w3schools...uest_create.asp You should also use encodeURIComponent instead of encodeURI when you're encoding a value for the querystring. You also have an unclosed <strong> tag, and there are spaces around the equal sign for the nocache variable in the URL that shouldn't be there. The readystate handler isn't checking the response code either, so that may display an error message from the server if the request failed. Other than that, you should be using the Javascript debugging tools in your browser to look for error messages from Javascript. Link to comment Share on other sites More sharing options...
Net123 Posted July 18, 2012 Author Share Posted July 18, 2012 i googled about this i dont much ajax and java for fix errors anyone could give me the code plz Link to comment Share on other sites More sharing options...
boen_robot Posted July 19, 2012 Share Posted July 19, 2012 A link to the problematic page please? Link to comment Share on other sites More sharing options...
Net123 Posted July 19, 2012 Author Share Posted July 19, 2012 i dont wanna publish my name i will pm you ......... Link to comment Share on other sites More sharing options...
Net123 Posted July 19, 2012 Author Share Posted July 19, 2012 (edited) just add my site nameif i tried directly to my php pagehtpp://........................//in-search.php?searchq=Snehait was showing perfectly no any errors in mysql or php contents the problems are @ the ajax.......... Edited July 19, 2012 by Net123 Link to comment Share on other sites More sharing options...
boen_robot Posted July 19, 2012 Share Posted July 19, 2012 You're showing different scripts it seems. Maybe you forgot to sync them yourself.If I type "q" as the query, I get request to the URL /in-search.php?name=q&nocache=0.9572214348696474 Notice that the query is in "name". And your PHP script instead uses $_GET['searchq'] which means that the SQL statement ends up ALWAYS returning the first two entries.Change http.open('get', 'in-search.php?name='+searchq+'&nocache = '+nocache); (which is different from what you're showing above BTW... I took this here from the link you gave me)to http.open('get', 'in-search.php?searchq='+searchq+'&nocache = '+nocache); To avoid similar problems, I highly suggest you open up your browser's development tool (as specified in point 3.2. at this topic), and monitor the URLs (and the shown headers and body) that pops up as you search. 1 Link to comment Share on other sites More sharing options...
Net123 Posted July 19, 2012 Author Share Posted July 19, 2012 oh god i thank you very very much i tryied to fix this for past three day thank you very much.......... Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now