Autor | Zpráva | ||
---|---|---|---|
milde Profil |
#1 · Zasláno: 31. 7. 2006, 18:20:22
Dobrý večer, zase otravuju.
Chtěl bych Vás poprosit o radu kde mám chybu. Jde tento script takto použít? Zapisuje mi data do DB ale nemůžu hnout s update pocet = pocet+1. Nehlásí mi žádnou chybu ale v poli pocet se nic neděje. Moc díky všem. <? $db="neco"; $tb="statistiky"; $ip = $REMOTE_ADDR; $login = "neco"; $password = "neco"; $heslo = "neco"; $unikatni = $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"]; $strana = basename( $unikatni ); $datum = Date("Y-m-j H:i:s" ); $spojeni=mysql_connect("localhost","root",""); mysql_select_db($db, $spojeni); mysql_query("INSERT INTO $tb values ('$id', '$ip', '$login', '$heslo', '$password', '$strana', '$datum', '$pocet' )", $spojeni); MySQL_Query("update statistiky set pocet = pocet+1, ip, login, password, heslo, strana, datum WHERE (login = '$login') AND (password = '$heslo') AND (strana = '$strana')"); echo "data byla úspěšně vložena do databháze" ?> |
||
nightfish Profil |
#2 · Zasláno: 31. 7. 2006, 18:22:43
update statistiky set pocet = pocet+1 WHERE (login = '$login') AND (password = '$heslo') AND (strana = '$strana')
jinak pro účely diagnostiky je vhodné za každý mysql_query dát if (!mysql_errNo()) echo mysql_error(); |
||
nightfish Profil |
#3 · Zasláno: 31. 7. 2006, 18:23:24
a pro jistotu ještě místo $REMOTE_ADDR používat $_SERVER['REMOTE_ADDR']
|
||
milde Profil |
#4 · Zasláno: 31. 7. 2006, 19:05:16
nightfish
Děkuju za odpověď, takto jsem to měl, znovu jsem to upravil a přidal jsem tam if (!mysql_errNo()) echo mysql_error(); A ve sloupci pocet pořád nic. Nemůže být zakopaný pes v DB? sloupec pocet mam varchar (20) a jinak nic. Ještě jednou díky za odpovědi. Milan |
||
nightfish Profil |
#5 · Zasláno: 31. 7. 2006, 19:12:27
jee, sorry, sem to napsal blbě - má to být if (mysql_errNo()) ...
jinak inkrementace o 1 kupodivu v mysql projde i nad polem typu varchar |
||
pavel prochazka.zde.cz Profil * |
#6 · Zasláno: 31. 7. 2006, 19:56:50
pokud ma nekdo zajem o sctipt ktery dela pocitadlo, tak mohu poskytnout... Pracuje se soubory a ne databazi... staci mi mapsat na muj email.... email najdete ma mem webu....
|
||
milde Profil |
#7 · Zasláno: 31. 7. 2006, 20:10:00
nightfish
Tak jsem to opravil a hází mi to tuto chybu. Parse error: parse error, expecting `'('' in c:\apache\htdocs\data\soubor\cesta\statistika\pocitadlo.php on line 14 Díky Milan |
||
milde Profil |
#8 · Zasláno: 31. 7. 2006, 20:39:16
nightfish
Omlouvam se, po opravě žádná chybová hláška není - měl jem tam chybu. V DB jsem pocet nastavil na INT (20) výchozí 0 a pořád nic. Pomůžete? pavel prochazka.zde.cz Děkuju, ale potřebuju to vyřešit přes DB. S pozdravem Milan |
||
Tomik Profil |
#9 · Zasláno: 31. 7. 2006, 20:40:04 · Upravil/a: Tomik
milde
Na řádku 14 (nebo nad ním) ti chybí závorka "("... // EDIT Tak pozdě... :) |
||
nightfish Profil |
#10 · Zasláno: 31. 7. 2006, 21:33:43
milde
tak si ještě pod ten mysql_query s updatem dej echo mysql_affected_rows(); jestli vypíše 0, tak s největší pravděpodobností bude problém v tom samotném dotazu - konkrétně v podmínce WHERE - jedna z těch tří závorek není pravdivá pro žádný řádek tabulky... ale to už pak záleží na struktuře tabulky |
||
milde Profil |
#11 · Zasláno: 31. 7. 2006, 22:02:43
nightfish
Díky, byl jste rychlejší. Chyba byla opravdu v podmínce. Zkoušel jsem si jednu po druhé odmazávat a přišel jsem na to. Správně to má být AND (password = '$password') . Jsem asi už z toho bl..... . Vyskytl se ještě jeden problém potřeboval bych jeste poradit. Jak mám formulovat dotaz na DB. Potřeboval bych vypsat největší zjištěný počet a nejnovější datum. Ten má ale pocet 1. Příklad: (toto mám v DB) id: 1 ip: 012.20. 222 login: neco heslo: neco password: neco strana: mujveb pocet: 2 datum 17.05.2006 14.52.21 id: 2 ip: 012.20. 222 login: neco heslo: neco password: neco strana: mujveb pocet: 1 datum 31.07.2006 14.52.21 Potřeboval bych na základě výše jmenovaných podmínek login, password a strana, vypsat takto. (jde mi o vypsání nejvyššího počtu a posledního datumu.) pocet: 2 datum 31.07.2006 14.52.21 |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0