Презаписва полетата в mysql

amarok

Registered
Имам проблем с един код след като изпълни заявката в таблицата workip и вместо id-2 да го сложи на нов ред до презаписва с id-1 и така след това id-3 го записва върху id-2 :? :?

Снимки

1341.jpg


1342.jpg


Ето кода


Код:
<?
$ip=$_SERVER['REMOTE_ADDR'];
$time=time();
$name = $_SESSION['name'];

$query=mysql_query("SELECT * FROM `users` WHERE `name` = '$name'") or die(mysql_error());
$row=mysql_fetch_array($query);
$id=$row['id'];

$query2=mysql_query("SELECT * FROM `workip` WHERE `work_id` = '$id'") or die(mysql_error());
$row2=mysql_num_rows($query2);
$row3=mysql_fetch_array($query2);


if ($row2 >= 1 )
{
echo "<center><b>Чак след 1 час пак ще може да се състезаваш</b></center";
}
else 
{


$insert=mysql_query("INSERT INTO `workip` (`id`, `work_id`, `ip`, `time`) VALUES ('', '$id', '$ip', '$time')") or die(mysql_error());


if ($insert)
{
echo "Успешно се състезавахте !";
}
else
{
echo "Възникна някаква грешка !";
}
}
}
}



?>
 
Я по-точно обясни какво точно искаш да направиш. Да записва върху стария резултат или да прави нов запис в базата данни. Защото така като гледам сега ти записва нов ред в базата данни. Искаш както е записано един път само часа на гласуване да променя или .... ?
 
Ами виждаш ли на едната снимка записва id 1 а на втората снимка id 2 тоест записва върху едно и също поле ... само id то сменя а трябва да са 2 реда :?
 
Полето ти Id auto_increment ли е, ако не е го направи така и пробвай съответно кода отдолу.
Код:
<?
$ip=$_SERVER['REMOTE_ADDR'];
$time=time();
$name = $_SESSION['name'];

$query=mysql_query("SELECT * FROM `users` WHERE `name` = '$name'") or die(mysql_error());
$row=mysql_fetch_array($query);
$id=$row['id'];

$query2=mysql_query("SELECT * FROM `workip` WHERE `work_id` = '$id'") or die(mysql_error());
$row2=mysql_num_rows($query2);
$row3=mysql_fetch_array($query2);


if ($row2 >= 1 )
{
echo "<center><b>Чак след 1 час пак ще може да се състезаваш</b></center";
}
else
{


$insert=mysql_query("INSERT INTO `workip` (`work_id`, `ip`, `time`) VALUES ('$id', '$ip', '$time')") or die(mysql_error());


if ($insert)
{
echo "Успешно се състезавахте !";
}
else
{
echo "Възникна някаква грешка !";
}
}
}
}



?>

И сигурен ли си, че това е целия ти код
 
пак го записва така сега е 3 но не са 3 полета а е 1 само id то се сменя а иначе полето ми е auto_increment

Пращам ти целия код на ЛС
 
Така по кода ти няма проблеми така като гледам, но ясно искам да обясниш какво точно искаш да се случва в mysql(phpmyadmin) така ти е написан кода, че при всяка една заявка да вкарва нов ред в базата данни. Тази част от кода, която си дал е написана за точно това, което разбирам от обясненията ти. ИСКАМ ПРОСТО ТОЧНО И ЯСНО ДА ПОЯСНИШ КАКВО ТОЧНО ИСКАШ ДА СТАВА В БАЗАТА ДАННИ. КОЕ ID ДА ПРЕЗАПИСВА ИЛИ ДА ПРАВИ ЛИ НОВ РЕД, ИЛИ ПРОСТО ДА ПРОМЕНЯ ПОЛЕТО TIME.
 
Ами значи искам ето така да го записва

1343.jpg



А иначе например цъкам работа там и вместо да го запише на нов ред в полето workip го заменя с предишното :? :?
 
Сега те разбрах. Проблема идва от там, че имаш една проверка преди това. Я пробвай кода отдолу.
Код:
<?
$ip=$_SERVER['REMOTE_ADDR'];
$time=time();
$name = $_SESSION['name'];

$query=mysql_query("SELECT * FROM `users` WHERE `name` = '$name'") or die(mysql_error());
$row=mysql_fetch_array($query);
$id=$row['id'];

$query2=mysql_query("SELECT * FROM `workip` WHERE `work_id` = '$id'") or die(mysql_error());
$row2=mysql_num_rows($query2);
$row3=mysql_fetch_array($query2);

$insert=mysql_query("INSERT INTO `workip` (`work_id`, `ip`, `time`) VALUES ('$id', '$ip', '$time')") or die(mysql_error());

if ($insert) {
echo "Успешно се състезавахте !";
} else {
echo "Възникна някаква грешка !";
}

}
}
?>
И няма как да ти запише друго IP и друго work_id понеже ползваш $_SESSION['name'] излез и пак влез с акаунта. Както виждаш ти вкарва ново time и ново id в базата данни.
 
Същото е че ти записва нов ред в базата данни. По начина, по който изобразяваш действието се вижда, че искаш точно това.
 
Еми пак е така влизам с друг потребител и вместо да го запише на следващ ред го замества с предишния :shock: просто не знам защо става така ...
 

Back
Горе