Тр ми скрипт с обратно броене и запис в ДБ!

SuCcEsS

Registered
Трябва ми скрипт с време и запис в ДБ
Пример:
Здравей страннико! Търсиш ли си работа? Ще ти се отплатя щедро, ако почистиш конюшните няма да ти отнеме повече от 10 мин. - <a href="">Приеми</a>
И след като е кликнато на Приеми да започне да отброява 10 мин. и като свършат тези 10 мин да записва в таблицата users поле uGold 10000

и същото с 20 мин! мерси много!
 
SuCcEsS каза:
Какво имаш предвид стова?

Здравейте , отново !
Едитвам си постера , за да не ме обвинят в спам .
Аз пробелма си реших по следния начин.

код:
<?php
// свързване с БД
mysql_connect("хост", "ник", "парола") or die(mysql_error());
mysql_select_db("име БД") or die(mysql_error());

// брояч който се ьпрейтва
$getnumber=mysql_query("SELECT number FROM count WHERE id=1");
while($row = mysql_fetch_array($getnumber, MYSQL_BOTH))
{
$oldnumber=$row['number'];
$newnumber=$oldnumber+1;
$update=mysql_query("UPDATE count SET number='$newnumber' WHERE id=1");
echo "брой: $oldnumber" ;
}

//рефлеш към страницата от където е кликнало след 10 с
$refe=getenv("HTTP_REFERER");
echo "<META HTTP-EQUIV="refresh" CONTENT="10; URL=$refe">";
?>

За мен най важното е че получих - $oldnumber

SQL
===================================
CREATE TABLE `count` (
`id` int(11) NOT NULL auto_increment,
`number` text NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `count` (`id`, `number`) VALUES
(1, '0');
=====================================
 
Код:
<?php
$time = time();

$hour = 00; // Тук въвеждате час
$min = 00; // Тук въвеждате минута
$sec = 00; // Тук въвеждате секунда
$day = 01; // Тук въвеждате ден от месеца
$month = 1; // Тук въвеждате месец от 1 до 12
$year = 2009; // Тук въвеждате година
// От въведените данни се получава датата, в която ще се изпълни дадена заявка
$dest = mktime($hour,$min,$sec,$month,$day,$year);

if ($time >= $dest) {
mysql_connect("hostname","username","password"); // Тук вместо hostname, username и password въвеждате вашите данни
mysql_select_db("database"); // Тук вместо database въвеждате името на вашата БД
$query = mysql_query("UPDATE game SET user='$_POST[user]' WHERE id='$id'") or die(mysql_error()); // Тук вместо game въвеждате името на вашата таблица
// на това място може да изпълнявате каквито искате заявки
if ($query) echo "Добавено е 10 000 злато към вашето !!!";
else echo "Възникна грешка: ".mysql_error();
}
else {
// Тази част е взета от http://bg.php.net/manual/en/function.time.php
$difference = $dest-$time;

$days = floor($difference/86400);
$difference = $difference - ($days*86400);

$hours = floor($difference/3600);
$difference = $difference - ($hours*3600);

$minutes = floor($difference/60);
$difference = $difference - ($minutes*60);

$seconds = $difference;
// Тази част е взета от http://bg.php.net/manual/en/function.time.php

echo "На ".date("d m Y H:i:s",$dest)." към вашето злато ще бъде добавено 10 000.<br>";
echo "Остават ".$days." дена ".$hours." часа ".$minutes." минути ".$seconds." секунди до края на вашата задача!";
}
?>

Тук ($query = mysql_query("UPDATE game SET user='$_POST[user]' WHERE id='$id'") or die(mysql_error()); ) ми е идеята. Само трябва да сложиш кода за добавяне в базата данни ;)
 
Velikcho каза:
Код:
<?php
$time = time();

$hour = 00; // Тук въвеждате час
$min = 00; // Тук въвеждате минута
$sec = 00; // Тук въвеждате секунда
$day = 01; // Тук въвеждате ден от месеца
$month = 1; // Тук въвеждате месец от 1 до 12
$year = 2009; // Тук въвеждате година
// От въведените данни се получава датата, в която ще се изпълни дадена заявка
$dest = mktime($hour,$min,$sec,$month,$day,$year);

if ($time >= $dest) {
mysql_connect("hostname","username","password"); // Тук вместо hostname, username и password въвеждате вашите данни
mysql_select_db("database"); // Тук вместо database въвеждате името на вашата БД
$query = mysql_query("UPDATE game SET user='$_POST[user]' WHERE id='$id'") or die(mysql_error()); // Тук вместо game въвеждате името на вашата таблица
// на това място може да изпълнявате каквито искате заявки
if ($query) echo "Добавено е 10 000 злато към вашето !!!";
else echo "Възникна грешка: ".mysql_error();
}
else {
// Тази част е взета от http://bg.php.net/manual/en/function.time.php
$difference = $dest-$time;

$days = floor($difference/86400);
$difference = $difference - ($days*86400);

$hours = floor($difference/3600);
$difference = $difference - ($hours*3600);

$minutes = floor($difference/60);
$difference = $difference - ($minutes*60);

$seconds = $difference;
// Тази част е взета от http://bg.php.net/manual/en/function.time.php

echo "На ".date("d m Y H:i:s",$dest)." към вашето злато ще бъде добавено 10 000.<br>";
echo "Остават ".$days." дена ".$hours." часа ".$minutes." минути ".$seconds." секунди до края на вашата задача!";
}
?>

