Search problem!

poruka: 8
|
čitano: 2.095
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Search problem!!!
pitanje

Ok imam konkretan problem! Pravim si stranicu i nemogu da upogonim pošten search. Napravio sam MySQL bazu u kojoj imam tabele za igre, muziku, programe, i dr. Eh nemogu u Dreamweaver-u CS3 da povežem da mi kad ukucam nešto u search pretraži sve tabele i da kad izbaci rezultat ode na tačnu stranicu na kojoj se nalaze opširniji opisi. Koristio sam Dreamweaver-ove Master detail page set alate da to povežem. U search stranicu sam ubacio repeat region da bi ispisalo više rezultata ali kada napravim posebne recordset-ove za svaku tabelu (jer ih drugačije nemogu povezat) i stavim to u jednu tabelu on mi ispiše više puta jedan te isti rezultat, u mom slučaju izvođača iz music recordset-a,a normalno ispiše nazive igara iz games recordset-a koje sadrže taj kriterij. Imam više stranica za različite kategorije podataka i imam na svakoj search. Imam jednu search result stranicu u kojoj ispiše traženo i imam jednu advanced stranicu u kojoj ispiše detaljnije podatke kada kliknem na neki od rezultata. Problem je:

1) Kako napraviti da mi u search result stranici ispiše rezultate iz svih tabela i da prilikom klicka na njih ode na stranicu na kojoj se nalazi detaljniji opis?

2) Da li trebam posebnu stranicu na koju bi me proslijedilo kada kliknem na neki link iz search rezultata za svaku kategoriju tako da kad bi mi izbacilo npr. Alone in the Dark i T-Pain i kliknem na Alone in the Dark ode na stranicu games_advanced.php a kad bi kliknuo na T-Pain ode na music_advanced.php da bi mi prikazalo detalje o tome?

Pls help skinuo sam razne tutorijale i tražio na netu da mi to ko objasni ali nema ništa što bi mi pomoglo!

 
0 0 hvala 0
16 godina
offline
RE: Search problem!!!

ma samo stavi Google pretraživanje isve će biti u redu!

Moje račuanlo: ASRock ALiveSATA2-GLAN, 1024 MB (DDR2-667 2x512) AMD Athlon 64 3200+ (2),Nvidia GeForce 7600gs (256mb), 160gb.... 1. Isatknuti suradnik na gallery.live.com
15 godina
neaktivan
offline
Search problem!!!
autorov komentar

pa ne želim google-ov search već moj kad već imam bazu.

 
0 0 hvala 0
15 godina
offline
Search problem!!!

Nemas bas za to tutoriale

 

Ako npr imas tablicu filmovi, tablicu muzika i tablicu slike

 

Onda imas npr u formi dropdown gdje mozes izabrati sto trazis

 

Onda ti logika programiranja ide otprilike ovako

 

 

 

 

 

Pogledaj sto zelis pretrazivati

 

Zelis filmove

sql upit za filmove = select* from film where uvjeti

 

Zelis muziku

sql upit za muziku = select * from muzika where uvjeti

 

Ispis filmovi

a href = "film_adv.asp?idfilm = xxx"

 

Ispis muzika

a href = ".... idmuzika=xxx"

 

iako ti je najbolje da pokusas sve kategorije strpat u jednu tablicu pa ces si olaksat pretragu al nije nuzno

I'm going woo woo
 
0 0 hvala 0
15 godina
neaktivan
offline
Search problem!!!
autorov komentar

Pa u biti bi mi trebalo nešto tipa search-a kao npr. na http://www.rom-freaks.net/ da kada nešto ukucam da mi pretraži sve tabele i izbaci mi rezultate i da mi prilikom klicka na jednu od rezultata ode na detaljniji site o tome. Imam 5 tabela: games, movies, music, programs, consoles i u svakoj bar po name, link, i date. Ja bi to pretraživao samo po imenu. Dali postoji način da se to sve uveže i ako kako i u čemu? dali moram učit MySQL query-e ili to mogu napravit i u Dreamweaver-u CS3. PLS help ovo mi je veoma važno!!!

 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Search problem!!!

Nažalost učenje SQL-a ti je neophodno. Ako imaš barem par mjeseci programerskog iskustva i malo vremena

savladat ćeš osnove SQL-a kroz par dana.

 

Ako i postoji mogućnost pretrage unutar CS3 to ti bude previše ograničavajuće. Uzmi malo vremena i nauči to/pitaj ovdje na forumu

15 godina
neaktivan
offline
Search problem!!!
autorov komentar

Dali postoji mogućnost da ne moram učit MySQL pošto nemam puno programerskog iskustva a nemam ni puno vremena. Dali se to može napravit preko kakvog softvera koji bi mi napravio search engine???? Ili dali rto mogu vizuelno odradit u kakvom programu za upravljanje MySQL bazama?? Ili dali bi mogao iskoristiti kakvu php scriptu za pretraživanje baze kakvo ja želim???

Poruka je uređivana zadnji put pet 8.8.2008 14:46 (admirdante).
 
0 0 hvala 0
16 godina
neaktivan
offline
Search problem!!!

e, gle.... mysql ti je 5 PHP naredba i jos 5 SQL naredbe (govorim samo za osnovnu uporabu)... A za kreiranjebaze koristi PhpMyAdmin koji je jako jednostavan za koristenje

mysql_connect ($hostname, $password = "") -> funkcija za spajanje na bazu.... host ti je obicno "localhost", username znas, a password polje ne moras pisat ako je nema...

