Witam, mam bardzo dziwny problem, którego nie mogę nigdzie zlokalizować w moim kodzie...
Siedzę nad tym już chyba 3 wieczór i nie mogę tego przełknąć.
Tutaj jest kod mojego index.php, ale on nie jest najważniejszy:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script>
function suggest(inputString){
if(inputString.length == 0) {
$('#suggestions').fadeOut();
} else {
$('#country').addClass('load');
$.post("autosuggest.php", {queryString: ""+inputString+""}, function(data){
if(data.length >0) {
$('#suggestions').fadeIn();
$('#suggestionsList').html(data);
$('#country').removeClass('load');
}
});
}
}
function fill(thisValue) {
$('#country').val(thisValue);
setTimeout("$('#suggestions').fadeOut();", 600);
}
</script>
<style>
#result {
height:20px;
font-size:16px;
font-family:Arial, Helvetica, sans-serif;
color:#333;
padding:5px;
margin-bottom:10px;
background-color:#FFFF99;
}
#country{
padding:3px;
border:1px #CCC solid;
font-size:17px;
}
.suggestionsBox {
position: absolute;
left: 0px;
top:40px;
margin: 26px 0px 0px 0px;
width: 200px;
padding:0px;
background-color: #000;
border-top: 3px solid #000;
color: #fff;
}
.suggestionList {
margin: 0px;
padding: 0px;
}
.suggestionList ul li {
list-style:none;
margin: 0px;
padding: 6px;
border-bottom:1px dotted #666;
cursor: pointer;
}
.suggestionList ul li:hover {
background-color: #FC3;
color:#000;
}
ul {
font-family:Arial, Helvetica, sans-serif;
font-size:11px;
color:#FFF;
padding:0;
margin:0;
}
.load{
background-image:url(loader.gif);
background-position:right;
background-repeat:no-repeat;
}
#suggest {
position:relative;
}
</style>
Teraz podam kod pliku który właśnie mnie intryguje:
$db = new mysqli('localhost', 'root' ,'', 'kraje2');
if(!$db) {
echo 'Could not connect to the database.'; } else {
if(isset($_POST['queryString'])) { $queryString = $db->real_escape_string($_POST['queryString']);
$query = $db->query("SELECT country FROM box WHERE ip LIKE '$queryString%' LIMIT 10");
if($query) {
while ($result = $query ->fetch_object()) {
echo '<li onClick="fill(\''.addslashes($result->country).'\');">'.$result->country.'</li>'; }
} else {
echo 'OOPS we had a problem :('; }
} else {
// do nothing
}
} else {
echo 'There should be no direct access to this script!'; }
}
Korzystam z takiego zapytania:
SELECT country FROM box WHERE ip LIKE '$queryString%' LIMIT 10To podając cyferki w zapytaniu w podpowiedziach wyświetlają mi się nazwy krajów, czyli wszystko jest OK
http://imageshack.us/photo/my-images/864/18420262.png/No ale mi nie o to chodzi... chce żeby po podaniu numerka w podpowiedzi były numerki (a dokładniej to adresy ip)
Więc zamieniam zapytanie na
SELECT ip FROM box WHERE ip LIKE '$queryString%' LIMIT 10Odświeżam, wprowadzam znowu 1 do formularza i proszę:
http://imageshack.us/photo/my-images/846/nook.png/Dołączę SQL mojej bazy:
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
--
-- Host: localhost
-- Czas wygenerowania: 13 Lut 2012, 11:06
-- Wersja serwera: 5.1.37
-- Wersja PHP: 5.3.0
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Baza danych: `kraje2`
--
-- --------------------------------------------------------
--
-- Struktura tabeli dla `box`
--
CREATE TABLE IF NOT EXISTS `box` (
`id` int(3) NOT NULL AUTO_INCREMENT,
`ip` varchar(15) NOT NULL,
`port` int(7) NOT NULL,
`password` varchar(20) NOT NULL,
`country` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Zrzut danych tabeli `box`
--
INSERT INTO `box` (`id`, `ip`, `port`, `password`, `country`) VALUES
(1, '127.0.1.1', 22, 'karol123', 'poland'),
(2, '12.12.12.12', 12, '12', 'dojczland');
Na czym polega ten problem że po zmianie tabeli nie widze wyników a ich ilość jest prawidłowa (prawidłowa bo lista podpowiedzi się rozwinęła a ale jest pusta)