Тук ($query = mysql_query("UPDATE game SET user='$_POST[user]' WHERE id='$id'") or die(mysql_error()); ) ми е идеята. Само трябва да сложиш кода за добавяне в базата данни ;)

Ти май не разбра какво искат.


Това става много лесно ама ако почна да обяснявам вий неможете да разберете
 
relax каза:
Velikcho каза:
Код:
<?php
$time = time();

$hour = 00; // Тук въвеждате час
$min = 00; // Тук въвеждате минута
$sec = 00; // Тук въвеждате секунда
$day = 01; // Тук въвеждате ден от месеца
$month = 1; // Тук въвеждате месец от 1 до 12
$year = 2009; // Тук въвеждате година
// От въведените данни се получава датата, в която ще се изпълни дадена заявка
$dest = mktime($hour,$min,$sec,$month,$day,$year);

if ($time >= $dest) {
mysql_connect("hostname","username","password"); // Тук вместо hostname, username и password въвеждате вашите данни
mysql_select_db("database"); // Тук вместо database въвеждате името на вашата БД
$query = mysql_query("UPDATE game SET user='$_POST[user]' WHERE id='$id'") or die(mysql_error()); // Тук вместо game въвеждате името на вашата таблица
// на това място може да изпълнявате каквито искате заявки
if ($query) echo "Добавено е 10 000 злато към вашето !!!";
else echo "Възникна грешка: ".mysql_error();
}
else {
// Тази част е взета от http://bg.php.net/manual/en/function.time.php
$difference = $dest-$time;

$days = floor($difference/86400);
$difference = $difference - ($days*86400);

$hours = floor($difference/3600);
$difference = $difference - ($hours*3600);

$minutes = floor($difference/60);
$difference = $difference - ($minutes*60);

$seconds = $difference;
// Тази част е взета от http://bg.php.net/manual/en/function.time.php

echo "На ".date("d m Y H:i:s",$dest)." към вашето злато ще бъде добавено 10 000.<br>";
echo "Остават ".$days." дена ".$hours." часа ".$minutes." минути ".$seconds." секунди до края на вашата задача!";
}
?>

Тук ($query = mysql_query("UPDATE game SET user='$_POST[user]' WHERE id='$id'") or die(mysql_error()); ) ми е идеята. Само трябва да сложиш кода за добавяне в базата данни ;)

Ти май не разбра какво искат.


Това става много лесно ама ако почна да обяснявам вий неможете да разберете

Ами пробвай :wink: :D
 
SuCcEsS май не си научил урока :) http://web-tourist.net/login/login/view.php?st=2239
тук може да добавиш всякакви заявки.
 
d_badboy каза:
SuCcEsS май не си научил урока :) http://web-tourist.net/login/login/view.php?st=2239
тук може да добавиш всякакви заявки.

Е добре де но това е с определена дата и е за изчистване на ДБ ане с определени минути и линк за стартиране
 
Трябва да добавиш още едно поле dest примерно или както го кръстиш там което отначало може да е 0 (нула).
<?php
$minuti = 10; // тук може да промениш на колкото минути искаш
$time = time();
$dest= time()+60*$minuti;
echo "<a href=\"index.php?dest=$dest\">Приеми</a>";

mysql_connect("host","user","pass");
mysql_select_db("database");

if (!empty($_GET['dest']) && ctype_digit($_GET['dest'])) {
$new_dest = htmlspecialchars($_GET['dest']);
mysql_query("UPDATE `users` SET `dest`= '$new_dest';");
}

$query = mysql_query("SELECT * FROM `users`;");
while($row = mysql_fetch_array($query)) {
if ($time == $row['dest']) {
$insert = mysql_query("UPDATE `users` SET `uGold` = '10000';");
// или може би това искаш: $insert = mysql_query("UPDATE `users` SET `uGold` = 'uGold+10000';");
// на това място може да изпълнявате каквито искате заявки
if ($insert) echo "Информацията е добавена !";
else echo "Възникна грешка: ".mysql_error();
}
else {
// Тази част е взета от http://bg.php.net/manual/en/function.time.php
$difference = $row['dest']-$time;

$minutes = floor($difference/60);
$seconds = $difference - ($minutes*60);

// Тази част е взета от http://bg.php.net/manual/en/function.time.php

echo "На ".date("d m Y H:i:s",$row['dest'])." в БД ще бъде добавена информация.<br>";
echo "Остават ".$minutes." минути и ".$seconds." секунди до датата.";
}
}
?>
Променял съм там кадето е червено.
 
