Къде е грешката?

niksdevil

Registered
Ето грешката която вади ?
Код:
<?php
$sql = mysql_query("
SELECT `user`, `timestamp` FROM `aktiwnost` WHERE `user`='$req_user' ORDER BY `id`");
while($row = mysql_fetch_array($sql)) { 
function TimeElapsed($time)
	{
		$t = strtotime('now') - $time;
				
		$y = (int)strftime('%Y', $t) - 1970;
		if ( $y > 0 )
			return ( $y - 1970 ) . ' ' . ( $y == 1 ? 'година' : 'години' );
		
		$m = (int)strftime('%m', $t) - 1;
		if ( $m > 0 )
			return $m . ' ' . ( $m == 1 ? 'месец' : 'месеца' );
			
		$w = (int)strftime('%W', $t);
		if ( $w > 0 )
			return $w . ' ' . ( $w == 1 ? 'седмица' : 'седмици' );
			
		$d = (int)strftime('%d', $t) - 1;
		if ( $d > 0 )
			return $d . ' ' . ( $d == 1 ? 'ден' : 'дни' );
			
		$H = (int)strftime('%H', $t) - (int)strftime('%H', 0);
		if ( $H > 0 )
			return $H . ' ' . ( $H == 1 ? 'час' : 'часа' );
			
		$M = (int)strftime('%M', $t);
		if ( $M > 0 )
			return $M . ' ' . ( $M == 1 ? 'минута' : 'минути' );
			
		$S = (int)strftime('%S', $t);
		if ( $S > 0 )
			return $S . ' ' . ( $S == 1 ? 'секунда' : 'секунди' );
	}
echo "последна активност преди:";
echo TimeElapsed(strtotime($row['timestamp'])); } ?>
 
<?php
$sql = mysql_query("
SELECT `user`, `timestamp` FROM `aktiwnost` WHERE `user`='".$req_user."' ORDER BY `id`");
while($row = mysql_fetch_array($sql)) {
function TimeElapsed($time)
{
$t = strtotime('now') - $time;

$y = (int)strftime('%Y', $t) - 1970;
if ( $y > 0 )
return ( $y - 1970 ) . ' ' . ( $y == 1 ? 'година' : 'години' );

$m = (int)strftime('%m', $t) - 1;
if ( $m > 0 )
return $m . ' ' . ( $m == 1 ? 'месец' : 'месеца' );

$w = (int)strftime('%W', $t);
if ( $w > 0 )
return $w . ' ' . ( $w == 1 ? 'седмица' : 'седмици' );

$d = (int)strftime('%d', $t) - 1;
if ( $d > 0 )
return $d . ' ' . ( $d == 1 ? 'ден' : 'дни' );

$H = (int)strftime('%H', $t) - (int)strftime('%H', 0);
if ( $H > 0 )
return $H . ' ' . ( $H == 1 ? 'час' : 'часа' );

$M = (int)strftime('%M', $t);
if ( $M > 0 )
return $M . ' ' . ( $M == 1 ? 'минута' : 'минути' );

$S = (int)strftime('%S', $t);
if ( $S > 0 )
return $S . ' ' . ( $S == 1 ? 'секунда' : 'секунди' );
}
echo "последна активност преди:";
echo TimeElapsed(strtotime($row['timestamp'])); } ?>

Каква ти е грешката ?
 
Слагаш си функцията в цикъл.. Това я стартира всеки път, това и ти казва грешката.
 
<?php
function TimeElapsed($time)
{
$t = strtotime('now') - $time;

$y = (int)strftime('%Y', $t) - 1970;
if ( $y > 0 )
return ( $y - 1970 ) . ' ' . ( $y == 1 ? 'година' : 'години' );

$m = (int)strftime('%m', $t) - 1;
if ( $m > 0 )
return $m . ' ' . ( $m == 1 ? 'месец' : 'месеца' );

$w = (int)strftime('%W', $t);
if ( $w > 0 )
return $w . ' ' . ( $w == 1 ? 'седмица' : 'седмици' );

$d = (int)strftime('%d', $t) - 1;
if ( $d > 0 )
return $d . ' ' . ( $d == 1 ? 'ден' : 'дни' );

$H = (int)strftime('%H', $t) - (int)strftime('%H', 0);
if ( $H > 0 )
return $H . ' ' . ( $H == 1 ? 'час' : 'часа' );

$M = (int)strftime('%M', $t);
if ( $M > 0 )
return $M . ' ' . ( $M == 1 ? 'минута' : 'минути' );

$S = (int)strftime('%S', $t);
if ( $S > 0 )
return $S . ' ' . ( $S == 1 ? 'секунда' : 'секунди' );
}
$sql = mysql_query("
SELECT `user`, `timestamp` FROM `aktiwnost` WHERE `user`='".$req_user."' ORDER BY `id`");
fonction timestamp(){
while($row = mysql_fetch_array($sql)) {
$timestamp = $row['timestamp'];
}
return $timestamp;
}
?>


echo "последна активност преди:";
echo TimeElapsed(strtotime(timestamp()));

Оправи го както искаш да работи.
 
Код:
<?php
function TimeElapsed($time)
{
$t = strtotime('now') - $time;

$y = (int)strftime('%Y', $t) - 1970;
if ( $y > 0 )
return ( $y - 1970 ) . ' ' . ( $y == 1 ? 'година' : 'години' );

$m = (int)strftime('%m', $t) - 1;
if ( $m > 0 )
return $m . ' ' . ( $m == 1 ? 'месец' : 'месеца' );

$w = (int)strftime('%W', $t);
if ( $w > 0 )
return $w . ' ' . ( $w == 1 ? 'седмица' : 'седмици' );

$d = (int)strftime('%d', $t) - 1;
if ( $d > 0 )
return $d . ' ' . ( $d == 1 ? 'ден' : 'дни' );

$H = (int)strftime('%H', $t) - (int)strftime('%H', 0);
if ( $H > 0 )
return $H . ' ' . ( $H == 1 ? 'час' : 'часа' );

$M = (int)strftime('%M', $t);
if ( $M > 0 )
return $M . ' ' . ( $M == 1 ? 'минута' : 'минути' );

$S = (int)strftime('%S', $t);
if ( $S > 0 )
return $S . ' ' . ( $S == 1 ? 'секунда' : 'секунди' );
}
$sql = mysql_query("
SELECT `user`, `timestamp` FROM `aktiwnost` WHERE `user`='".$req_user."' ORDER BY `id`");
function timestamp(){
while($row = mysql_fetch_array($sql)) { 
$timestamp = $row['timestamp'];
}
return $timestamp;
}
?>

<?
echo "последна активност преди:";
echo TimeElapsed(strtotime(timestamp()));?>

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
 
Виж заявката там ще е. Иначе това '".$req_user."' го промених, върни си го ако е от него, зависи какво извеждаш.
 
В същност като гледам сложи или Лимит 1 или

while($row = mysql_fetch_array($sql)) {
$timestamp[] = $row['timestamp'];
}
return $timestamp;
}
 

Back
Горе