Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa UPDATE - php->MySQL

[es] :: PHP :: Problem sa UPDATE - php->MySQL

[ Pregleda: 1030 | Odgovora: 14 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Frane Marinković
Kauč, Fotelja, Prehrana samog sebe žlicom!
Hrvatska

Član broj: 23984
Poruke: 470
*.dsl.optinet.hr.

Jabber: frane.marinkovic@elitesecurity.org
Sajt: bol-brac.com


Profil

icon Problem sa UPDATE - php->MySQL27.12.2007. u 18:58

Radim jedan malo poveci projekt i gotov sam, sad cekam hosting, i radim neke detalje i evo dođem do tu i zapnem, ne znam zašto, ali već koristim slicnu funkciju na drugim pageovima i radi bez problema....

evo tog spornog dijela


znaci u bazi imam jedan column "out" koji broji izlazne klikove za pojedine stvari i njega treba kad se pokrene ovaj script da se uveća za +1

Code:
<?php
include("connect.php"); 
    $koji_id = addslashes($_GET['id']); // id znaci getam ga ?id=2 npr.
    
    function out($id) //count the vote and save ip of last voter to avoid cheating
{
        $rezultat= mysql_query("select * from toplist where id='$id'"); //
    while($uzmi = mysql_fetch_array($rezultat)){                               // to je dodano jer sam mislio da
        $do_sada = $uzmi['out'];                                                  //  out= out+1 nece da radi, ali eto
        $nova=$do_sada++;                                                        //                    ne radi ni ovako
        }
        $update="UPDATE linkovi SET out= '$nova' WHERE id= '$id'";
    mysql_query($update)
    or die('brojac - greska: '.mysql_errno().', '.mysql_error());
}

        out($koji_id);  //pozivam ispod u if-u ali nije bitno sad
        

?>


na update sam stavljao i .... SET out= out+1 ali opet grešku daje istu, pa sam onda pokušao s vađenjem pa onda $do_sada++;
Code:

1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'out= '1' WHERE id= '2'' at line 1

<?
$H="F";
echo $H . "ACKING";
?>
27.12.2007. u 18:58 

dakipro
Dalibor Jovic
PHP Developer, SMDesign, Ciplex
Novi Sad

Moderator
Član broj: 31848
Poruke: 716
89.216.108.*



Profil

icon Re: Problem sa UPDATE - php->MySQL27.12.2007. u 20:03
Mislim da bi ovo proradelo

Code:
SET `out`= `out`+1

jer je OUT kljucna rec (nisam siguran tacno od koje verzije)
http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
27.12.2007. u 20:03 

Frane Marinković
Kauč, Fotelja, Prehrana samog sebe žlicom!
Hrvatska

Član broj: 23984
Poruke: 470
*.dsl.optinet.hr.

Jabber: frane.marinkovic@elitesecurity.org
Sajt: bol-brac.com


Profil

icon Re: Problem sa UPDATE - php->MySQL27.12.2007. u 21:59
idem probat, ali zašto onda u drugoj funkciji isto u kojoj updatea bazu samo drugi column 'in' sve radi super na principu in= in+1 ...

evo sa 'out'='$do_sada'
Code:
error: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''out'= '1' WHERE id= '2'' at line 1


i evo sa 'out'='out'+1
Code:
error: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''out'= 'out'+1 WHERE id= '2'' at line 1



... nemam pojma koji k**** se događa
<?
$H="F";
echo $H . "ACKING";
?>
27.12.2007. u 21:59 

dakipro
Dalibor Jovic
PHP Developer, SMDesign, Ciplex
Novi Sad

Moderator
Član broj: 31848
Poruke: 716
89.216.108.*



Profil

icon Re: Problem sa UPDATE - php->MySQL27.12.2007. u 22:21
Ne, ne citas pazljivo... I nema potrebe da se tako izrazavas jer ovaj forum prate i dame, tako da nije prikladno bar prema njima
Nisam napisao ' kao apostrof, nego ` (backticks, znak koje je levo od jedinice na tastaturi)
Da si procitao prvih par recenica na linku koji sam ti ostavio to bi i sam ukapirao.

Btw. i IN je takodje mysql kljucna rec koju bi trebalo izbegavati u davanju imena tabelama i poljima u mysql-u, sto se opet spominje na istom linku koji sam ti dao. (bar pise da trebaju "special treatment for use as identifiers such as table and column names").
27.12.2007. u 22:21 

Frane Marinković
Kauč, Fotelja, Prehrana samog sebe žlicom!
Hrvatska

Član broj: 23984
Poruke: 470
*.dsl.optinet.hr.

Jabber: frane.marinkovic@elitesecurity.org
Sajt: bol-brac.com


Profil

icon Re: Problem sa UPDATE - php->MySQL27.12.2007. u 22:52
Code:

error: 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '¸out¸= ¸out¸+1 WHERE id= '2'' at line 1



opet isto
<?
$H="F";
echo $H . "ACKING";
?>
27.12.2007. u 22:52 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3900
79.101.131.*

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Problem sa UPDATE - php->MySQL28.12.2007. u 16:25
Koliko ja vidim, ti koristiš ¸ a ne ` znak u query-ju...

Takođe, pre bih rekao da je ovo pitanje za SQL forum a ne za PHP...
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
28.12.2007. u 16:25 

Frane Marinković
Kauč, Fotelja, Prehrana samog sebe žlicom!
Hrvatska

Član broj: 23984
Poruke: 470
*.dsl.optinet.hr.

Jabber: frane.marinkovic@elitesecurity.org
Sajt: bol-brac.com


Profil

icon Re: Problem sa UPDATE - php->MySQL28.12.2007. u 16:32
okok, riješio, meni je inaće ` AltGr + 7...

thx na pomoći
<?
$H="F";
echo $H . "ACKING";
?>
28.12.2007. u 16:32 

1r0nM4n
Nenad Vasić
Web Developer
Beograd

Član broj: 55970
Poruke: 438
*.ikomline.net.

ICQ: 303614173
Sajt: www.irondev.net


Profil

icon Re: Problem sa UPDATE - php->MySQL28.12.2007. u 19:05
Citat:
AltGr + 7

Wtf?!
Taj znak ti je levo od jedinice (ispod esc)..

p0z
28.12.2007. u 19:05 

BigFoot
Boban Jovanović
Čačak

Član broj: 1098
Poruke: 398
79.101.176.*



Profil

icon Re: Problem sa UPDATE - php->MySQL01.01.2008. u 20:15
Citat:
Frane Marinković:
Code:

//...
$do_sada = $uzmi['out'];
$nova=$do_sada++;                 // GREŠKA!!!
}
$update="UPDATE linkovi SET out= '$nova' WHERE id= '$id'";


