Mysql - Kayıt varmı yokmu? en az kayıpla nasıl olur
21
●11.466
- 08-04-2010, 00:53:01Kimlik doğrulama veya yönetimden onay bekliyor.Arkadaşım yukarıda söylediğim gibi, mutlaka başka bir yerde sorun vardır, yoksa öyle kayıt var mı diye bakıp, yoksa eklemek içim kullanılan 2 sorguyla olacak iş değil. Ayrıca burada hatalı kullanmışsın:
<?php $sorgu = mysql_query("select count(video) from etiket where video='$w' limit 1"); if(!sorgu) { mysql_query("INSERT INTO etiket SET video='$w', adi='$bulunanbaslik', tarih='$tarih'"); } ?>Şimdi öncelikle query yi mysqle gönderiyorsun ama cevap almıyorsun, if(!$sorgu) bu durumda bağlantın hatalı değilse her zaman false dönderir.
mysql_fetch_assoc,mysql_fetch_array,mysql_fetch_ob ject vs. ile sonucu alıp ona göre işlem yapacaksın
ikincisi count kullanırken, count içinde index olan alanı saydıracaksın, burada video alanı index ise count(video) kullanabilirsin ama, tablonun primary_id alanını saydırman da olur. count(id) diye ve limit belirtmene gerek yok, zaten tek satır dönecektir.
Benim kullandığım şekilde
$sorgu = select count(id) as sayi from tablo where alan="aranan"' ;
olarak kulanırsan geriye dönden satır, array('sayi'=> gelen sayı) olur.
$sorgu = 'select count(id) from tablo where alan="aranan"' ;
olarak kulanırsan geriye dönden satır, array(0 => gelen sayı) olur. - 08-04-2010, 17:43:02Evet arkadaşlar hazırladığım tema bitti şimdi veritaban sorgularını ekliyeceğim
yanlız veritabanında gereksiz olduğunu düşündüğüm bazı alanları sildim
ve istiyorumki gelen video ismi eger yoksa kayıt yapsın eger varsada hiç bir işlem yapmasın
$varmi = mysql_fetch_assoc(mysql_query("select count(video) as sayi from izlenen where video='".$w."'")); if(!$varmi['sayi'] > 0) { mysql_query("INSERT INTO izlenen SET video='$w', adi='$adi', tarih='$tarih'"); }İf döngüsü doğrumu acaba ?
sitenin açılmasında performans kaybı yaratmaz değil mi ?
Bu şekilde güzel çalışıyor ama birde teyit edim dedim
sonra localden site hostuna atacam
- 08-04-2010, 18:04:43mysql performans sorunu herkese dert arkadaşım mysql performansını artırmanın yollarını internetten bir ara derim ve veritabanı sınıflarından birini kullanmanı öneririm ezsql gibi.. cache mevzusunuda unutmaSurucLu adlı üyeden alıntı: mesajı görüntüle
- 09-04-2010, 00:01:39Arkadaşım başında ünlem işareti olmayacakSurucLu adlı üyeden alıntı: mesajı görüntüle
if(!$varmi['sayi'] > 0)
değil
if($varmi['sayi'] > 0)
- 09-04-2010, 01:35:31metadige if kısmına else eklemedim
bu durumda eger o ünlem işareti koymasam elseyi eklemem gerekir. Yanlışmıyım ?
çünkü deneme yanılma yaptım ve ancak bu şekilde çalıştı.
Bide ben veri çekmeyeceğim ekrana bişe basmamda gerekmiyor
sadece youtubeden gelen video ID lerini veritabanıma kayıt ediyorum
(sitemap ve rss de kullanmak için)
Bu durumda player.php her çalıştığında bu kodlarda çalışacak
ve yapmasını istedigim şey;
Eger video ID daha once bende yoksa kayıt etsin
Eğer video ID varsa başka işlem yapılmasın
Hocam çokmu kızdırıyorum
idare et acemilik işte - 09-04-2010, 01:46:20
Arkadaşım else ile alakası yok. Bir değişkenin başına Ünlem işareti koymak, yoksa değilse gibi bir anlam katar. O nedenle bu şekilde yaparsan yukarıda söylediğim üzere hep false döner ve ekleme yapmaz. Ne dediğimi daha iyi anlaman için şu örneği bir dene:
//diyelim veritabanından 5 kayıt olduğu sonucu geldi $varmi['sayi'] = 5; if(!$varmi['sayi'] > 0) {//senin ünlemli örneğin echo 'kayıt var eklenmeyecek '. $varmi['sayi']; } else{ echo 'kayıt yok eklenecek '.$varmi['sayi']; } echo '<br /><br />'; if($varmi['sayi'] > 0) {//kullanman gereken echo 'kayıt var eklenmeyecek '. $varmi['sayi']; } else{ echo 'kayıt yok eklenecek '.$varmi['sayi']; } - 09-04-2010, 01:53:36benimkiler hatalıysa niye sorunsuz çalışıyor demiyeceğim

Fakat şöyle bir durum var hocam
Doğrusu böyle ya
if($varmi['sayi'] > 0) {//kullanman gereken echo 'kayıt var eklenmeyecek '. $varmi['sayi']; } else{ echo 'kayıt yok eklenecek '.$varmi['sayi']; }"Kayıt var eklenmeyecek" yazan yeri istemiyorum
yani kayıt varken bişe olmasını istemiyorum. Ekrana yazı basılmasın veya bir işlem yapılmasın
Sadece eger yoksa kayıt etsin istiyorum o zaman if döngüsü nasıl olmalı ?