Problem sa navigacijom?

Problem sa navigacijom?

offline
  • zeljk0 
  • Novi MyCity građanin
  • Pridružio: 04 Feb 2009
  • Poruke: 2

Pozdrav svim forumasima.
Ucim PHP, koristim literaturu "OSNOVE PHP 4" Bill McCarty
Pronasao sam primer pod nazivom p14-1.php i pokusavam da ga preradim, odnosno da pokusam isti taj primer da implementiram.
Napravio sam bazu podataka u mysql-u pod nazivom "maildb", prekucao kod... ali ne radi, nista ne prikazuje.
Ako bi neko mogao da pogleda i da mi pomogne. Postavljam bazu i kod.
Unapred zahvaljujem.

Dopuna: 04 Feb 2009 18:18

mycity.rs/must-login.png



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 29 Mar 2007
  • Poruke: 234
  • Gde živiš: Kad bih znao

zeljko, gle!
Nisam ni ja profi, al evo pogledao sam na brzaka!
Moderator Rastafarii ce me sigurno ispraviti, no nema veze!
Sta sam primetio da nevalja:
$db = mysql_connect("localhost", "root", "");
ovde bi trebalo da postoji izmedju zadnjih navodnika jos jedan root, znaci "root". U stvari zavisi da li ti je za bazu podesen password.
$db = mysql_connect("localhost", "root", "");

2. Ne vidis nista jer si promenljive pisao kao da je ukljucen register_globals, a on je vervatno iskljucen iz sigurnosnih razloga (tako kazu)
Znaci promenljivu koju saljes preko forme u ovom slucaju preko method POST, bi trebalo da definisese ovako. Uzecu za primer NAME.
Ti pokusavas da vrednosti iz forme prihvatis samo kao $name, a trebalo bi da prihvatis ovako:
$name=$_POST[name]; i tako sve redom koje saljes da bi imalo efekta. U koliko koristis method=GET, onda pises $name=$_GET[name];

3. imas greske u upitima. Ti si pisao kao:
$upit = "SELECT id, name, email FROM addressbook" . "WHERE id < $id ORDER BY id DESC";
trebalo bi ovako:
$upit = "SELECT id, name, email FROM addressbook WHERE id < $id ORDER BY id DESC";
Znaci, izbaci ovo iz upita " . ", na sredini svih upita, to ti nije potrebno.
Kad sam sve to ispravio, upis je radio i search, ostalo nisam probao, al verovatno ce raditi.
Ako sam nesto pogresno napisao, molim moderatora da me ispravi!
Pozz!



offline
  • zeljk0 
  • Novi MyCity građanin
  • Pridružio: 04 Feb 2009
  • Poruke: 2

OK. Hvala ti puno.
Pokusao sam jedan od gotovih primera iz gore navedeene literature prekucam i pokrenem, ali izgleda da i tamo ima puno gresaka. U svakom slucaju puno ti hvala.

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

Ako mysql ne trazi pass za root nalog (cest slucaj za myqsl na windowsu u all-in-one paketima tipa EasyPHP, Xampp i slicni, onda je konekcija ok. Za register globals je aleksandor u pravu, (osim za $_POST[name], trebalo bi $_POST['name']) tako da je to najveci uzrok tvojih problema. ALI ne i jedini Smile

$upit = "SELECT id, name, email FROM addressbook" . "WHERE id < $id ORDER BY id DESC";

Ovde imas jos jedan problemcic. Nije toliki problem sto je u dva reda (ova . oznacava konkatenaciju, tj "sabiranje" stringova). Ono sto ti tu pravi problem je sto nakon konkatenacije ovaj $upit izgleda ovako:

$upit = "SELECT id, name, email FROM addressbookWHERE id < $id ORDER BY id DESC";

Tj deo "addressbookWHERE" je spojen, a ti takvu tabelu u bazi nemas Wink

Posto selektujes sva polja iz tabele, nema potrebe da ih navodis, mozes da iskoristis * umesto toga. By-the-book primer za pisanje ovog upita je sledeci:

$upit = "SELECT * FROM `addressbook` WHERE `id` < " . $id . " ORDER BY `id` DESC";

Btw, moze ovo i u mnogo manje koda da se uradi Wink

offline
  • Pridružio: 29 Mar 2007
  • Poruke: 234
  • Gde živiš: Kad bih znao

Rastafarii,
mozes li mi pojasniti zasto je pravilno $_POST['name'], a nepravilno bez navodnika?!
Kod mene radi bez bilo kakvih navodnika, u lokalu mislim, a i na serverima kad postavim nesto.
Obicno u PHP kad pogresis sa jednim karakterim ili da ga nema ili da je suvisan javlja gresku, u ovom slucaju ne javlja.
U cemu je u stvari fazon?
Svidja mi se ovaj izraz konkatenaciju!
Zaboravih jos ovo, negde sam procitao da je pravilnije ispisati sve kolone iz neke tabele, nego koristiti *. Sta ti mislis o tome?
Poz

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3745
  • Gde živiš: 127.0.0.1

U sustini, nije nepravilno bez navodnika, mislim, radice i bez njih, ali ako vec pises kod, nije lose da se potrudis da on izgleda uredno.

Nisam ja smislio taj izraz, "konkatenacija" je naziv za operaciju spajanja (odnosno "sabiranja") stringova.

Inace je potpuno isto ako selektujes sve kolone navodjenjem njihovih imena, ili koristeci *.

$query1 = mysql_query("SELECT * FROM `addressbook` ORDER BY `id` ASC"); $rez1 = mysql_fetch_array($query1);

Daje za rezultat:

array(6) { [0]=>  string(1) "1" ["id"]=>  string(1) "1" [1]=>  string(14) "Marko Markovic" ["name"]=>  string(14) "Marko Markovic" [2]=>  string(19) "marko.m@spinter.net" ["email"]=>  string(19) "marko.m@spinter.net" }

A ako navodis imena kolona:

$query2 = mysql_query("SELECT `id`,`name`,`email` FROM `addressbook` ORDER BY `id` ASC"); $rez2 = mysql_fetch_array($query2);

Dobijas potpuno isti rezultat:

array(6) { [0]=>  string(1) "1" ["id"]=>  string(1) "1" [1]=>  string(14) "Marko Markovic" ["name"]=>  string(14) "Marko Markovic" [2]=>  string(19) "marko.m@spinter.net" ["email"]=>  string(19) "marko.m@spinter.net" }

Inace, probaj da napravis query koji ce da ti vrati jedan red iz tabele koja ima 20+ kolona, a da ih pri tom navodis "rucno", a ne pomocu * Wink

Ko je trenutno na forumu
 

Ukupno su 1349 korisnika na forumu :: 22 registrovanih, 4 sakrivenih i 1323 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: aleksandarbl, Alibaba1981, aramis s, Boris BM, djboj, Dorcolac, draganca, ds69, Fabius, galijot, Istman, jackreacher011011, Krusarac, Luka Blažević, Outis, S2M, sasakrajina, sevenino, shaja1, t84dar, Trpe Grozni, Vlada1389