Diskuze: Vyhledávání v MySQL
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 17 zpráv z 17.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Tady ten nesmysl
$radku = 5;
nahrad
$radku = $resu?mysqli_affected_rows( $this->con ):0;
neboli kod vubec netestuje, jak probehla query ani nikde nezjistuje, kolik ma vysledek radku - proste to nastavi na 5 a dal nic
Jej, pardon, na to jsem zapomněl. (To jsem si jentak zkoušel, co to udělá.) Ale i když to nahradím (já teda předtím použil mysqli_num_rows), tak to není funkční.
z vyrazu "neni funkcni" fakt nikdo nic nevycte - ledaze by jsi vedel, kde koupit vesteckou kouli
Furt to píše tohle: Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in ... on line ....
Pak jste furt nenahradil 5 tim vyrazem, jinak by to tam nedoslo
pak jeste zmen tu podminku na
if($radku){
...vypis...
}else{
...chyba...
}
public function hledejClanky() {
$hledani = $_GET['search'];
$query = "SELECT * FROM clanky WHERE MATCH (nazev, text) AGAINST ('$hledani' IN NATURAL LANGUAGE MODE)";
$resu = mysqli_query($this->con, $query);
$radku = $resu ? mysqli_affected_rows($this->con) : 0;
if ($radku)
{
while ($vys = mysqli_fetch_assoc($resu))
{
echo('<h2>' . $vys['nazev'] . '</h2>');
}
}
else
{
echo('<h2>Nebylo nic nalezeno.</h2>');
}
}
Píše to stále "Nebylo nic nalezeno."
Hoj, omlouvam se, PHP moc nerozumim, ale nestaci na klasicke vyhledavani tohle?
SELECT * FROM clanky WHERE nazev LIKE '%s%' OR nadpis LIKE '%s%'
Ahoj, bere tento příkaz třeba i jenom část nějakého řetězce ? Buď název, nebo text, ale aby návštěvník nemusel zadávat celý název, nebo text.
Ja ti dam radu do zivota ... zahod to a zjisti si neco o DIBI
To je tedy dost špatná rada, dibi již vůbec není aktuální projekt, zaprvé ji nahradilo Nette database a zadruhé její původní účel byl suplovat za něco, co PHP již teď umí v základu s PDO.
Neni to aktualni projekt, protoze tam proste uz neni co pridavat ... kdyz nedelam nad Nette, pouzivam jedine dibi. Dost to zprijemnuje praci, coz oproti tomu co vidis nahore musis uznat, ze je pravda.
Osobne DIBI ani neberu tak, ze melo za neco suplovat ... spis to beru jako takovej "handy wrapper", diky kteremu se nejake mensi aplikace proste vyviji snaz.
Obecne sem tou radou myslel, at pouzije nejaky wrapper (at uz treba ten zdejsi nebo si udela vlastni)
"To nahoře" je odstrašující příklad někoho, kdo si nechce udělat čas na přečtení pár článků o tom, jak se správně pracuje s databází. Jinak by to napsal přes PDO a vypadalo by to skoro stejně jako s dibi. Z návrhového hlediska prostě nedává smysl používat knihovny třetích stran na věci, které má jazyk v základu.
Já jsem ještě v tomto začátečník a u PHP OOP jsem teprv u statiky. Ale děkuji, mrknu se na PDO.
Děkuji všem pomoc. Především Honzs Sedlomn, který se nejvíc přiblížil správnému řešení. Nebylo to zcela správně, nakonec jsem to vyřešil takto:
$query = "SELECT * FROM clanky WHERE nazev LIKE '%{$hledani}%' OR text LIKE '%{$hledani}%'";
Promin, ze jsem neodpovedel na tvuj dalsi dotaz, ponekud jsem zapomnel, ze jsem ti poradil.. Ale jsem rad, ze jsem aspon trochu pomohl
Zobrazeno 17 zpráv z 17.