Koristio si postinkrement operator ++, dakle prvo je izvšena dodela $nova=$do_sada, pa tek onda uvećano $do_sada++. Uradi prvo inkrementiranje, pa dodelu i biće ok.
Mada, čudna ti je ovo konstrukcija. U komentaru stoji "count the vote and save ip of last voter to avoid cheating". Šta je "last voter"? Upit koji koristiš nema ORDER klauzulu. Osim toga, vrtiš prazne komande u petlji da bi uzeo vrednost poslednjeg sloga, ma šta to značilo, umesto da to uradiš u samom upitu, a da umesto petlje imaš samo jedan, traženi rezultat. Potencijalno, upit može vratiti mnogo slogova, pa ćeš usporiti odziv. Upit može biti npr.
Code:
$rezultat= mysql_query("select * from toplist where TopListID = (select MAX(TopListID) from toplist where id='$id')");

Polje TopListID je auto_increment ID polje koje i inače treba da sadrži svaka tabela, što je dobra praksa.
Two beer or not two beer...
01.01.2008. u 20:15 

Frane Marinković
Kauč, Fotelja, Prehrana samog sebe žlicom!
Hrvatska

Član broj: 23984
Poruke: 470
*.dsl.optinet.hr.

Jabber: frane.marinkovic@elitesecurity.org
Sajt: bol-brac.com


Profil

icon Re: Problem sa UPDATE - php->MySQL03.01.2008. u 19:03
ma to je ostalo od varijable stare koju sam uzimao, i ne znam kako je vama ali evo šta meni izađe kad stitnem "Tildo" ili ti ga botun ispod Esc
Code:
¸


