laucinieks Posted July 28, 2011 Report Share Posted July 28, 2011 (edited) Ir meklētājs, kurš meklē ierakstīto informāciju datubāzē un velk izmet uz ekrāna atrastos datus. Viss būtu labi, bet lieta tāda, ka meklētājs nemeklē datubāzē datus, kuri ir ar garumzīmēm, precīzāk sakot, viņš tikai tos izvelk, ja vārda "vāvere" vietā ieraksta "vavere". Kods - $nosaukums = $_POST['nosaukums']; if (!empty($_POST['Search'])) { mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER SET utf8_latvian_ci"); $sql = 'SELECT * FROM muzika WHERE nosaukums LIKE "%'.$nosaukums.'%"'; $add = mysql_query($sql); $row = mysql_fetch_assoc($add); Datubāzē informācija ir ierakstīta ar garumzīmēm. Edited July 28, 2011 by laucinieks Quote Link to comment Share on other sites More sharing options...
marrtins Posted July 28, 2011 Report Share Posted July 28, 2011 Ieliec laukam tipu varbinary vai arī meklē ar LIKE BINARY Quote Link to comment Share on other sites More sharing options...
laucinieks Posted July 31, 2011 Author Report Share Posted July 31, 2011 Es mazliet pats saputrojos, viņš caur phpmyadmin sql atrod un uzrāda, ja raksta ar garumzīmēm, bet meklējot caur php viņš atrod bet neuzrāda uz ekrāna, precīzāk sakot tukšs lauks, jo uzliku pārbaudi, ja atrod tad uzzīmē tabulu ar dziesmām, ja nē uzraksta "nekas netika atrasts", manā gadījumā, tika uzzīmēta tabula, bez dziesmām. Pilnais kods - http://paste.php.lv/54b31fe0c62b5a2b2e9fd4d93954d2c4?lang=php Quote Link to comment Share on other sites More sharing options...
briedis Posted July 31, 2011 Report Share Posted July 31, 2011 (edited) SET NAMES UTF8 ir uzlikts pēc DB konekcijas? Edited July 31, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
laucinieks Posted July 31, 2011 Author Report Share Posted July 31, 2011 Tikko ieliku, tāpat nestrādā. Quote Link to comment Share on other sites More sharing options...
briedis Posted July 31, 2011 Report Share Posted July 31, 2011 Parādi pilnu to db konekcijas veidošanas kodu Quote Link to comment Share on other sites More sharing options...
laucinieks Posted July 31, 2011 Author Report Share Posted July 31, 2011 Lūdzu - http://paste.php.lv/2e520c4822673d9d19783b8694fc4d08?lang=php Quote Link to comment Share on other sites More sharing options...
daGrevis Posted July 31, 2011 Report Share Posted July 31, 2011 Ieliec laukam tipu varbinary vai arī meklē ar LIKE BINARY Šito pamēgināji? Quote Link to comment Share on other sites More sharing options...
laucinieks Posted July 31, 2011 Author Report Share Posted July 31, 2011 (edited) Jā, ar like binary tieši tāda paša situācija, ja ielieku laukam "nosaukums" tipu varbinary, varchar vietā tad vispār neko neatrod. Edited July 31, 2011 by laucinieks Quote Link to comment Share on other sites More sharing options...
briedis Posted July 31, 2011 Report Share Posted July 31, 2011 (edited) Problēma ir tajā, ka, tiklīdz izmanto: $row = mysql_fetch_assoc($add); Tā KURSORS starp atgrieztajiem ierakstiem tiek pabīdīts uz nākošo ierakstu, un, pēc tam, kad tu jau raksti: while ($addrow = mysql_fetch_array($add)) Tā $addrow sākumā jau ir OTRAIS ieraksts. Gadījumā, ja tabulā ir tika viens ieraksts, loģiski, ka tiks izvadīta tabula, jo $row = mysql_ saturēs pirmo vērtību, bet whule($add... saturēs FALSE, jo otrā ieraksta vienkārši nav. Lai noskaidrotu, cik ierakstu ir atgriezts ir jālieto mysql_num_rows($data);, kur $data = mysql_query(..); Un kādā sakarā tu liec mysql_query("SET NAMES utf8"); mysql_query("SET CHARACTER SET utf8_latvian_ci"); ciklā? Tas ir jādara tikai 1x pēc konekcijas izveidošanas. ..Un ja tev sanāk rezultāts caur phpmyadmin, tad kļūda ir tavā kodā, jo phpmysqadmin ir prasts php skripts, nevis maģija. Edited July 31, 2011 by briedis Quote Link to comment Share on other sites More sharing options...
laucinieks Posted August 1, 2011 Author Report Share Posted August 1, 2011 Paldies, viss strādā! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted August 1, 2011 Report Share Posted August 1, 2011 Tak nedari pats Sev lieku darbu... var_dump(). Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.