[ 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: 13412
Témy: 1494 | 1494
Bydlisko: Bratislava
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...?


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

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

Registrovaný: 26.12.06
Prihlásený: 16.11.19
Príspevky: 3971
Témy: 181 | 181
Bydlisko: Nitra / Bra...
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: 13412
Témy: 1494 | 1494
Bydlisko: Bratislava
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....


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

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

Registrovaný: 01.05.05
Príspevky: 13412
Témy: 1494 | 1494
Bydlisko: Bratislava
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?


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
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: 13412
Témy: 1494 | 1494
Bydlisko: Bratislava
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


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
Offline

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

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34 | 34
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: 13412
Témy: 1494 | 1494
Bydlisko: Bratislava
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


_________________
Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS
 [ 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

667

11.11.2011 15:55

GoodWill

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

PHP - MySQL - vyhladavanie?

v PHP, ASP

5

914

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

545

29.08.2008 16:46

chrono

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

vyhladavanie v MYSQL

v PHP, ASP

10

923

23.10.2007 10:06

wotan

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

Autoclicker za pomoci obrazkov

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

2

589

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

604

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

416

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

2233

24.05.2009 17:48

krolyno

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

P: Mistrovství v ajaxu

v Predám

0

439

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

680

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

387

10.05.2009 14:49

juho

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

Mistrovství v AJAXu (problem)

v JavaScript, VBScript, Ajax

1

545

11.09.2009 14:26

Ďuri

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

Formulár načítaný pomocou jQuery AJAXu

v JavaScript, VBScript, Ajax

2

442

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

424

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

1557

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

748

25.02.2009 19:40

emer



© 2005 - 2024 PCforum, edited by JanoF