вместо 1 запис записва 2 в база данни

Frapety

Registered
защо неграмотния код записва по 2 записа в views а не 1 на всеки преглед :(
<?php
if (isset($_GET['id']) || isset($_GET['del']))
{
$id_get = intval($_GET['id']);
$sql = "SELECT * FROM videos WHERE id = '$id_get'";
$do = mysql_query($sql);
$down = mysql_fetch_array($do);
$id = $down['id'];
$views = $down['views'];
$artist = $down['artist'];
$name = $down['name'];
$date = $down['date'];
$description = $down['description'];


mysql_query("UPDATE videos SET views=views+1 WHERE id='$id_get'") or die(mysql_error());

if ( mysql_num_rows($do) <= 0 )
die('Няма такъв клип. <a href="index.php" "style="text-decoration: none;">Назад</a>');

echo "<b>$artist</b> - $name</b>"; ?>

<p id="player1">
<strong></br></br>You need to upgrade your Flash Player to version 9 or newer.</br></br></br></strong></p>
<script type="text/javascript">
var s1 = new SWFObject("<?php echo "$site_url"; ?>/files/videos/player/video.swf?imagePath=<?php echo $pic ?>&videoPath=<?php echo $link ?>&screencolor=0xFFFFFF&logo=&autoStart=false&volAudio=50&newWidth=490&newHeight=385&disableMiddleButton=false&playSounds=true&soundBarColor=0xA9A9A9&barColor=0xA9A9A9&barShadowColor=0xffffff&subbarColor=0xffffff",
"sotester", "480", "380", "9", "#000000");

s1.addParam("allowfullscreen","true");
s1.addVariable("autostart","false");
s1.addVariable("startvolume","100");
s1.addVariable("video","?videoPath=<?php echo $link ?>");
s1.write("player1");
</script>

<?php
include 'vote.php';
echo "<br />";
echo "<b>Описание: </b> $description <br /> ";
echo "<b>Размер: </b> $size <br /> ";
echo "<b>Видян: </b>";
echo number_format("$views", 0, '', ',');
echo " <br />";

$sqlactivedownload = mysql_query("SELECT * FROM videos WHERE activedownload='0' and id='$id_get'");
if( mysql_num_rows($sqlactivedownload)==1){
echo "<br />Този клип не може да се изтегли.";} else {

echo "<a href='get/$id' style='text-decoration: none;'> Изтегли </a>";
echo "[";
echo number_format("$download", 0, '', ',');
echo "]";
}
}

?>
 
Според мен проблема е тук:
Код:
mysql_query("UPDATE videos SET views=views+1 WHERE id='$id_get'")   or die(mysql_error());
И по точно
Код:
views=views+1
Промени го на wiews=wiews+0 или някак, че да не е +1
Според мен то го прави на "преглед" + още 1 заради това...
 
без нищо няма как да стане :roll: ако някои знае защо прави така да сподели
 
<?php
if (isset($_GET['id']) || isset($_GET['del']))
{
$id_get = intval($_GET['id']);
$sql = "SELECT * FROM videos WHERE id = '$id_get'";
$do = mysql_query($sql);
$down = mysql_fetch_array($do);
$id = $down['id'];
$views = $down['views'];
$artist = $down['artist'];
$name = $down['name'];
$date = $down['date'];
$description = $down['description'];

$views += 1;

mysql_query("UPDATE videos SET views=$views WHERE id='$id_get'") or die(mysql_error());

if ( mysql_num_rows($do) <= 0 )
die('Няма такъв клип. <a href="index.php" "style="text-decoration: none;">Назад</a>');

echo "<b>$artist</b> - $name</b>"; ?>

<p id="player1">
<strong></br></br>You need to upgrade your Flash Player to version 9 or newer.</br></br></br></strong></p>
<script type="text/javascript">
var s1 = new SWFObject("<?php echo "$site_url"; ?>/files/videos/player/video.swf?imagePath=<?php echo $pic ?>&videoPath=<?php echo $link ?>&screencolor=0xFFFFFF&logo=&autoStart=false&volAudio=50&newWidth=490&newHeight=385&disableMiddleButton=false&playSounds=true&soundBarColor=0xA9A9A9&barColor=0xA9A9A9&barShadowColor=0xffffff&subbarColor=0xffffff",
"sotester", "480", "380", "9", "#000000");

s1.addParam("allowfullscreen","true");
s1.addVariable("autostart","false");
s1.addVariable("startvolume","100");
s1.addVariable("video","?videoPath=<?php echo $link ?>");
s1.write("player1");
</script>

<?php
include 'vote.php';
echo "<br />";
echo "<b>Описание: </b> $description <br /> ";
echo "<b>Размер: </b> $size <br /> ";
echo "<b>Видян: </b>";
echo number_format("$views", 0, '', ',');
echo " <br />";

$sqlactivedownload = mysql_query("SELECT * FROM videos WHERE activedownload='0' and id='$id_get'");
if( mysql_num_rows($sqlactivedownload)==1){
echo "<br />Този клип не може да се изтегли.";} else {

echo "<a href='get/$id' style='text-decoration: none;'> Изтегли </a>";
echo "[";
echo number_format("$download", 0, '', ',');
echo "]";
}
}

?>

Така?
 
мне пак си е така направо се побърках с тоя код местя кода навсякъде и пак не става :(
 
Еми и аз не се сещам освен пробвай:


<?php
if (isset($_GET['id']) || isset($_GET['del']))
{
$id_get = intval($_GET['id']);
$sql = "SELECT * FROM videos WHERE id = '$id_get'";
$do = mysql_query($sql);
$down = mysql_fetch_array($do);
$id = $down['id'];
$views = $down['views'];
$artist = $down['artist'];
$name = $down['name'];
$date = $down['date'];
$description = $down['description'];

$views += (1/2);

mysql_query("UPDATE videos SET views=$views WHERE id='$id_get'") or die(mysql_error());

if ( mysql_num_rows($do) <= 0 )
die('Няма такъв клип. <a href="index.php" "style="text-decoration: none;">Назад</a>');

echo "<b>$artist</b> - $name</b>"; ?>

<p id="player1">
<strong></br></br>You need to upgrade your Flash Player to version 9 or newer.</br></br></br></strong></p>
<script type="text/javascript">
var s1 = new SWFObject("<?php echo "$site_url"; ?>/files/videos/player/video.swf?imagePath=<?php echo $pic ?>&videoPath=<?php echo $link ?>&screencolor=0xFFFFFF&logo=&autoStart=false&volAudio=50&newWidth=490&newHeight=385&disableMiddleButton=false&playSounds=true&soundBarColor=0xA9A9A9&barColor=0xA9A9A9&barShadowColor=0xffffff&subbarColor=0xffffff",
"sotester", "480", "380", "9", "#000000");

s1.addParam("allowfullscreen","true");
s1.addVariable("autostart","false");
s1.addVariable("startvolume","100");
s1.addVariable("video","?videoPath=<?php echo $link ?>");
s1.write("player1");
</script>

<?php
include 'vote.php';
echo "<br />";
echo "<b>Описание: </b> $description <br /> ";
echo "<b>Размер: </b> $size <br /> ";
echo "<b>Видян: </b>";
echo number_format("$views", 0, '', ',');
echo " <br />";

$sqlactivedownload = mysql_query("SELECT * FROM videos WHERE activedownload='0' and id='$id_get'");
if( mysql_num_rows($sqlactivedownload)==1){
echo "<br />Този клип не може да се изтегли.";} else {

echo "<a href='get/$id' style='text-decoration: none;'> Изтегли </a>";
echo "[";
echo number_format("$download", 0, '', ',');
echo "]";
}
}

?>

:wink:

П.С. - това няма да помогне ако полето в БД е тип int
 
ПЛЮСс. +

сега работи но този метод не е ли странен по принцип къде е бил проблема че слагаше по 2 и varchar, itn се тая си беше
 
Не знам от къде идва проблема - мисля че кода си е ОК. Може би заявката се изпълнява два пъти.

А иначе на това което дадох не може да е int понеже int е само за цели числа.
 
хм и може ли да те помоля много да се записва през 1 час ако си го гледам да ти запише ип то и после да не се ъпдейтва 1 час ако е пак от твоето ип
 

Back
Горе