2016-03-22 27 views
0

Sorunum: demo.php dosyasında girilen verilerden sonuçlar benim demo-results.php sayfamda görüntülenmiyor. Veriler veritabanımda saklandı, ancak javascript uyarısı '0 sonuçları' her zaman demo.php sayfasının beni demo-results.php sayfasına yönlendirmesinden sonra görüntülenir:Sonuçlar: PHP'de gösterilmiyor

Bu benim demo sonuçları sayfamın php kısmıdır:

     <div class="col-lg-12 text-center"> 
          <hr class="visible-xs"> 
          <h2>Water Reading is: </h2> 
          <hr class="visible-xs"> 

      <?php 
        $servername = "localhost"; 
        $username = "root"; 
        $password = ""; 
        $dbname = "water"; 

        // Create connection 
        $conn = new mysqli($servername, $username, $password, $dbname); 
        // Check connection 
        if ($conn->connect_error) { 
         die("Connection failed: " . $conn->connect_error); 
        } 

        $sql = "SELECT first_number, second_number, third_number, fourth_number, fifth_number, sixth_number, prev_reading, pres_reading FROM demo_numbers ORDER BY post_id DESC LIMIT 1;"; 

        $result = $conn->query($sql); 

        if ($result->num_rows > 2) { 
         // output data of each row 
         while($row = $result->fetch_assoc()) { 

       ?> 


         <strong><?php echo $row["first_number"]. $row["second_number"] . $row["third_number"]. $row["fourth_number"] . $row["fifth_number"]. $row["sixth_number"] . "<br>";?></strong> 

          <hr class="visible-xs"> 
          <h2>Your Water Usage is: </h2> 
          <hr class="visible-xs"> 
          <strong> 
       <?php 
         $int_pres = intval($row["pres_reading"]); 
         $int_prev = intval($row["prev_reading"]); 
         $difference = $int_pres-$int_prev; 
         $payment = $difference*26.678;  

         echo $difference . " cu. m." . "<br>"; 

         } 
       ?></strong> 

       <hr class="visible-xs"> 
          <h2>Your Payment is approximately: </h2> 
          <hr class="visible-xs"> 
          <strong> 
       <?php 


         echo "Php " . $difference . "<br>"; ?></strong> 
       <?php 
        } else { 
         echo "<script>alert('0 results')</script>"; 
        } 

        $conn->close(); 
       ?> 

Lütfen Su Okuma, Su Kullanımı ve Ödemeyi görüntülememe yardım edin. Teşekkür ederim.

+0

belki 'olmalı if ($ result-> num_rows> 0) {' – devpro

+0

Ayrıca, yalnızca ONE sonuç satırını döndürmek için sorgunuzu sınırlandırıyorsanız, neden bu tek sonuç satırını WHILE döngüsünde işliyorsunuz? – RiggsFolly

cevap

4

Sorgunuzda LIMIT kullanıyor:

SELECT first_number, second_number, third_number, fourth_number, fifth_number, sixth_number, prev_reading, pres_reading FROM demo_numbers ORDER BY post_id DESC LIMIT 1; 

Ve bu durumu kullanarak: Eğer if ($result->num_rows > 2) { hep başarısız olacak bu durum daha LIMIT 1 kullanıyor çünkü

if ($result->num_rows > 2) { 

Sorgunuzda sadece bir kayıt dönecektir .

Çözüm: benzerleri gibi koşulunu kullanabilirsiniz daha sen LIMIT 1 kullanmak istiyorsanız

:

if ($result->num_rows > 0) { // if no of rows found. 
+0

Sorgumda LIMIT kullanıyorum çünkü sadece verileri en son satırdan görüntülemek istiyorum. – IlanaWexler

+0

@ChrisJustin: Cevabımdaki çözüm parçasını kontrol edin. – devpro

+0

Teşekkürler! İşe yaradı! – IlanaWexler