[ Príspevkov: 8 ] 
AutorSpráva
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 01.05.05
Príspevky: 12419
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 11.07.2011 18:13 | Vyhladavanie v MySQL za pomoci AJAXu

Chcel som si spravit vyhladavanie u seba na svojom blogu a napadlo ma to spravit za pomoci ajaxu, vid http://jan.fecik.sk/search.html a zaujimalo by ma ci je to dobre riesenie? Riesim to takto:

Kód:
<html>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<head>
<script type="text/javascript">
function showHint(str) {
  if (str.length==0) {
    document.getElementById("txtHint").innerHTML="";
    return;
  }
  if (window.XMLHttpRequest) {
    xmlhttp=new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
  } else {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
  }
  xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
      document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","search.php?query="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>

<form>
<input type="text" onkeyup="showHint(this.value)" size="20" />
</form>
<p><span id="txtHint"></span></p>

</body>
</html>


search.php
Kód:
<?php
$con = mysql_connect("localhost","root","");
mysql_select_db("databaza", $con);
mysql_query("SET CHARACTER SET utf8");
$query=mysql_real_escape_string($_GET["query"]);

if(strlen($query) >= 3) {
  $result = mysql_query("SELECT * FROM tabulka WHERE asdf LIKE '%$query%' ORDER BY id DESC");
  if(mysql_num_rows($result)==null) { echo 'nic'; } else {
    while($row = mysql_fetch_array($result)) {
      echo '<p>'.mysql_real_escape_string($row['asdf']).'<hr></p>';
    }
  }
} else { echo 'zadaj minimalne 3 znaky'; }
mysql_close($con);
?>


a zaujimalo by ma, ci je to dobre riesenie, ci tym znacne nevytazujem db server, ako by sa to chovalo ak tam bude stovka clankov a ci je to aj bezpecne riesnie...?


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Užívateľ
Užívateľ
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 26.12.06
Prihlásený: 30.10.17
Príspevky: 4009
Témy: 181 | 181
Bydlisko: Nitra / Bra...
Vek: 24
NapísalOffline : 11.07.2011 18:38 | Vyhladavanie v MySQL za pomoci AJAXu

vytazenie a bezpecnost - ako keby to bolo bez ajaxu.

ked vsak ide o vytazenie a pri xyz clankoch by to slo pomalsie, mozno by si tam mohol dorobit taku vec, ze sa http poziadavka vytvori az ked prestanes pisat, nie pri kazdom stlaceni kalvesy. teda dajme tomu, ze tam das timeout 400 ms po poslednom stlaceni, teda sa hladat zacne az ked napises cele slovo.

pri hladani slova "mysql" sa vytvori poziadavka iba raz, teraz sa vytvori 5 krat


_________________
Sorry za prelkepy
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 01.05.05
Príspevky: 12419
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
Napísal autor témyOffline : 12.07.2011 7:09 | Vyhladavanie v MySQL za pomoci AJAXu

dik to nie je zly napad to tak nejak dorobit :-) slo mi aj o to ze ci to nie je kravina mat takto spravene vyhladavanie a radsej spravit klasicke....


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 01.05.05
Príspevky: 12419
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
Napísal autor témyOffline : 17.07.2011 23:09 | Vyhladavanie v MySQL za pomoci AJAXu

Mam este taky mensi problem, v akomkolvek prehliadaci mimo ie ked dam vyhladavat nejaky retazec s diakritikou tak vyhladava, ale v ie mi vypise "nic nenaslo", nevedel by niekto v com by mohol byt problem?


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Užívateľ
Užívateľ
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 16.05.07
Prihlásený: 01.08.17
Príspevky: 837
Témy: 6 | 6
NapísalOffline : 18.07.2011 7:45 | Vyhladavanie v MySQL za pomoci AJAXu

asi ti niekde bude chybat charset ale teda si pozri ake znaky ti ten IE posiela na ten script


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 01.05.05
Príspevky: 12419
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
Napísal autor témyOffline : 18.07.2011 17:50 | Vyhladavanie v MySQL za pomoci AJAXu

praveze charset mam nastaveny na utf-8 preto tomu nerozumiem ze preco to nefachci


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
Offline

Čestný člen
Čestný člen
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 18.07.2011 18:13 | Vyhladavanie v MySQL za pomoci AJAXu

Jano, vyskusaj metodu open() pouzit takto (aj keby to nefungovalo, nechaj na webe prosim tuto verziu, nech sa s tym mozem hrat takto):
Kód:
  xmlhttp.open("GET","search.php?query="+encodeURIComponent(str),true);