mysql_select_db ($database_name) -> odabire bazu na kojoj ce se radit

$q = mysql_query ($query); -> izvrsava SQL upit $query, i "rezultate" sprema u varijablu $q

$array = mysql_fetch_assoc ($q) -> sprema sve rezultate u array... array je oblika $array[$broj_retka][$ime_polja]... moras mu poslat varijablu koja se deklarira gornjom funkcijom

$s = mysql_real_escape ($string); -> obavezno koristiti.... inace ti je stranica podlozna na SQL injection napade.... budem kasnije objasnio

mysql_num_rows ($q) -> koliko je query $q bacio redaka???



SQL NAREDBE
SELECT - cita tablicu
SELECT * FROM `ime_tabele`


Ovo cita cijelu tabelu... A ako naprimjer zelis samo redove u kojima je vrjednost polja npr user jednaka idiot, dodas WHERE uvjet:
SELECT * FROM `ime_tabele` WHERE `user` = 'idiot'

A ako zelis npr vise uvjeta koristis operator AND znaci ... WHERE `ime_polja` = 'idiot' AND `IQ` = 4

 

UPDATE - mjenja podatke u tablici
UPDATE `ime_table' SET `ime_polja`= 'vrijednost polja'

Takodjer i ovdje mozes staviti WHERE uvjet.... jer ovako bi inace promjenilo sve redove.... znaci, ako se user opametio i zelis mu IQ promjenit na cak 5, stavis mu:
UPDATE `ime_tabele` SET `IQ` = 5 WHERE `user` = 'idiot';


INSERT - stavlja nove podatke
INSERT INTO `ime_tabele` (`ime_prvog_polja`, `ime_drugog_polja`) VALUES ('vrijednost 1. polja', 'vrijednost 2. polja').

Npr recimo da se user registrira, i da ti svoj username i IQ....

INSERT INTO `ime_tabele` (`user`, `IQ`) VALUES ($username, $iq)


DELETE - komplementno INSERTU.... brise cijeli redak
DELETE FROM `ime_tabele`WHERE `username`= 'idiot'





I eto, to ti je to.... evo sada PHP primjer...

<?php
    //spajam se na bazu
    mysql_connect ("localhost", "kviskovac", "moja_sifra123");
    mysql_select_db ("kvisko");

    // dali se krisnik pokusao logirati?
    if (isset ($_POST['login'])) {
          // Uzmi podatke iz forme... ali pritom neka prvo prodju kroz mysql_real_escape funkciju tako da budu skgurni od SQL injection napada....
          $username = mysql_real_escape($_POST['username']);
          $psw = md5(mysql_real_escape($_POST['password']));

          //SELECT QUERY
         $q = mysql_query ("SELECT * FROM `ime_tablice` WHERE `username` = '$username' AND `password` = '$psw'");       

          //ako je korisnik sa tom sifrom pronadjen, tj, ako je query bacio 1 rezultat, postavi session da je logiran
          if (mysql_num_rows($q) == 1) {
              //postavi mu session da je logiran
              $_SESSION['poznat'] = true;

             
              // sva rjesenja queryja zapisi u array (cita iz baze)
              $results = mysql_fetch_assoc($q);

              // napisi mu lijepu pozdravnu poruku
              echo "Dobar dan, g. ". $results[0]['username']. "! Vas IQ trenutno je: " . $results[0]['IQ'];

              // ako je administrator, postavi mu session "admin" na true
              if ($results[0]['privileges'] == "Admin")
                    $_SESSION['admin] = true;


          } else die ("Glupane, nauci se tipkat.... Takav korisnik ne postoji");
    }

    // dali se korisnik zeli registrirat???
    if (isset ($_POST['register'])) {
         $username = mysql_real_escape($_POST['username']);
         $psw = md5(mysql_real_escape($_POST['password']));
         $IQ = mysql_real_escape($_POST['glupost']);

         //prvo provjeri dali korisnik vec postoji u bazi.... slicno kao i gore
         //SQL statement
         $q = mysql_query ("SELECT * FROM `ime_tablice` WHERE `username` = '$username'");
        
         // ako ima 0 rjesenja, tj ako korisnik ne postoji, registriraj korisnika....
         if (mysql_num_rows($q) == 0) {
              //SQL INSERT STATEMENT
               mysql_query ("INSERT INTO `ime_tablice` (`username`, `password`, `IQ`) VALUES ('$username', '$psw', '$IQ')");
         } else die ("Username se vec koristi, mozda je tvoj?");
    }

     // unaprijedi korisnika???
     if (isset ($_POST['unaprjedjenje'])) {

              $username = mysql_real_escape($_POST['username']);
              $novi_IQ = mysql_real_escape($_POST['IQ']);
             
              // ako je korisnik administrator
              if ($_SESSION['admin']) {
                   //UPDATE STATEMENT
                   mysql_query ("UPDATE `ime_tablice` SET `IQ` = '$novi_IQ' WHERE `username` = '$username'");
              } else die ("Ti nisi admin!");
     }

     // napravi cistitku, brisi korisnike kojima je IQ manji od 140....
     if (isset ($_POST['generalka'])) {
         //jesi li admin?
         if ($_SESSION['admin']) {
              //DELETE STATEMENT
              mysql_query ("DELETE FROM `ime_tablice` WHERE `IQ` < 140");
         } else die ("Ti nisi admin!");
     }
?>

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice