2016-03-22 5 views
0

Mein Problem ist: Ergebnisse werden nicht in meiner demo-results.php aus den Daten in einer demo.php angezeigt. Die Daten wurden in meiner Datenbank, aber die Javascript-alert ‚0 Ergebnisse‘ immer gespeichert wird angezeigt, nachdem die demo.php Seite umgeleitet mich Seite-results.php Demo:Ergebnisse werden in PHP nicht angezeigt

dies ist der PHP-Teil meiner Demo-Ergebnisseite:

     <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(); 
       ?> 

Bitte helfen Sie mir, die Wasserlesung, die Wassernutzung und die Zahlung anzuzeigen. Vielen Dank.

+0

vielleicht sollte es sein 'if ($ result-> num_rows> 0) {' – devpro

+0

Wenn Sie Ihre Abfrage darauf beschränken, nur EINE Ergebniszeile zurückzugeben, warum verarbeiten Sie diese einzelne Ergebniszeile in einer WHILE-Schleife? – RiggsFolly

Antwort

4

Sie verwenden LIMIT in Ihrer Suchanfrage:

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; 

Und mit dieser Bedingung:

if ($result->num_rows > 2) { 

Ihre Anfrage wird nur ein Datensatz zurück, weil Sie LIMIT 1 als diese Bedingung verwenden if ($result->num_rows > 2) { wird immer gescheitert .

Lösung:

Wenn Sie LIMIT 1 verwenden möchten, als Sie erhalten als wie verwenden können:

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

Ich verwende LIMIT in meiner Abfrage, weil ich nur die Daten aus der letzten Zeile anzeigen möchte. – IlanaWexler

+0

@ChrisJustin: Überprüfen Sie die Lösung Teil in meiner Antwort. – devpro

+0

Danke! Es funktionierte! – IlanaWexler