MYSQL ausgabe aktuell halten
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
ausgabe
code
container
dank
datei
datum
ergebnis
host
http
null
post
re
sekunde
server
steuer
target
url
verbindung
-
Tach hab mal wieder ein kleines Problem mit meiner MYSQL ref="/tag/abfrage">abfrage bzw. allgemein mit meinem MYSQL :P
Undzwar hätte ich gerne das eine MYSQL abfrage in meinem PHP Script automatisch alle 5-10 Sekunden reloaded wird (Veränderbar halt auch ne sekunde oda so) so das man die Seite also nicht aktuallisieren muss wenn man den aktuellen Wert haben möchte.
Das Script was dieses benötigt wäre dieses:
$onlinehorde_querry = "SELECT count(*) as count FROM `characters` WHERE `race` in (2,5,6,8,10) AND `online`='1'"; $onlinehorde_result = mysql_query($onlinehorde_querry); $onlinehorde = mysql_fetch_object($onlinehorde_result)->count;
Ich hoffe da kann mir jemand helfen.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
eine wirklich elegante Lösung hab ich nicht, aber vielleicht hilft dir erstmal das weiter.
Es gibt über HTML die Möklichkeit nach einer bestimmten Zeit auf eine andere Seite weiter zu leiten.
Das sieht dann etwa so aus:
<meta http-equiv="refresh" content="3; URL=http://jwolff.lima-city.de/">
Wenn man auf diese weiße auf die gleich Seite verweißt, sollte sie sich aller 3 Sekunden (content="3; ) aktualisieren.
Wenn es noch andere Lösungen gibt, würden die mich auch interessieren. -
hi
du kannst dem server unnötiges masakrieren ersparen:
1. du packst deine abfrage in eine eigene php datei.
2. schreibst eine andere php datei, die per POST die ausgabe ausliest und in die eigene inhalt schreibt. (in diesem fall macht der besucher die abfrage ob er es will oder nicht.)
3. alternativ kannst mit javascript die abfrage machen (kein ajax brauchst dazu), so dass nicht die ganze seite, sondern nur die inhalte der abfrage geladen und ein container (<p></p> oder sonstwas) geschrieben werden.
wenn due einen ausgefuxten grund hast automatisch und regelmässig abzudaten (also den server zu masakrieren), dann muss du cronjob noch hinzu nehmen.
==== edit
@jwolff
wo ich dann bestimmte Querys immer wieder abfrage
und genau das kannst so mit POST richtig schön steuern. wegen ladehemmung bei lima schreibe ich das ganze hierher. die adressen gelten natürlich einen schmarrn (ich habe das ding mal hier gepostet).
da ist der 'quasi' client:
<?php /** * sendet post daten und gibt das ergebnis aus */ $host = "czibere.lima-city.de"; $path = "/_forum/programtools/target.php"; $referer = "http://czibere.lima-city.de/_forum/programtools/target.php?"; $data = "postvar=da%20ist%20post%20gekommen%20:o)"; echo ("<p>los geht's</p><hr />"); echo "<h3>antwort vom host:</h3>".$x = PostToHost ( $host, $path, $referer, $data); echo "<div style=\"background-color:#eee;\">"; highlight_file (__FILE__); echo "</div><p> </p><br />"; echo "<div style=\"background-color:#ccc;\">"; highlight_file ("./target.php"); echo "</div>"; exit; function PostToHost ($host, $path, $referer, $data) { $fp = fsockopen ($host, 80); echo ("<p>geoeffnet</p>"); fputs ($fp, "POST $path HTTP/1.1\r\n"); fputs ($fp, "Host: $host\r\n"); fputs ($fp, "Referer: $referer\r\n"); fputs ($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs ($fp, "Content-length: ". strlen ($data) ."\r\n"); fputs ($fp, "Connection: close\r\n\r\n"); fputs ($fp, $data); echo ("<p>gesendet</p>"); while ( !feof ($fp) ) { $res .= fgets ($fp, 128); } echo ("<p>getan</p><hr />"); fclose ($fp); return $res; } ?>
und in so eine quasi 'server' kannst deine queries reinschreiben:
<?php /** * empfaengt post daten und entsprechend reagiert */ echo "<h1>ich bin der 'post-empfaenger'</h1>"; echo "<h3>".__FILE__."</h3>"; echo "<div style=\"background-color:#fcc;\"><pre><strong>\$_POST:</strong>\n".print_r ($_POST,true)."</pre></div>"; ?>
Beitrag zuletzt geändert: 1.3.2010 11:26:41 von czibere -
edit:/
Ok Post kapier ich nicht so ganz da muss ich mich mal reinlesen auf jedenfall danke ^^
Beitrag zuletzt geändert: 1.3.2010 11:27:43 von jwolff -
ich habe meins gerade editiert. lies nochmals. er ladet keine ganze seite, wenns nicht nötig. nur die ausgabe von der query. (das must du aber natürlich noch hinzuprogen)
Beitrag zuletzt geändert: 1.3.2010 11:29:22 von czibere -
Hi, ich hab dir auch eine Möglichkeit gebastelt mit Ajax.
Deine Standardseite
<html> <head> <script type="text/javascript" src="ajax.js"></script> </head> <body onload="AJAX('aktuell','ajax_2.php');"> <strong>Aktualisierung</strong> <div id="aktuell"></div> </body> </html>
Die php-Seite mit der Abfrage (ajax_2.php)
<?php $verbindung = mysql_connect ("localhost","root", "")or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch"); mysql_select_db("test")or die ("Die Datenbank existiert nicht."); $abfrage = "SELECT * FROM ajax"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "$row->eins - $row->zwei <br/>"; } mysql_close($verbindung); ?>
Die Ajaxdatei, einfach genauso übernehmen und in einen geeigneten Ordner speichern: ajax.js
Die 10000 bedeutedt, dass alle 10 Sekunden aktualisiert wird. ajax_2.php --> die Datei mit der abfrage
var element_ID; var xmlHttp function AJAX(elementID , link) { element_ID = elementID; xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } var url=""+ link +"?sid="+Math.random() xmlHttp.onreadystatechange=stateChanged xmlHttp.open("GET",url,true) xmlHttp.send(null) window.setTimeout("AJAX('aktuell','ajax_2.php')",10000); } function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") { document.getElementById(element_ID).innerHTML=xmlHttp.responseText } } function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { //Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; }
Hoffe es hilft dir -
Ohja genau das hab ich gesucht ich könnt dich glatt abknutschen so bin ich davon begeistert xD
Edit:/
Kann ich auch mehrere solcher Abfragen reinhauen ?
window.setTimeout("AJAX('aktuell','ajax_2.php')",10000);
mit verschiedenen dateien ??
Oder muss ich ständig ne neue Ajax.js machen ?
Beitrag zuletzt geändert: 1.3.2010 12:34:00 von jwolff -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage