Alternatywna wyszukiwarka internetowa PHP + MySQL
Kod: Zaznacz cały
$zapytanie=mysql_query($sql);
Co pokazuje
Kod: Zaznacz cały
echo $sql;
Kod: Zaznacz cały
$zapytanie=mysql_query($sql);
Po podaniu w formularzu słowa "nauk"a echo pokazuje:
Linijke niżej wyskakuje błąd
Plik lib.php zawiera ten kod jest to funkcja. Plik jest załączony w pliku z formularzem przez include.
Kod: Zaznacz cały
SELECT adres, count(*) as hits FROM adres WHERE (0) OR (slowo LIKE '%nauka%')GROUP BY adres ORDER BY hits DESC, adres ASC
Kod: Zaznacz cały
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/sp/lib.php on line 19
linia 19 to jest to ?
nie wiem czy to może być bez spacji ?
stawi napisał :spacja pomiędzy ) "
Kod: Zaznacz cały
$tab=mysql_fetch_array($zapytanie);
Kod: Zaznacz cały
'%nauka%')GROUP
stawi napisał :
Kod: Zaznacz cały
$sql .= " OR (slowa LIKE '%{$slowo}%') ";
Tak to jest tolinia 19 to jest to ?
Kod: Zaznacz cały
mysql_fetch_array
Kod: Zaznacz cały
SELECT adres, count(*) as hits FROM adres WHERE (0) OR (slowo LIKE '%nauka%') GROUP BY adres ORDER BY hits DESC, adres ASC
1. ¦ciągnąłem załącznik - nie wiem czy to ma jakieś znaczenie bo nigdy nie nazywałem pola tabeli tak jak nazywa się tabela, więc to z mojej strony taka sobie teoria.
2. W kolejnym załączniku myślę że dobrze by było abyś pokazał całość, obydwa pliki o których wspominałeś, może nie dostaje ta funkcja wszystkich danych, oprócz $_POST oczywiście, bo ta tablica jest widziana w całym skrypcie.
--------------------------------------
Spróbuj przerobić aby Ci wyszło takie coś:
2. W kolejnym załączniku myślę że dobrze by było abyś pokazał całość, obydwa pliki o których wspominałeś, może nie dostaje ta funkcja wszystkich danych, oprócz $_POST oczywiście, bo ta tablica jest widziana w całym skrypcie.
--------------------------------------
Spróbuj przerobić aby Ci wyszło takie coś:
Kod: Zaznacz cały
$sql = 'SELECT adres, count(*) AS hits FROM adres WHERE (0) OR (slowo LIKE '."%{$slowo}%".') GROUP BY adres ORDER BY hits DESC, adres ASC';
jang napisał:
Robiłem już tak i wtedy nie było z tym problemu.
Załączę oba pliki taka jak teraz wyglądają.Plik lib.php nieco się zmienił ale problem jest jaki był. Kiedy funkcja zacznie pracować jak trzeba sam formularz zrobię inaczej, niema za bardzo co przy tym majstrować o ile nie ma to wpływu na działanie funkcji.
[ Dodano: 2007-07-30, 14:45 ]
Echo wyżuciło mi tak:
Chyba to miałeś na myśli? Nic błąd jak był tak jest. Wypróbowałem kilka innych zapisów wszystko to samo. Jak przez pomyłkę podałem slowo zamiast $slowo pokazało to samo więc chyba tu jest problem.
Kod: Zaznacz cały
1. ¦ciągnąłem załącznik - nie wiem czy to ma jakieś znaczenie bo nigdy nie nazywałem pola tabeli tak jak nazywa się tabela, więc to z mojej strony taka sobie teoria.
Załączę oba pliki taka jak teraz wyglądają.Plik lib.php nieco się zmienił ale problem jest jaki był. Kiedy funkcja zacznie pracować jak trzeba sam formularz zrobię inaczej, niema za bardzo co przy tym majstrować o ile nie ma to wpływu na działanie funkcji.
[ Dodano: 2007-07-30, 14:45 ]
Echo wyżuciło mi tak:
Kod: Zaznacz cały
SELECT adres, count(*) as hits FROM adres WHERE (0) OR (slowo LIKE '."%nauka%".') GROUP BY adres ORDER BY hits DESC, adres ASC
Kod: Zaznacz cały
Robiłem już tak i wtedy nie było z tym problemu.
Kod: Zaznacz cały
<?php
function szukanie()
{
if(isset($_POST['szukane']))//warunek wykonania
{
$szukane=trim($_POST['szukane']);//obcięcie spacji
$szukane=explode(" ", $szukane);//rozbicie zapytaniana słowa
$sql_conn=mysql_connect('localhost','root','');//łączenie z MySQ
mysql_select_db('nauka',$sql_conn);//wybranie bazy danych;
$sql = 'SELECT adres, count(*) as hits FROM adres WHERE (0) ';
foreach($szukane as $slowo)
{
$sql .=' OR (slowo LIKE %{'."$slowo".'}%) ';
}
$sql .=' GROUP BY adres ORDER BY hits DESC, adres ASC';
echo $sql;
$zapytanie=mysql_query($sql);
$tab=mysql_fetch_array($zapytanie);
echo $tab['adres'];
}
//mysql_close($sql_conn);
}
?>
Kod: Zaznacz cały
<input type="text" size="50" name="szukane" value="">