Mozes skusit v tom search.php spravit iba nasledovne:
Kód:
<?php
header('content-type: text/html; charset=utf-8');
echo $_GET['query'];
?>
a dat vediet, co pride v Exploreri naspat (ako xmlhttp.responseText) napriklad pri natukani slova "inštalácia"?


Offline

Prevádzkovateľ fóra
Prevádzkovateľ fóra
Vyhladavanie v MySQL za pomoci AJAXu

Registrovaný: 01.05.05
Príspevky: 12419
Témy: 1447 | 1447
Bydlisko: Bratislava
Vek: 32
Napísal autor témyOffline : 18.07.2011 18:34 | Vyhladavanie v MySQL za pomoci AJAXu

jed sin tan pridal xmlhttp.open.... tak to zacalo fungovat :) thx


_________________
SilverStone SST CS01 | Corsair SF600 600W SFX | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 (16 Cores / 32 Threads) & Noctua NH-U9DX i4 | Kingston HyperX Savage 32 GB DDR4 2400 MHz | PNY NVIDIA Quadro K1200 DP 4 GB DDR5 | Intel SSD 750 1.2 TB NVMe & Intel SSD 730 240 GB SATA & Seagate BackUp Plus Portable 12 TB USB | 31.5" 4K LCD EIZO FlexScan EV3237 & 2 x 24" LCD EIZO FlexScan EV2451 | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech Wireless G700s | Harman Kardon Nova | Microsoft Windows 7 Ultimate | APC Back-UPS ES 700 | Lenovo ThinkPad X250 - Intel Core i7 5600U, 8 GB DDR3 1600 MHz, Intel HD Graphics 5500, SanDisk SSD 512 GB, 12.5 FHD LED IPS, WWAN 3G 4G LTE, Microsoft Windows 7 Ultimate | Nintendo Classic Mini | BlackBerry Passport 96 GB
 [ Príspevkov: 8 ] 


Vyhladavanie v MySQL za pomoci AJAXu



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

mysql-vyhladavanie

v Databázy

5

452

11.11.2011 15:55

GoodWill

V tomto fóre nie sú ďalšie neprečítané témy.

vyhladavanie v MYSQL

v PHP, ASP

10

753

23.10.2007 10:06

wotan

V tomto fóre nie sú ďalšie neprečítané témy.

PHP - MySQL - vyhladavanie?

v PHP, ASP

5

632

20.03.2010 6:24

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

vyhladavanie v MySQL

v PHP, ASP

6

349

29.08.2008 16:46

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

Autoclicker za pomoci obrazkov

v Assembler, C, C++, Pascal, Java

2

441

23.07.2009 19:40

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

Stisknutí klávesy pomocí programu

v Delphi, Visual Basic

1

328

26.06.2011 12:39

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

EXCEL - automatické zarovnanie (bez pomoci filtra)

v Ostatné programy

1

221

05.04.2011 22:51

jojom

V tomto fóre nie sú ďalšie neprečítané témy.

Spojit dva disky v jeden pomoci acronic disk suite

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Pevné disky a radiče

35

1482

24.05.2009 17:48

krolyno

V tomto fóre nie sú ďalšie neprečítané témy.

Mistrovství v AJAXu (problem)

v JavaScript, VBScript, Ajax

1

388

11.09.2009 14:26

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

P: Mistrovství v ajaxu

v Predám

0

213

17.06.2011 14:33

sedlák

V tomto fóre nie sú ďalšie neprečítané témy.

Mazanie súboru pomocou ajaxu

v JavaScript, VBScript, Ajax

2

474

11.09.2009 17:35

Unlink

V tomto fóre nie sú ďalšie neprečítané témy.

prosím pomôžte, troška ajaxu

v JavaScript, VBScript, Ajax

1

234

10.05.2009 14:49

juho

V tomto fóre nie sú ďalšie neprečítané témy.

Formulár načítaný pomocou jQuery AJAXu

v JavaScript, VBScript, Ajax

2

208

01.06.2010 12:55

Draex

V tomto fóre nie sú ďalšie neprečítané témy.

pisanie do textoveho pola pomocou ajaxu

v JavaScript, VBScript, Ajax

1

258

10.08.2009 10:57

awtt

V tomto fóre nie sú ďalšie neprečítané témy.

Overovanie pola pomocou php a AJAXu

v JavaScript, VBScript, Ajax

24

1093

14.08.2009 8:40

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

formular cez jquery kniznicu pomocou ajaxu a diakritika

v JavaScript, VBScript, Ajax

2

511

25.02.2009 19:40

emer



© 2005 - 2017 PCforum, edited by JanoF