tož jako poslat to možeš, ale lepší to je řešit tady, aby ten problém nemuseli řešit příště jiní...
Příspěvky odeslané z IP adresy 88.146.205.–
zkus si ošetřit zpracování toho dotazu:
$dotaz = "select count(*) from kosik where cookieid = '" . KosikId() . "' and produktid = $id";
if(($result = mysql_query($dotaz)) == 1){ // tímto si teď z hlavy nejsu jistý ale nějak tak by to mělo být
.
.
.
}else{
echo "<hr />chyba ve zpracování dotazu:<hr />".$dotaz."<hr />;exit;
}
pokud ti to hodí špatný dotaz, tak jej zkus zkopírovat a zkusit zpracovat v phpmyadminu - ten ti toho o té chybě řekne dost...
btw pak to co se dovíš zkus napsat sem....
http://www.google.cz/search?q=agrega%C4%8Dn%C3%AD+funkce+sql
<= zkus se podívat tady
jo no.. já vím že ten kousek js je správně.. Právě že mi jde o to, jak to rozjet nad tím flashem... A nemyslím si že to je nějak o komunikaci flashe s js... Prostě stačí ten javascript spustit dřív než actionscript v tom flashi.. jen nevím jak...
(Pokud se mýlím tak mě někdo prosím opravte )
Tak tímto vkladam flash
<div style="text-align: center; margin-top: 2px">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="banner-kniha" align="middle" height="45" width="170">
<param name="allowScriptAccess" value="sameDomain">
</param>
<param name="movie" value="/reklama/for_baby_banner_170x45.swf">
</param>
<param name="quality" value="high">
</param>
<param name="bgcolor" value="#ffffff">
</param>
<embed src="/reklama/for_baby_banner_170x45.swf" quality="high" bgcolor="#ffffff" name="banner-kniha" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="45" width="170"></embed>
</object>
</div>
A jako javascript používám toto:
onclick="this.href='./prokliky/link/12';return true;"
Pod tím odkazem (this.href) je to pocitadlo
Zkoušel jsem to dat v tom banneru do div, object, param i embed , ale nikde to nefungovalo (ani kdyz jsem zkusebne dal alert() )
Zdravíčko,
nevím si rady s tímto problémem:
Mám flashový banner odkazující na nějakou stránku. Potřebuji na něj udělat počítadlo (to mám přes php udělané)
Jen se mi nedaří spustit ten javascript při události onclick nad tím flashem (nad img to běží v pohodě) aby se mi to započítalo.
Ještě bych měl dodat, že nemůžu editovat ten flash.
Neznáte někdo nějakou "fintu" ?
není při použití agregační funkce nutné použít "seskupení" ? - neboli GROUP BY ?
$vypis=mysql_query("SELECT COUNT(id_clanku) as pocet FROM clanky GROUP BY id_autora HAVING id_autora='1' ");
Nějak tak bych to zkusil
Ještě snad jen.. to COUNT(*) nahraď raději nějakým sloupcem... není dobré používat hvězdičku - u velkých databází to jde poznat na rychlosti
Někdy se tato chyba stává i když "neodesíláš" před header() žádný výstup. Jedná se konkrétně o to, že soubor je uložen v kodování UTF-8 s příznakem BOM . Na začátku souboru jsou potom nějaká binární data, které php považuje za výstup a proto hlásívá error...
Dělalo mi to v dreamweaveru... (stačilo to uložit bez toho "BOM" nebo otevřít v nějakém "jednodušším" editoru a tam ty data na začátku odmazat :-) )
Paja2 napsal:
To Marty_SVK :
protože před header odesíláš nějaký výstup...před header nesmí být echo, print atd.
- ještě bych to doplnil - nesmí být před <?php žádná mezera ani nic jiného
toto není funkce... (tada isset() funkce je :o) )
a pokud ti to vyhazuje chybu, tak by bylo dobré ji sem napsat :-)
Ale v tomto kousku kodu chybu nevidim, takže se zkus podívat na to, jestli ti nechybi na řadku před timto kodem třeba středník, závorka nebo nějaká jiná podobně jednoduše přehlédnutelná chyba...
ale nejlepší bude napsat sem to chybové hlášení :-)
soubory .class.php se "programují" úplně stejně jako soubory .php .
Rozdíl je v tom, že když si pojmenuju soubor .class.php tak očekávám že v něm najdu třídu, ne obyčejné funkce.
Ale můžeš v ní mít úplně co chceš...
Pokud se nemýlím tak totiž soubory .php a .class.php procházejí úplně stejným parserem... takže mezi nimi není žádný rozdíl :o)
To hrach : ten šalblonovací systém se jmenuje Teng, a pro php je k sehnání jako modul.... (Taky pro python).
Tady je o něm víc http://vyvojari.seznam.cz/open-source/
To Anonymní uživatel : to je normální sql dotaz.
takže napíšeš něco takového:
$dotaz = "INSERT INTO `test`.`klik` (
`id` ,
`uzivatel` ,
`time` ,
`body`
)
VALUES (
'1', 'BFU', NOW( ) , '0'
);"
mysql_query($dotaz);
a to je celé :-) doporučuju pak ošetřit o to, zda se to zpracovalo, a podobné chyby...
ono není dobré když dáváš příklad dát jen jednu položku.. z toho se pak dá špatně vykoumat co myslíš.
Z toho co jsem pochopil bych nedělal druhou tabulku, ale pouze bych přidal sloupec "kriterium"
přiklad:
id - nazev - kriterium
1 - masaže - 1
2 - kadeřnictvi - 1
3 - manikůra - 2
pak stačí
select * from katalog where kriterium=1
- tím se ti vypíší masáže a kadeřnictví
když to pak budeš chtít splnit s další tabulkou kde budou podkategorie (nazveme si ji třeba subkategorie):
např masáže:
id - nazev - pid - ...
1 - thajska masaž - 1
2 - jiná masáž - 1
3 - fakt cool masáž - 1
4 - pánské stříhání - 2
5 - dámské stříhání -2
tak ti na vybrání všech položek s kriteriem 1 postačí dotaz jako tento:
select s.id from subkategorie s inner join katalog k on (k.id = s.pid) where k.kriterium=1
s tím přidáním na začátek tabulky ... to bude složitější... tabulka totiž prakticky vypadá podle toho, jak položíš dotaz. Většinou se automaticky třídí podle klíče. Když určíš sloupec (ORDER BY jmeno_sloupce) tak automaticky začne data řadit podle tohoto sloupce. Pak dáš za to jen ASC nebo DESC (vzestupně, sestupně). Takže nejde "jen tak poradit" jak dát něco na začátek.. bo pokaždé to může být jinde - záleží na tom jak se na to zeptáš.
takže příklad je na tabulce:
CREATE TABLE `klik` (
`id` int(6) NOT NULL AUTO_INCREMENT,
`uzivatel` varchar(30) NOT NULL,
`time` datetime NOT NULL,
`body` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE = innodb;
vytvořil jsem nového uživatele:
INSERT INTO `test`.`klik` (
`id` ,
`uzivatel` ,
`time` ,
`body`
)
VALUES (
'1', 'BFU', NOW( ) , '0'
);
a teď jednoduchý odkaz s dotazem v php... (žádné zabezpečení, to si zvládneš sám, ne ;o) )
<a href="?akce=plus_bod&user_id=1" title="po kliknutí přidá bod">Klik</a>
<?php
$doba = 20 ; //v minutach
$MySQL_server="localhost";
$MySQL_db="test";
$MySQL_user="root";
$MySQL_user_password="*********";
$spojeni=mysql_connect($MySQL_server,$MySQL_user,$MySQL_user_password);
$spojenidb=mysql_select_db($MySQL_db);
mysql_query("SET NAMES 'cp1250'");
mysql_query("SET character_set_client=cp1250");
mysql_query("SET character_set_connection=cp1250");
mysql_query("SET character_set_results=cp1250");
if(isset($_GET["user_id"]) && isset($_GET["akce"])){
if(is_numeric($_GET["user_id"]) && $_GET["akce"] == "plus_bod"){
$id = $_GET["user_id"];
$dotaz = "SELECT date_add(k.time, interval 20 minute) as klik_limit FROM klik as k WHERE k.id=".$id;
if($result = mysql_query($dotaz)){
if(@mysql_num_rows($result) == 0){
echo "Uzivatel neni v db";
}else{
if($sql = @mysql_fetch_object($result)){
$dot_pridej_body = "UPDATE klik as k SET k.body=k.body+1 , k.time=now() WHERE date_add(k.time, interval 20 minute) <= now() AND k.id =".$id." LIMIT 1";
if($res_pridej_body = mysql_query($dot_pridej_body)){
switch(mysql_affected_rows($spojeni)){
case 0:
echo "nelze přidat body, přidat lze až v ".$sql->klik_limit;
break;
case 1:
echo "byl přidán bod, další kliknutí je možné za ".$doba." minut";
break;
default:
echo "nějaká chybička";
}
}
}
}
}else{
echo "Chyba ve zpracování";
}
}
}
?>
to bys musel mít spooousty souborů, nebo by práce se nimi byla dost nepříjemná... na toto bych použil určitě databázi...
příklad sloupců:
id
uzivatel
time
body
mno a pak po kliknutí zkontroluješ zda time + 20min <= time() a pak když tak zvýšíš v db body nebo co budeš chtít..
Takto můžeš mít i přehled o tom kdo na tom je, a celé to budeš mít jednodušší
Ano, jak říká hrach. Napiš nám co chceš udělat. A třeba společně dojdeme na to jak na to...
Jinak o tom jak se k databázi připojit, jak se dotazovat a jak zpracovávat odpovědi je na netu napsáno hodně.
Například hledej zde: http://programujte.com/index.php?rubrika=296-webdesign&sekce=89-php&kategorie=174-php-a-mysql
nebo na google např http://www.google.cz/search?q=php+%2B+mysql
Ono by to teoreticky šlo pomoci cronu každou minutu zvyšovat (v crontab v Linuxu pokud se nepletu jde nastavit pro každou minutu) ale nevím zda ti to nějaký server povolí.. pokud bys to teda neměl celé u sebe na počítači (serveru).
mno k tomu čtení a zápisu z / do souboru: fopen, fscanf a fwrire - tam si to číslo přečteš, uložíš atd....
Možná být tebou bych pracoval s databází... tam bys to měl mnohem jednodušší...
Rozhodně se mi to zdá nějaké divné...
šlo by to třeba takto:
<?php
$array = range(1, 31);
$numberCols = 7;
$numberRows = ceil(count($array) / $numberCols);
echo "<table style=\"border: 1px solid black\">\n<tr>";
for($i=0; $i < $numberRows; $i++) {
for($j = 0; $j < $numberCols; $j++){
$x = ( $i * $numberCols ) + $j;
if(isset($array[$x])){
$echo = $array[$x];
}else{
$echo = " ";
}
echo "<td>".$echo."</td>";
if((($x+1) % $numberCols) == 0 and ($x+1) < count($array)) echo "</tr><tr>";
}
}
echo "</tr></table>";
?>
Je to poupravená tvá verze... Nevymýšlel jsem svou, bo nevím co s tím kalendářem budeš chtít provádět (očividně jde o kalendář)
to že javascript neumí kreslit tak docela není pravda.. zkus omrknout "canvas". (netvrdím že v JS jde kreslit nějak bravůrně, ale jisté srandičky s tím jdou dělat - viděl jsem příklad na hodiny).
To Nefaritus : nemyslím si že to je tím co includuješ, jestli php, nebo inc...
To mik2 : jseš si jistý že jsi nezapomněl vložit ten externí css soubor? Nebo že máš správně pojmenované a nadefinované id "#" a class " . " ?? Občas se chybička vloudí a pak se jeden nestačí divit...
To Zelenáč : Jo no ... jak po F5 mě to hodí na úvod, to se pokaždé strašně nas.... ale aspoň že mám k dispozici tu nabídku vlevo i když roluju .... snad jediná výhoda rámců... i když jak se dívám tady na programujte.com tak tady je taky nabídka stále k dispozici a bez rámců... :o)
sice nevím jak máš stránky řešené, ale je ta tu věc, že když někdo pošle někomu odkaz na tvé stránky, popřípadě strejda google, tak si dotyčný tvé "pravidla" ani nepřečte... Nabízí se potom třeba cookies, ale nevím jestli ta pravidla za to stojí abys to tak ošetřoval... ale ta možnost tu je.
zdravíčko, experimentuju s mssql ale nějak mě trápí funkce s časem.
mám sql server 2005 a testuju to v Microsoft SQL Server Management Studio Express
mám v tabulce nějaké datum, když chci k němu přidat pár měsíců a pak vypsat v nějakém formátu, tak mě napadá něco jako toto:
SELECT u.jmeno, u.prijmeni, dateformat(adddate(u.datum_registrace, INTERVAL 2 month) , '%Y %m %d') as nove_datum
FROM user u
jenže mě to blbé mssql tvrdí že funkci adddate nezná... a že dateformat
'dateformat' is not a recognized built-in function name.