Poslao: 01 Mar 2005 22:58
|
offline
- Balkanac82
- Legendarni građanin
- Pridružio: 20 Dec 2004
- Poruke: 2887
- Gde živiš: Na Balkanu
|
Dobro onda formiram niz sa rezultatima i u njemu čuvam brojeve svih redova u tabeli koji odgovaraju upitu. Kako da napravim petlju koja će brojati koliko se puta koji red pojavljuje u rezultatima? Kad to završim kako da složim taj niz da prvo budu oni koji sadrže sve reči? Kad bih ovo rešio skrip bi bio gotov.
Peco, stiče se utisak da jedino ti na ovom forumu znaš PHP ili da jedino ti imaš vremena i živaca da se bakćeš sa ovakvima kao što sam ja.
Koliko ja vidim nedostaju mi dve samo dve petlje, koje ja neznam napisati.
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 01 Mar 2005 23:41
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
malo obimniji posao, za sat-dva...
na zalost, nemam toliko vremena...
koristi for petlju, protrci kroz nizove, prebroj....
|
|
|
|
Poslao: 03 Mar 2005 17:46
|
offline
- Balkanac82
- Legendarni građanin
- Pridružio: 20 Dec 2004
- Poruke: 2887
- Gde živiš: Na Balkanu
|
Mislim da sam pri kraju samo mi treba neki drugi operaor poređenja umesto like. Treba mi operator koji će mi zameniti =. Ja sam pokušao i sa == ali to nije to. Znači treba mi tačan rezultat kao i keyword. Šta da koristim?
|
|
|
|
Poslao: 03 Mar 2005 17:52
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
WHERE message='primer'
|
|
|
|
Poslao: 03 Mar 2005 17:58
|
offline
- Balkanac82
- Legendarni građanin
- Pridružio: 20 Dec 2004
- Poruke: 2887
- Gde živiš: Na Balkanu
|
Šta si hteo reći?
Kako ovde to da ubacim:
$query = "select * from podaci where ". id.
" like '%".$keyword[$j][0]."%'";
|
|
|
|
Poslao: 03 Mar 2005 18:22
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
kazes da ti treba tacan rezultat?
to znaci da trazis polje u kome stoji samo ta rec/brojka, i ni jedna druga...
onda ide obican =
ovako:
za rec:
$query = "select * from podaci where id = '".$keyword[$j][0]."';";
za brojku:
$query = "select * from podaci where id = ".$keyword[$j][0].";";
|
|
|
|
Poslao: 03 Mar 2005 19:07
|
offline
- Balkanac82
- Legendarni građanin
- Pridružio: 20 Dec 2004
- Poruke: 2887
- Gde živiš: Na Balkanu
|
Ne slaže mi rezultate po broju pronađenih rezultata, ja nevidim gde je greška. Pre sam radio metod ponovljenog maksimuma, nikad za dvodimenzionalen nizove ali mislim da nisam nigde pogrešio
for ($s=0; $s<$z; $s++)
{
for ($e=1; $e<=$z; $e++)
{
if ($temp[$e][1]>$temp[$s][1])
{
$pomocna[1][0]=$temp[$s][0];
$pomocna[1][1]=$temp[$s][1];
$temp[$s][0]=$temp[$e][0];
$temp[$s][1]=$temp[$e][1];
$temp[$e][0]=$pomocna[1][0];
$temp[$e][1]=$pomocna[1][1];
}}}
$temp je je niz koji sadrži podniz. U $temp[$a][0] čuvam broj reda u tabeli gde se nalaze rezultati koji odgovaraju postavljenom upitu, a u $temp[$a][1], je broj koliko puta se taj red ponavlja unutar rezultata. Red će se pojaviti onoliko puta u rezultatima koliko u koloni keywords ima reči koje se pojavljuju u upitu. Pre toga sam napravio još jednu petlju:
for ($g=0; $g<=$z; $g++)
{
$f=0;
for ($h=0; $h<=$z; $h++)
if($temp[$g][0] == $temp[$h][0])
$f++;
$temp[$g][1] = $f;
}
Ova petlja proverava koliko se puta jedan red pojavljuje unutar rezultata, ako je if ispunjeno f++ i na kraju u $temp[$g][1] dodaje $f. Prema tom podatku sam u predhodnom kodu vršio sortiranje. $z je ukupan broj rezultata zanči rezultati za prvu reč + rezultati za drugu reč ...
Vidi li ko gde je preoblem?
|
|
|
|
Poslao: 03 Mar 2005 19:39
|
offline
- Peca
- Glavni Administrator
- Predrag Damnjanović
- SysAdmin i programer
- Pridružio: 17 Apr 2003
- Poruke: 23211
- Gde živiš: Niš
|
idi korak po korak, ubaci echo posle svakog reda, i prati koje rezultate dobijas, jedino tako mozes da nadjes gde program odstupa od 'zamisljenog rada'
|
|
|
|
Poslao: 03 Mar 2005 22:34
|
offline
- Balkanac82
- Legendarni građanin
- Pridružio: 20 Dec 2004
- Poruke: 2887
- Gde živiš: Na Balkanu
|
Pomozi mi malo oko ovoga, jer ja mislim da je ovde problem. Napravio sam niz $temp[$i][$j]. Zapravose radi o podnizu niza. Na mestu $j=0 pamtim broj kolone, a na $j=1 broj pojavljivanja u rezultatima. Pa niz treba složiti da prvo budu prikazani rezultati gde je $j=1 veće. Napravio sam kod za sortiranje koliko se sećam iz C-a, ali izgleda da sam nešto propustio.
for ($s=0; $s<=$z-1; $s++){
for ($e=$s+1; $e<=$z; $e++)
{
if ($temp[$e][1]>$temp[$s][1])
{
$pomocna[1][0]=$temp[$e][0];
$pomocna[1][1]=$temp[$e][1];
$temp[$e][0]=$temp[$s][0];
$temp[$e][1]=$temp[$s][1];
$temp[$s][0]=$pomocna[1][0];
$temp[$s][1]=$pomocna[1][1];
}}}
|
|
|
|
|