Autor Zpráva
Akali
Profil
Ahoj, někde se vloudila chyba při vyhledávání na webu.. Zde je zdrojový kód

<?php
include 'db.php'; 
 
         
$search = mysql_real_escape_string($_GET["search"]);
$result = mysql_query("
    SELECT * FROM texty
    WHERE MATCH(nadpis, text) AGAINST ('$search' IN BOOLEAN MODE)
    ORDER BY 5 * MATCH(nadpis) AGAINST ('$search') + MATCH(text) AGAINST ('$search') DESC
");

while ($radek = mysql_fetch_array($result))
{ 
  echo $radek['nadpis'];
  echo $radek['text'];                
} 

  ?>


Vůbec už si nevím rady. Zde je živej odkaz http://plastoma.velkyberanov-fotbal.cz/vyhledavac.php?search=
Darker
Profil
No a zjistil sis, co za proměnnou je $result? Skus jí vypsat přes echo, resource to asi není, ale mělo by.
Akali
Profil
když vypíšu result
echo $result;


Tak to nic nevypíše :(
panther
Profil
Akali:
na ř. 12 by ti to mělo vypsat Warning, že u mysql_fetch_assoc nemáš resource. Vypiš si mysql_error() a zapni výpis chybových hlášek.
Akali
Profil
Tak chyba je tady, ale stále nevím, jak ji opravit :(
http://plastoma.velkyberanov-fotbal.cz/vyhledavac.php?search=okno
AM_
Profil
na řádce 21 máš syntaktickou chybu, syntaxi jazyka by si zvládat měl ;) případně si pořiď editor se zvýrazněním syntaxe (třeba pspad), tam je z obarvení vidět, kde je něco špatně.
Akali
Profil
Na ten řádek se koukám marně už několik hodin
AM_
Profil
tak se na něj dívej dál, jestli se o něj nechceš podělit ;) ale raději o celý kód, chyba může být někde dříve, ale až na řádku 21 to interpreteru přestane dávat smysl.
Akali
Profil
Tak celý kód

vyhledavac.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta http-equiv="Content-Language" content="cs" />
	<link rel='stylesheet' type='text/css' href='styl.css' />
	<title>titulek</title>
</head>
<body>
<?php
include 'db.php'; 
 
         
$search = mysql_real_escape_string($_GET["search"]);
$result = mysql_query("
    SELECT * FROM texty
    WHERE MATCH(nadpis, text) AGAINST ('$search' IN BOOLEAN MODE)
    ORDER BY 5 * MATCH(nadpis) AGAINST ('$search') + MATCH(text) AGAINST ('$search') DESC
");

while ($radek = mysql_fetch_array ($result))  
{ 
  echo $radek['nadpis'];
  echo $radek['text'];                
} print("Došlo k chybě v dotazu: ".$q."<br>".mysql_error());

  ?>
  </body>
  </html>


formular.html
<form method="GET" action="vyhledavac.php">
<input type="text" name="search">
</form>.


db.php
<?php         
$link = mysql_connect('mysql5-4', 'uzivatel', 'pass');
mysql_select_db('db_name', $link);  
 
?>
AM_
Profil
Tak na tohle nemám sil, před chvílí ti ten kód házel unexpected T_VARIABLE, teď hází úplně jinou chybu. Takže mezitím ten kód měníš, tak jak ti máme pomoct?
navíc ti to vypisuje jakou tam máš chybu, odborník přes databáze nejsem takže nevím jak se přesně indexuje FULLTEXTem, ale problém je zřejmě v zaindexování databáze, ne v PHP kódu.
Kajman_
Profil *
ale problém je zřejmě v zaindexování databáze
Což už tu bylo před pár dny tipováno.
Akali
Profil
Jak bych měl to zaindexování databáze vyřešit?
Kajman_
Profil *
Vytvořením fulltextové indexu na sloupci nadpis i na sloupci text. Buď pomocí aplikace adminer nebo podobné. Nebo přímo příkazem
create index
Akali
Profil
Tak to vážně bylo jenom nastavením pma.. Díky
AM_
Profil
No, jestli zaindexování databáze nazýváš nastavení phpmyadmina, asi by ses měl zamyslet nad tím, kde jsi ve svém studiu co zanedbal.
Akali
Profil
Jistě, že tam mělo být nastavení tabulky, respektive řádku. Omlouvám se!
AM_
Profil
respektive sloupce... promiňte mi mou hnidopišnost
Sanjay
Profil
Ten vyhledavač hledá přez MySQL ?
Akali
Profil
jo, tak sloupce. Ano, přes MySQL.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0