haydari Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 $rdesult = mysql_query("SELECT sonkg FROM `tanitim` WHERE sonkg >='$gun' AND (sonky ='$yil' AND sonka ='$ay') ORDER BY `sonkg` ASC LIMIT 0 , 7"); while($row = mysql_fetch_array($rdesult)) { $betad=$row['sonkg']; foreach( range(0,6) as $cnt ) { $alfad =strtoupper( date('j',strtotime( "today + $cnt day") ) ); if($alfad!=$betad) { echo "<option value='" . $alfad . "'>" . $alfad . "</option>"; } else { echo ""; } } } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 Hatayı yazsana :) Birde SQL string icindeki `tanitim` tırnak gibi şeyleri kaldır. sadece tanitim yazsın Birde (sonky ='$yil' AND sonka ='$ay') burada neden bunları tekrar parantez icine aldın ki? paratezden çıkart onları AND ile kontrol ediyorsun sonuçta. (Bu hataya sebep olmaz ama gereksiz olmuş ) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Pluton Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 $rdesult = mysql_query("SELECT sonkg FROM `tanitim` WHERE sonkg >='$gun' AND (sonky ='$yil' AND sonka ='$ay') ORDER BY `sonkg` ASC LIMIT 0 , 7") or die(mysql_error()); olarak değiştirip 4everın dediği gibi hata mesajını gönder bakalım bize Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 sql error vermiyor boş dönüyor ben de boş dönerse alttaki döngü dönsün istiyorum ama dönmüyor. parantezler ve tırnaklar kalmış öyle orada or vardı galiba, arıza yoksa ellemiyorum Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Pluton Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 o zaman neden while'a sokuyorsun ki ? if(mysql_num_rows($sql)<1) //boş dönerse sen gel else //dnmezse sen gel Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 foreach( range(0,6) as $cnt ) { $alfad =strtoupper( date('j',strtotime( "today + $cnt day") ) ); $rdesult = mysql_query("SELECT sonkg FROM `tanitim` WHERE sonkg >='$gun' AND (sonky ='$yil' AND sonka ='$ay') ORDER BY `sonkg` ASC LIMIT 0 , 7"); while($row = mysql_fetch_array($rdesult)) { $betad=$row['sonkg']; if($alfad!=$betad) { echo "" . $alfad . ""; } else { echo ""; } } } yani bu da olmadı ben anlayabilmiş değilim Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 iyi de birden fazla dönebilir yani dolu dönerse Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Pluton Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 tamam işte while olan kısmı else tarafına yazarsın. Hiç hata vermediğine emin misin ? Dosyanın başına "error_reporting(E_ALL);" eklesene Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 site açılmıyo ne hikmetse bakamıyom şimdi de, ben şöyle diyeyim foreach önümüzdeki 7 günü sıralıyor ve option olarak select menü basıyor ben veritabanından o ayda girilmiş kayıtların gunlerini alıyorum, eğer o gün daha önce kullanılmışsa option olarak basılmasın istiyorum. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 Şimdi ben anlamadım, yazdığın kod hatamı veriyor? yoksa sonuç döndürmüyor mu? eğer hata almadan boş dönüyorsa SQL sorguna karışık gelen kayıt yoktur. Onu bir kontrol et. 2. olarakda tam olarak ne yapmak istediğini söyle de ona göre bir yol izleyelim koddan pek bişi anlamadım. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 22519 verdi. foreach( range(0,6) as $cnt ) { $alfad =strtoupper( date('j',strtotime( "today + $cnt day") ) ); $rdesult = mysql_query("SELECT sonkullanmag FROM `tanitim` WHERE sonkullanmag >='$gun' AND (sonkullanmay ='$yil' AND sonkullanmaa ='$ay') ORDER BY `sonkullanmag` ASC LIMIT 0 , 7"); if(mysql_num_rows($rdesult)<1) { echo "" . $alfad . ""; } else { while($row = mysql_fetch_array($rdesult)) { $betad=$row['sonkullanmag']; if($alfad!=$betad) { echo "" . $alfad . ""; } else { echo ""; } } } } böyle çalıştı Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 ama böyle kullanmak doğru değil. SQL sorgusunu foreach içine koyman Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 neden ? ne farkı var ? tam anlayamadım ayrıca o kodda bug gibi bişeymiş kod düzgün çalışırken de verdi o kodu. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 Her foreach için tekrar SQL çalıştırıyorsun yapı olarak hatalı. Belki bu projede birşey olmayabilir ama büyük Veritabanlarında fazladan gereksiz sorgu yaparsın performans acısından pek uygun değil Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 Şöyle bir yapı daha uygun olabilir. foreach( range(0,6) as $cnt ){ $alfadArray[] = strtoupper( date('j',strtotime( "today + $cnt day" ) ) ); } $alfadString = implode(",",$alfadArray); Not: tek foreach ile istediğin bilgileri array e alıyorsun. daha sonra arrayde bilgileri implode ile string yapıyorsun virgül ile ayrılmış. Çıkan string e sql ile bağlıyorsun burada JOIN yapcaz ve senin kontrolün eşit değil olduğu için NOT IN ile SQL'e bağlayacağım. $rdesult = mysql_query("SELECT sonkullanmag FROM `tanitim` WHERE sonkullanmag >='$gun' AND sonkullanmay ='$yil' AND sonkullanmaa ='$ay' AND sonkullanmag NOT IN (".$alfadString." ) ORDER BY `sonkullanmag` ASC LIMIT 0 , 7" ); Tek 1 SQL çalışacak ve senin istediğin günlere eşit olmayan değerleri verecek. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 denemedim ama not inin içine yazacağın virgülle ayrılmış diyelim 3 değerin herbiri ayrı ayrı mı kontrol edilecek bu sistem de? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 eğer sonuçta bir veya birden çok değer dönerse while ile bunlar alınıp if ile bugün ve önümüzdeki günlerle karşılaştırılıyor ve olmayanlar basılıyor. NOT IN ile sonuçları eleyebiliyoruz. ancak veritabanında zaten fazla kayıt yok ki olanları eleyip olmayanları bastırayım. olanlar dediğimiz "bugün ve önümüzdeki 6 gün" onu da php ile yaratıyorum. yani ben başka bir çözüm göremedim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 2. yaptığın daha doğru olmuş. Olabildiğince az çalışan bir sistem yapmak lazım tabiki şuan gözle görülür bir etki olmayabilir ama veritabanın ve join tabloların büyüdükçe sıkıntı yaşamaya başlarsın. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 ikinci yaptığımı sildim. çünkü kontrol edince istediğim işi yapmadı. eğer değer girilmişse duruyordu. sonraki tarihleri basmıyordu. işin kötü yanı bu sorgudan bir tane daha çalıştıracağım. o da sonraki ay için. çünkü sorgu aslında önümüzdeki 7 gün için aslında çalışmıyor. eğer önümüzdeki 7 gün içeisinde ay değişmezse çalışıyor. ben aslında 7 bilemedin 14 günlük kayıtlar tutmak istiyorum. yani geçmişi tutmayı düşünmüyorum. ama otomatik olarak geçmişi silecek bir şey henüz yazmadım. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 Tam olarak yapmak istediğin 7 günlük kayıtları almak mı ? Sistemde tarih saat değelerini nasıl tutuyorsun ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 saat tutmuyorum gun j ay m yıl Y olarak bi de date("Y-m-d"); olarak veri girişi tarihlerini Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Nisan 29, 2012 Paylaş Mesaj tarihi: Nisan 29, 2012 Böyle durumlarda timestamp tutarsan çok faydalı olur 2 tarih arasındaki değerleri alman için kolaylaşır hemde gereksiz alan tutmazsın. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
haydari Mesaj tarihi: Nisan 29, 2012 Konuyu açan Paylaş Mesaj tarihi: Nisan 29, 2012 zamanlanmış görevlere ilişkin örneğin var mı ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
recaikutan Mesaj tarihi: Mayıs 8, 2012 Paylaş Mesaj tarihi: Mayıs 8, 2012 4Ever said: Hatayı yazsana :) Birde SQL string icindeki `tanitim` tırnak gibi şeyleri kaldır. sadece tanitim yazsın Birde (sonky ='$yil' AND sonka ='$ay') burada neden bunları tekrar parantez icine aldın ki? paratezden çıkart onları AND ile kontrol ediyorsun sonuçta. (Bu hataya sebep olmaz ama gereksiz olmuş ) Iıh olmamış. Tırnaklar kendini korusun ki bu şekilde kod yazmaya alışsın. Örneğin mod adında bir field varsa; $mod="OK"; $sorgu = mysql_query("select id from tablo where mod = ".$mod." "); Şeklinde kullanamaz orada where koşulundan sonra gelen mod tırnak içerisine alınması gerekir aksi halde çalışmaz. Mysql'in temel değişkenlerini field olarak belirtirseniz o zaman tırnak kullanmak zorunda kalırsınız. Ayrıca parantezlere gerek var. Siz düzgün çalıştığını sanıyorsunuz ama reportları açarsanız ne kadar çok warning verdiğini görürsünüz. Sanıyorsunuz ki report kapalı kalınca warningleri görmüyorum o zaman problem yok. Hiçde öyle değil o warningler tek tek log dosyalarına kayıt ediliyor buda sunucunun gereğinden fazla şişmesine sebep olabilir. Temiz kod yazmak profesyonel bir yazılımcı için en önemli esastır. Amatörlüğün yazılımda yeri yok. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
4Ever Mesaj tarihi: Mayıs 8, 2012 Paylaş Mesaj tarihi: Mayıs 8, 2012 Kendini ispatlamak için arayıp tarayıp geçmiş konuyumu buldun anlamadım ki :) Zaten table adı gibi yerler de tırnak yazmaya gerek yok. operator vs ile aynı isimleri kullanıyorsan tablo adında zaten amatörsün. Ayrıca AND ile sorgulama yapıyorsan paranter kullanmaya gerek yok. Profesyonel hayatında başarılar dilerim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar