PHP -də if , update səhvi

Salam , php – de qarşıma belə problemlər cıxır,

Məsələn:

$a = mysql_query("SELECT * FROM `mysql_baza` where lis ='".$lis."'");
$users = mysql_fetch_array($a);
$duel = $users['duel'];

if($duel != 1){

@mysql_query("UPDATE `mysql_baza` SET `duel` = '1' , `bonus` = bonus + '1' WHERE `lis` = '".$lis."';");

}

Normal halda bonus 1 artandan sonra ikinci artmamalıdır, amma linkin üstün’ tez-tez dayanmadan kilik edəndə bonus 2-3 dəfə artır. Bu problem neden ola biler? yazılan funksiya adi qaydada tam qaydasında işleyir. Yalnız linkin üstüne tez tez klik edəndə bu problem olur.


Yadda saxlama
Kateqoriya: Sual . , , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (7 cavab var)

(11:28, 22/04/2013 ) #29193

Salam. Problem siz deyən kimidirsə, deməli bir klikdəki prosesdə update getməmiş o biri klikdəki proses işə düşür və hər ikisi if baryerini aşa biir. Çünki biri bitməmiş o biri işə düşüb. Maraqlıdır siz əllə klik etməklə mikrosaniyələrdə baş verən proseslərin arasına necə girə bilirsiniz, yəqin servriniz ləng işləyir. Belə edin, table-a last_update_time sütunu əlavə edin, oraya hər dəfə ən son uptade-i set edib php time ilə yazın.
Sonra if($duel != 1) şərtini belə əvəz edin if($duel != 1 and (time()-$last_update_time)>2000) //yəni son update-dən heç olmasa 2 saniyə keçsə işləsin.
Məncə bununla işləyər. İndi təbii ki, tam dəqiq kod yazmadım, sadəcə ümumi ideya kimi verdim, ki vaxt kəsikləri ilə kontrol edin bu prosesi.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(13:32, 22/04/2013 ) #29197

Bu hissədə heç bir səhvlik yoxdu. Bundan əvvəlki və sonrakı sətirləri də yazsan nəsə tapmaq olar. Göstərilən hissə kifayət etmir.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(14:05, 22/04/2013 ) #29201

E. Hacı , Yazdiqiniz cavaba gore cox sagolun.
Men sizin dediyiniz kimi variantlar iwletmiwem. hardasa 50% qarwisini alir.Bu problem esasen Google Chrome ile daxil olan istifadecilerde daha cox olur.Istifadeciler bunu bildiklerne gore her kes linkin ustune tez tez klik edir,buda daha cox problem yaradir.

E. Hacı , Yazdiqiniz cavaba gore cox sagolun.
Men sizin dediyiniz kimi variantlar işletmişem hardasa 50% qarşisini alir.Bu problem esasen Google Chrome ile daxil olan istifadeçilerde daha çox olur.Istifadeçiler bunu bildiklerine gore her kes linkin üstüne tez tez klik edir,buda daha cox problem yaradir.

istifade etdiyim hostingler meşhur şirketler olub ,biri http://www.godaddy.com/ .

Yiqdiqim sciriptde PHP -lerde SELECT * emrinden istifade etmişem, problem bundan ola biler? Cün ki optimal variant SELECT setr1,setr2 gosterilir.Istifadeçi çoxaldiqca bu problem dahada artir, hetda shirket terefinden mysql baza baqlanir.Sebeb eyni anda
mysql bazaya gönderilen sorgularin çoxluqu , ve yaxud saytiniz bizim
prosessor teleblerini ötüb.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (14:23, 22/04/2013 ) #29205

    Yox, o halda sizdə kodda başqa yerdə problem var əmin olun. Çünki siz yazan kodda belə bir hal olmamalı idi, mən hər ehtimala qarşı 100% qarşısını alacaq əlavə bir şərt də dedim. O şərtlə belə bu hal təkrarlanırsa, deməli sizdə kodda başqa yerdə problem var, səhvi burda axtarmayın.
    Qaldı Godaddy-yə, shared hostinq ancaq statik vizitka saytları üçün yarayır. Sizin sayt xidməti saytdırsa mütləq və mütləq VDS(Virtual Dedicated Server) almaq lazımdır. Əks halda tez-tez belə problemlərlə üzləşəcəksiniz sizdən xəbərsiz ya mysqli bağlayacaqlar ya hostinqi suspend edəcəklər i high cpu load verir filan.

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(15:39, 22/04/2013 ) #29211

