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) { } else { $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()) { } } else { } } else { // do nothing } } else { } }
Korzystam z takiego zapytania: SELECT country FROM box WHERE ip LIKE '$queryString%' LIMIT 10
To 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 10
Odś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)