evo Shift + taj gumb
Code:
¨


i evo AltGr + 7
Code:
`



možda su srpske tipkovnice drugaćije nego ove naše :S

nebih znao
<?
$H="F";
echo $H . "ACKING";
?>
03.01.2008. u 19:03 

mVeliki
Miroslav Ćurčić
Novi Sad

Član broj: 19034
Poruke: 650
*.adsl.beotel.net.



Profil

icon Re: Problem sa UPDATE - php->MySQL04.01.2008. u 09:07
Backtick (http://en.wikipedia.org/wiki/Backtick)
se nalazi ispod Esc na ASCII tastaturama,
ili na AltGr+7 na SR/HR (koje vode poreklo od slovenačke koja je opet napravljena od nemačke tastature).

I, jel radi sa: `out`=`out`+1 ?
"The quieter you become, the more you are able to hear."
04.01.2008. u 09:07 

Frane Marinković
Kauč, Fotelja, Prehrana samog sebe žlicom!
Hrvatska

Član broj: 23984
Poruke: 470
*.dsl.optinet.hr.

Jabber: frane.marinkovic@elitesecurity.org
Sajt: bol-brac.com


Profil

icon Re: Problem sa UPDATE - php->MySQL04.01.2008. u 13:07
Citat:
okok, riješio, meni je inaće ` AltGr + 7...

thx na pomoći


to sam napisao već prije par dana
<?
$H="F";
echo $H . "ACKING";
?>
04.01.2008. u 13:07 

Nemanja Avramović
PHP developer, Webinsane
Mladenovac, Srbija

Moderator
Član broj: 32202
Poruke: 3900
91.150.112.*

ICQ: 266136396
Sajt: www.avramovic.info


Profil

icon Re: Problem sa UPDATE - php->MySQL04.01.2008. u 14:55
Ljudi, tema ove rasprave nije gde se nalazi backtick već update MySQL baze, pa vas molim da se držite teme.
Moj sajt. Moj blog. Moj avatar. Moj grad. Moja frizura.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
04.01.2008. u 14:55 

BigFoot
Boban Jovanović
Čačak

Član broj: 1098
Poruke: 398
79.101.176.*



Profil

icon Re: Problem sa UPDATE - php->MySQL05.01.2008. u 22:33
Nema veze ni sa update-om MySQL baze, nego sa elementarnim programiranjem. U navedenom primeru, konstrukcija:
Code:

$do_sada = $uzmi['out'];
$nova=$do_sada++;

ne čuva za jedan uvećanu, već originalnu vrednost $uzmi['out'] i tu je greška. Nema veze sa srpsko/hrvatskim "tipkovnicama"
Two beer or not two beer...
05.01.2008. u 22:33 

Zmaj
Predrag Krstić
web developer, www.vast.com
Zrenjanin

Član broj: 1035
Poruke: 274
212.200.221.*

Sajt: www.web-dizajn-srbija.com


Profil

icon Re: Problem sa UPDATE - php->MySQL06.01.2008. u 00:51
problem sa tasturom/tipkovnicom je sto se ne koristis engleski kodni raspored [EN], nego srpski, tj. hrvatski i slicno.

druga stvar je sto se pise los i neoptimalan kod pa ovo

Code:

$do_sada = $uzmi['out'];
$nova=$do_sada++;


moze da se napise

Code:

$nova = $uzmi['out'] + 1;


kao sto vidis nema $do_sada, inace vise volim da pisem nazive promenjljivih i funkcija na engleskom jer nema padeza pa je samim tim i manja mogucnost greske. isto vazi i za nazive tabela i polja u bazama

proc::Athlon 64 AM2 3800+ // mb:: Asus M2N32+ SLI // ram:: 2 GB // graph:: Asus 8800GT512 // disp:: Samsung 971P
hdd1:: WD2500AKS // hdd2:: WD800JB // dvd:: NEC ND3550-A // pow:: Thermaltake TR2 550W // key:: Logitech // mouse:: Logitech
06.01.2008. u 00:51 

[es] :: PHP :: Problem sa UPDATE - php->MySQL

[ Pregleda: 1030 | Odgovora: 14 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.