2017-06-28 3 views
0

Ich habe für eine Lösung für dieses Problem für ein paar Tage gesucht und schließlich beschlossen, Sie lieben Leute zu fragen, da es mehrere Möglichkeiten gibt, diese sprichwörtliche Katze zu häuten.Update PHP-Variable abgerufen von MSSQL SELECT jede Sekunde

Ich habe eine PHP-Seite (index.php), die derzeit die Ergebnisse einer SQL-Select-Abfrage zeigt mit dem folgenden externen PHP-Skript (script.php):

<?php 

{ 
include('database.php'); 

// Microsoft SQL Server using the SQL Native Client 11.0 ODBC Driver 
$conn = odbc_connect($server,$Username,$Password); 

// Query 
$qry = $Query; <-- this var is set in the included database.php above 

$nextbreach = odbc_exec($conn,$qry); 

odbc_close(); 

} 

$nextbreachvalue = odbc_result($nextbreach,"Breached Time"); 
$nextbreachref = odbc_result($nextbreach,"Reference"); 

?> 

$nextbreachvalue und $nextbreachref werden dann echo'd in meiner index.php

<?php echo ($nextbreachref); ?> 

<?php echo ($nextbreachvalue); ?> 

ich bin der Lage, dies mit zu tun, wie ich verwendet habe {include ('script.php');}


Während das Laden von index.php im Browser funktioniert, möchte ich die Variablen $nextbreachref und $nextbreachvalue jede Sekunde aktualisieren, ohne die Seite aktualisieren zu müssen.

Ich habe viele Artikel gesehen vorschlagen ajax, json und js kann dies erreichen, aber ich bin etwas verwirrt darüber, wie dies in meinem Fall erreicht wird, besonders da viele der Online-Beispiele mysql und nicht mssql verwenden.

Index.php unter:

<!DOCTYPE HTML> 
<html> 
<head> 
    <link rel="stylesheet" href="assets/css/style.css"> 

<?php 

{include('script.php');} 

?> 


</head> 

<body> 
<div id="container"> 

      <div id="countdowncontainer"> 

        <div id="countdownclock"> 
         <p id="ref" ><?php echo ($nextbreachref); ?></p> 
        </div> 

      </div> 


</div> 

+0

Mit MSSQL statt mysql keine Lösung wirkt sich auf Basis von Ajax und js, das ist die Lösung für das, was Sie wollen – Isac

Antwort

0

Eine Basisstruktur für das, was Sie versuchen zu tun:

<!DOCTYPE HTML> 
<html> 
<head> 
    <link rel="stylesheet" href="assets/css/style.css"> 
<script 
    src="https://code.jquery.com/jquery-3.2.1.min.js" 
    integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" 
    crossorigin="anonymous"></script> 
<script> 
$(function() { 
    setInterval(function(){ 
     $.get("data.php", function(data) { //receiving the echo from the php data file 
      $("#ref").html(data); //putting the echoed value directly into the p tag 
     }); 
    }, 1000); //setting the requests to 1 second each 
); 
</script> 


</head> 

<body> 
<div id="container"> 

      <div id="countdowncontainer"> 

        <div id="countdownclock"> 
         <p id="ref" ></p> 
        </div> 
      </div> 
</div> 

Und Ihre data.php würde das ähnlich sein Code, den Sie haben, der Daten von der Datenbank fechtet. Der Unterschied ist, dass es nun das Ergebnis spiegelt Sie in der Haupt-Seite abgerufen werden soll, und enthält keine html:

+0

Vielen Dank, das hat funktioniert! eine zusätzliche Frage jetzt. Der PHP in diesem Beispiel echo's eine Variable. Wie kann ich mehrere Variablen (in einem Array oder separat) zurückgeben und sie dann zur Verwendung innerhalb des Ajax aufteilen? Nochmals vielen Dank für die Hilfe bis jetzt :) –

+0

Ich würde vorschlagen, json Codierung Ihrer Werte, und json Parsing in der Javascript-Empfang Ende, so dass Sie eine organisierte Struktur zu halten. Sie haben bereits Funktionen für beide in PHP und JS – Isac