Meslehetli hosting ve ya reseller veren şirket hansıdır ?
Hal hazırda bele hallar azalır.

Bu kodla 50% problem yaranırdısa

  $a = mysql_query("SELECT * FROM `mysql_baza` where lis ='".$lis."'");
	$users = mysql_fetch_array($a);
	$duel = $users['duel'];
	 
	if($duel != 1){
	 
@mysql_query("UPDATE `mysql_baza1` SET `duel` = '1'  WHERE `lis` = '".$lis."';");
@mysql_query("UPDATE `mysql_baza2` SET `bonus` = bonus + '1' WHERE `lis` = '".$lis."';");
	}

Bu halda ise 10-20% e enir

	if($duel != 1){
@mysql_query("UPDATE `mysql_baza1` SET `duel` = '1'  WHERE `lis` = '".$lis."';")
 && 
@mysql_query("UPDATE `mysql_baza2` SET `bonus` = bonus + '1' WHERE `lis` = '".$lis."';");
	}

Godaddy şirketi MYSQL-i baglayanda php lerde SELECT * emrinden istifade etmemeyimi bildirdi.
Sciript daha optimal yıqılmalıdır meselen: SELECT setr1,setr2.
Fikrimce eyni anda 150-200 nefer bir klike vuranda hemcinin mysql-da saysız geder sorgular olarsa,
SELECT * emri melumatlari oxumaqı lengidir.

Istifadeci az olanda, mysql tez tez silinende bele problem olmur.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (15:43, 22/04/2013 ) #29213

    Nə hostinq nə reseller. VDS lazım. Ucuz və optimal alman Hetzneridir. Normal qiymətə isə Site5, Godaddy və.s.

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (15:45, 22/04/2013 ) #29214

    10-20% söhbəti olmamalıdır burda, ya doğru olmalı ya da olmamalı. Yəni 0% olmalıdır, əks istənilən hal kodda səhv var və ya hostinqdə mysql serverdə problem var deməkdir.
    Qaldı Godaddy-yə, dediyim kimi * ya field adı yazmaq bunlar xırda optimizələrdir, bunları sizə onlar deməli deyil, bu sizin şəxsi işinizdir, ona görə də öz serveriniz olmalıdır.

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (8 saat əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (6 gün əvvəl)

Software Developer cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (6 gün əvvəl)

Triste cavab verdi - Google Adsense vergi (6 gün əvvəl)

E. Hacı cavab verdi - Xif mn kodu (14 gün əvvəl)

Khagrov cavab verdi - Axtardığım mahnını tapa bilmirəm kömək edin (33 gün əvvəl)

E. Hacı cavab verdi - Dünəndən Kompüterlə Twitter/X və Pinterest -ə girə bilmirəm. (40 gün əvvəl)

orkhanrza cavab verdi - AZ9095də bağlama qalıb (45 gün əvvəl)

Ismayil1997 cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (54 gün əvvəl)

revan orucov cavab verdi - Bakıda evə 100mbps+ internet verən provayder var? (58 gün əvvəl)

E. Hacı cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (60 gün əvvəl)

Jurnalist cavab verdi - WordPress sistemli saytda Facebook və İnstagram platformalarına özəl target_blank tənzimlənməsi haqqında... (60 gün əvvəl)

asssa1 cavab verdi - Riyazi proqramlar üçün proqram (62 gün əvvəl)

Aleks cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (68 gün əvvəl)

E. Hacı cavab verdi - İndiki dövrdə İngilis dili müəllimliyi ixtisasını seçməyə dəyər? (68 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23288 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024