А има и вариант със JS таймер и да можеш да избираш колко време да работи. Ако искаш да ти го напиша пиши ЛС ама да знаеш отговор сега няма да можеш да плучиш
 
Така сега оправих се, но защо като кликна на Приеми не започва да отброява 10 минути? промених и линка да е вместе index.php?dest=$dest на tavern.php?dest=$dest
 
SuCcEsS каза:
d_badboy каза:
Трябва да добавиш още едно поле dest примерно или както го кръстиш там което отначало може да е 0 (нула).
<?php
$minuti = 10; // тук може да промениш на колкото минути искаш
$time = time();
$dest= time()+60*$minuti;
echo "<a href="index.php?dest=$dest">Приеми</a>";

mysql_connect("host","user","pass");
mysql_select_db("database");

if (!empty($_GET['dest']) && ctype_digit($_GET['dest'])) {
$new_dest = htmlspecialchars($_GET['dest']);
mysql_query("UPDATE `users` SET `dest`= '$new_dest';");
}

$query = mysql_query("SELECT * FROM `table`;")
while($row = mysql_fetch_array($query)) {
if ($time == $row['dest']) {
$insert = mysql_query("UPDATE `users` SET `uGold` = '10000';");
// или може би това искаш: $insert = mysql_query("UPDATE `users` SET `uGold` = 'uGold+10000';");
// на това място може да изпълнявате каквито искате заявки
if ($insert) echo "Информацията е добавена !";
else echo "Възникна грешка: ".mysql_error();
}
else {
// Тази част е взета от http://bg.php.net/manual/en/function.time.php
$difference = $dest-$time;

$minutes = floor($difference/60);
$difference = $difference - ($minutes*60);

$seconds = $difference;
// Тази част е взета от http://bg.php.net/manual/en/function.time.php

echo "На ".date("d m Y H:i:s",$dest)." в БД ще бъде добавена информация.<br>";
echo "Остават ".$minutes." минути и ".$seconds." секунди до датата.";
}
}
?>

Parse error: syntax error, unexpected T_WHILE in C:\xampp\htdocs\KRALSTVA\play\tavern.php on line 16

не може да намери таблицата

$query = mysql_query("SELECT * FROM `table`;")
сложи името на таблицата , където ще са записани данните
 
Вий най-простото нещо неможете да откриете пък очаквахте от мен код. Защо не ви го дадох? Защото пак щеше да има 892743987 въпроса за кода ми. За това само на ЛС давам такива кодове
 
Така сега оправих се, но защо като кликна на Приеми не започва да отброява 10 минути? промених и линка да е вместе index.php?dest=$dest на tavern.php?dest=$dest
 
Като промених кода както си го дал и ми изписва на - време
Код:
 Иди на мисия за 10 минути и изкарай лесни 10000 златни монети!
Приеми
На 04 02 2008 17:45:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 20 минути и изкарай лесни 20000 златни монети!
Приеми
На 04 02 2008 17:55:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 30 минути и изкарай лесни 30000 златни монети!
Приеми
На 04 02 2008 18:05:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 40 минути и изкарай лесни 40000 златни монети!
Приеми
На 04 02 2008 18:15:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 50 минути и изкарай лесни 50000 златни монети!
Приеми
На 04 02 2008 18:25:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 1 час и изкарай лесни 65000 златни монети!
Приеми
На 04 02 2008 18:35:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 2 часа и изкарай лесни 90000 златни монети!
Приеми
На 04 02 2008 19:35:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 3 часа и изкарай лесни 110000 златни монети!
Приеми
На 04 02 2008 20:35:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 4 часа и изкарай лесни 135000 златни монети!
Приеми
На 04 02 2008 21:35:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
Иди на мисия за 5 часа и изкарай лесни 200000 златни монети!
Приеми
На 04 02 2008 22:35:55 ще ви бъде платено.
Работата ви ще трае -20035656 минути и 5 секунди.
 
Нещо не си направил както трябва пробвах опростена форма за времето и си показва коректно.
Код:
<?php
	$minuti = 10; // тук може да промениш на колкото минути искаш
	$time = time();
	$dest= time()+60*$minuti;
	
	if (!empty($_GET['vreme']) && ctype_digit($_GET['vreme'])) {
		$difference = $_GET['vreme']-$time; 
		$minutes = floor($difference/60);
		$seconds = $difference - ($minutes*60);
		
		echo "На ".date("d m Y H:i:s",$_GET['vreme'])." в БД ще бъде добавена информация.<br>";
		echo "Остават ".$minutes." минути и ".$seconds." секунди до датата.";
	}
	else echo "<a href=\"new 2.php?vreme=$dest\">Напред</a>";
?>
А за това че ти показва толкова редове ограничи заявката до 1 ред като добавиш " WHERE `user` = 'edikakvosi' "
 
Аз съм го направил на толкова редове! За различно време проблема е че не започва да отброява даденото време!
 

Back
Горе