Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Localhostta Çalışıyor Sunucuda Çalışmıyor

<?php
$q=mysql_query("SELECT * FROM servisler WHERE servis_tarih ORDER BY id");
while ($r=mysql_fetch_array($q)) {
$servistarihi=$r[servis_tarih];
}
if($servistarihi == date("Y-m-d",strtotime("-6 month"))){

echo "<div style='border:1px solid #ccc;'>
<center><font color=red size=5 face=arial><blink>6 Ay öncesi kayıtlar bulunmakta</blink></font></center></div>";
}
echo "<img src='images/giris.jpg' width='1000' height='435' border='0'>";
?>

Normal de echo ile ekrana basması gerekirken localhostta bunu yapıyor ama Sunucuda Yapmıyor.Bu sorun neden kaynaklanıyor olabilir.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • necmettin adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    80 cevap - 0 soru
    WHERE servis_tarih 'ten sonraki kontrol yok
    $r[servis_tarih] 'te tırnaklar yok
    if ($servistarihi) kontrolünü while'ın dışına koymuşsun
    Yerelindeki kayıtlar ile uzaktaki kayıtlar aynı olmadığı için son kayıt koşula uymuyordur, dolayısıyla uzak sunucuda ekrana istediğin çıktı vermiyordur.
    • pialfa adlı üyenin fotoğrafı pialfa
      Doğrusu nasıl olmalıdır acaba. $r['servis_tarih'] virgüller arasına aldım ve if() koşulunuda while ye dahil ettim.sistem çalıştı ama örn. kayıtlı iki servis olduğunda 2 kez uyarı veriyor.
      10 yıl önce yazılmış
    • necmettin adlı üyenin fotoğrafı necmettin
      1. if'li kısım döngünün dışında olur
      2. "select * .." yerine "select servis_tarih .." kullanırsın
      3. tablonun tamamından servis_tarih'leri alıp hepsini kontrol etmek yerine o kontrolü sql sorgusunun içine koyarsın (kemal'in söylediği gibi), böylece tüm tabloyla uğraşmazsın, sorgudan dönen veri boş bir array değilse ekrana "var" çıktısını verirsin
      10 yıl önce yazılmış
    • pialfa adlı üyenin fotoğrafı pialfa
      Kemal Arkadaşın anlattığı olayı yaptım kayıt olmadıdı zaman da çıktı alıyorum onu yapınca şuana kadar tek çalışan fikir if() koşulunu while nin içine aldığımda oldu.Ona birden fazla kayıt olunca ne kadar eşleşmiş tarih varsa o kadar ekrana çıktı veriyor.


      <?php
      ini_set('display_errors', 1);
      error_reporting(E_ALL);


      $q=mysql_query("SELECT * FROM servisler WHERE servis_tarih ORDER BY id");
      while ($r=mysql_fetch_array($q)) {
      $servistarihi=$r['servis_tarih'];

      if($servistarihi == date("Y-m-d",strtotime("-6 month"))){

      echo "<div style='border:1px solid #ccc;'>
      <center><font color=red size=5 face=arial><blink>Sistemde Bu Güne Kayıtlı Servisler Bulunmaktadır..</blink></font></center></div>";
      }
      }

      ?>
      10 yıl önce yazılmış
    • necmettin adlı üyenin fotoğrafı necmettin
      Programlama konusunda biraz ders alman gerekiyor gibi görünüyor. PHP/MySQL biliyorsun az-çok ama programlama mantığı üzerine biraz kafa yorman gerek bence. Aşağıdaki kodu örnek olsun diye veriyorum, tek yaptığım echo kısmını while(){ if() {} } bloğunun dışına almak oldu.

      $kayitvar = false;
      $q=mysql_query("SELECT * FROM servisler WHERE servis_tarih ORDER BY id");
      while ($r=mysql_fetch_array($q)) {
      $servistarihi=$r['servis_tarih'];
      if($servistarihi == date("Y-m-d",strtotime("-6 month"))) {$kayitvar = true; }
      }
      if ($kayitvar) {
      echo "<div style='border:1px solid #ccc;'>
      <center><font color=red size=5 face=arial><blink>Sistemde Bu Güne Kayıtlı Servisler Bulunmaktadır..</blink></font></center></div>";
      } 
      
      10 yıl önce yazılmış
    • pialfa adlı üyenin fotoğrafı pialfa
      Saol Necmettin TRUE FALSE mantığı ile hareket etmissin bu benim aklıma gelmemişti.Yardımın için sana ve tüm arkadaşlara teşekkür ederim.
      10 yıl önce yazılmış

Cevaplar

  • Kemal adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    63 cevap - 10 soru
    çalışmaması çok doğal bence
    çünkü $servistarihi=$r[servis_tarih]; ile her seferinde $servistarihi adlı değişkene veri yazıyorsunuz sonra 6 gün öncesinin tarihinle eşleştirmeye çalışıyorsunuz yapmak istediğiniz tam olarak nedir acaba ? mantığını söylerseniz daha faydalı cevaplar gelebilir.
    • pialfa adlı üyenin fotoğrafı pialfa
      yapmak istediğim 6 ay öncesinin tarihi ile eşleştirmek ve o tarihten varsa ekrana yazıyı basmak
      10 yıl önce yazılmış
    • Kemal adlı üyenin fotoğrafı Kemal
      servis_tarih sutunu timestamp olarak varsayıyorum
      $tane=mysql_num_rows(mysql_query("SELECT * FROM `servisler` WHERE `servis_tarih` >= DATE_SUB( CURDATE( ) , INTERVAL 6 MONTH ) ORDER BY `id` DESC"));
      if($tane>0){
      echo "<div style='border:1px solid #ccc;'>
      <center><font color=red size=5 face=arial><blink>6 Ay öncesi kayıtlar bulunmakta</blink></font></center></div>"; 
      }
      

      şeklinde yaparsanız sanırım işini görecektir.
      10 yıl önce yazılmış