Баси мистиката...
4 отговора
107 прегледа
Баси мистиката...
Направих си едно форумче ей тука и всичко си работи като слънце. Докато се появи един топик /*с ид 13 се падна, баси не съм суеверен, ама май ще стана */, който се държи по-различно от другите. По принцип имам брояч колко пъти е четена всяка тема, който се задейства съвсем просто - една променлива се инкрементира при всяко повикване на темата /*или рефреш съответно */. Е, това навсякъде работи, само че при тая тема не?! Някакви идеи???
Ето фрагменти от кода:
$query="select * from topics where topic_id='$the_topic'";
$kresult=mysql_db_query("$DB","$query");
if(empty($topic_id)){
echo "empty topic_id";
}
if($kresult){
while($row=mysql_fetch_array($kresult)){
$seen=$row["seen"];
$seen++;
и тука си ги вкарвам в базичката:
$zaqvka="replace into topics (topic_id, author, title, txt, comments, seen, posted_at) values ('$id', '$author', '$tit', '$content', '$comments', '$seen', '$posted_at')";
$noneed=@mysql_query("$zaqvka");
Не поствам целия код, защото е ужасно грозен, нямах време нито да обособя, каквото мога във функции, нито да прокоментирам. Но тия извадки са достатъчни да се разбере как работи специално тоя аспект. Темата, за която ви казвам в момента е най-отгоре във форумчето. Не се увеличава броя прочитания и тва е
I want to walk into the lights
Ето фрагменти от кода:
$query="select * from topics where topic_id='$the_topic'";
$kresult=mysql_db_query("$DB","$query");
if(empty($topic_id)){
echo "empty topic_id";
}
if($kresult){
while($row=mysql_fetch_array($kresult)){
$seen=$row["seen"];
$seen++;
и тука си ги вкарвам в базичката:
$zaqvka="replace into topics (topic_id, author, title, txt, comments, seen, posted_at) values ('$id', '$author', '$tit', '$content', '$comments', '$seen', '$posted_at')";
$noneed=@mysql_query("$zaqvka");
Не поствам целия код, защото е ужасно грозен, нямах време нито да обособя, каквото мога във функции, нито да прокоментирам. Но тия извадки са достатъчни да се разбере как работи специално тоя аспект. Темата, за която ви казвам в момента е най-отгоре във форумчето. Не се увеличава броя прочитания и тва е
I want to walk into the lights
Re: Баси мистиката...
Ami i az sam imal podobni anomalii, no s drug ID :>>> ( [линк] )
pak ima vryzka s 13 :_))
Sega na temata:
Sloji kontrolni izvadki, za da sledish vsqka edna promenliva kak se dviji red po red
nai veche sled uvelichavane na broq na zaqvkite ( dali vyobshte vyrti nagore )
Ako vsichko ostanalo vyrvi bez greshka ..... :--)) qvno tuk se e zapynalo neshto.
Oshte, probvai za tozi 13-ti rekord da promenish drugo pole, zashtoto moje vyobshte da ne zapisvash nishto v sql-a !!! Ako mySQL-a ti se e zaql za 13-ti record .... Iztrii go, i go dobavi nanovo i vsichko trqbva da se opravi.
Explore your world
pak ima vryzka s 13 :_))
Sega na temata:
Sloji kontrolni izvadki, za da sledish vsqka edna promenliva kak se dviji red po red
nai veche sled uvelichavane na broq na zaqvkite ( dali vyobshte vyrti nagore )
Ako vsichko ostanalo vyrvi bez greshka ..... :--)) qvno tuk se e zapynalo neshto.
Oshte, probvai za tozi 13-ti rekord da promenish drugo pole, zashtoto moje vyobshte da ne zapisvash nishto v sql-a !!! Ako mySQL-a ti se e zaql za 13-ti record .... Iztrii go, i go dobavi nanovo i vsichko trqbva da se opravi.
Explore your world
Re: аз да си кажа :)
Ама що изобщо трабва да го правиш във PHP като една едничка заявка ти стига?
(като оставим грешките ти в PHP-то за друг път)
Стъпка по стъпка:
Ако прафилно те разбирам искаш следното:
Имаш таблица
topics(topic_id, seen, .....)
Искаш да направиш seen++ за всеки ред в, който topic_id='$topic_id'
UPDATE topics SET seen = seen + 1 WHERE topic_id = '$topic_id';
Просто и ясно.
Забележи, че не прехвърляш абосолютно никакви данни между MySQL и PHP
Разбира се можеш след като го изпълниш да провериш:
if (mysql_affected_rows($res) == 0)
{
/* Нещо няма таквиз записи в таблицата и може да искаш да INSERT */
}
Е има и други начини естествено :)
salle.online.bg/sig
(като оставим грешките ти в PHP-то за друг път)
Стъпка по стъпка:
Ако прафилно те разбирам искаш следното:
Имаш таблица
topics(topic_id, seen, .....)
Искаш да направиш seen++ за всеки ред в, който topic_id='$topic_id'
UPDATE topics SET seen = seen + 1 WHERE topic_id = '$topic_id';
Просто и ясно.
Забележи, че не прехвърляш абосолютно никакви данни между MySQL и PHP
Разбира се можеш след като го изпълниш да провериш:
if (mysql_affected_rows($res) == 0)
{
/* Нещо няма таквиз записи в таблицата и може да искаш да INSERT */
}
Е има и други начини естествено :)
salle.online.bg/sig
Re: аз да си кажа :)
:)
UPDATE topics SET seen = seen + 1 WHERE topic_id = '$topic_id';
zvu4i dosta razumno. :) Oba4e prodyljavam da se 4udq za6to samo na tozi zapis ne raboti
Drum and Java
UPDATE topics SET seen = seen + 1 WHERE topic_id = '$topic_id';
zvu4i dosta razumno. :) Oba4e prodyljavam da se 4udq za6to samo na tozi zapis ne raboti
Drum and Java