Autor Zpráva
Pavel Vodnář
Profil *
Ahojky, potřeboval by jsem poradit jakým způsomem dořešit jednoduché vyhledávání textu který mám uložený v databázi, respektive jak vypsat všechny řádky z tabulky kde se klíčové slovo objevuje, které bylo zadáno v inputu:

$vyhledano = zadaný text z inputu
Prozatím sem vytvořil phpko:
$dotaz2="SELECT text FROM inzeraty WHERE text=$vyhledano ";

$vysledek = MySQL_Query($dotaz2); // 

while ($zaznam = MySQL_Fetch_Array($vysledek)){ 
$nadpis=$zaznam["nadpis"];
$text=$zaznam["text"];
$zkraceny_text=substr("$text", 0, 185);
$cas=$zaznam["cas"];
$id=$zaznam["id_inzeratu"];
$datum=$zaznam["datum"];
}


Děkuji
panther
Profil
Pavel Vodnář:
- dotazu je syntaktická chyba
- najdi si něco o fulltextu
Pavel Vodnář
Profil *
panther:
chybku jsem opravil
$dotaz2="SELECT text FROM inzeraty WHERE text='$vyhledano' ";


v tuto chvíli musím zjistit jak udělat aby to vypsalo text z vyhledávaného slova nikoliv celého textu
jenikkozak
Profil
Pavel Vodnář:
- Lépe ti bude vyhledávat fulltext.
- Do cyklu dej vypsání získaných hodnot, takto jen stále přepisuješ ty proměnné.
- Najdi si něco o vypisování dat z databáze.

v tuto chvíli musím zjistit jak udělat aby to vypsalo text z vyhledávaného slova nikoliv celého textu
Cože? Text z vyhledávaného slova? Nebude to náhodou to slovo samotné?
Pavel Vodnář
Profil *
Opravil jsem to takto:

<?php

$submit = $_POST['submit'];
$vyhledat = AddSlashes($_POST['vyhledat']);


// údaje pro připojení k DB
$localhost = ".................................";
$user ="...............................";
$pass = "..................................";

$connect = mysql_connect ("$localhost","$user","$pass") or die("Nepodařilo se připojit k databázi");

mysql_select_db ("..................."); //select database
MySQL_Query('SET NAMES utf8'); 

if ($submit)
{

if ($vyhledat=='') 
{$error='Nazadali jste text pro vyhledávání';}

else $vyhledano=$vyhledat;

//echo $text;

$dotaz2="SELECT text, nadpis FROM inzeraty WHERE  match (text) against ('".$vyhledano."')  ";
$vysledek = MySQL_Query($dotaz2, $connect); // provedení sql dotazu

// POCET NALEZENYCH CLANKU
$num = MySQL_Num_Rows($vysledek); 

while ($zaznam = MySQL_Fetch_Assoc($vysledek)){ 
$nadpis=$zaznam['nadpis'];
$text=$zaznam['text'];


print $nadpis;
print $text;
}
}
?>



Ale pořád mi to vypisuje chybu u mysql_num_rows(): a mysql_fetch_assoc() proč? Děkuji
GeneralDv
Profil
Pavel Vodnář:
Ale pořád mi to vypisuje chybu u mysql_num_rows(): a mysql_fetch_assoc() proč?
Protože si ty funkce neporadí s návratovou hodnotou -> SQL dotaz máš špatně. Vypiš si mysql_error(). Ještě připomenu že u sloupců ve kterejch vyhledáváš musíš mít nastavenej fulltextovej index.
Pavel Vodnář
Profil *
mysql_error() = Can't find FULLTEXT index matching the column list, znamená to tedy že Nelze najít FULLTEXT index odpovídající sloupce seznamu? jak ho nastavím?
Pavel Vodnář
Profil *
Už to beží - chyba byla v nastaveni fulltextoveho indexu, díky
Pavel Vodnář
Profil *
Prosímvás ještě by jsem měl dotaz - > vytvořil jsem podmínku že když bude vyhledávaný text vypíše to výsledek na jinou stránku, jak udělat aby ta jiná stránka si pamatovala údaje?
Tori
Profil
session

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: