• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Daten aus mysql-db von Heute/Gestern in Array schreiben?

noxx2

Neues Mitglied
Hallo,

bisher habe ich nicht passendes gefunden.

ich möchte die Daten (Aussentemperatur) von heute und gestern jeweils in ein Array schreiben.
Finde da aber keinen Ansatz....

Musste vermutlich in diese Richtung gehen:
PHP:
$heute_aussentemp = mysql_query("SELECT Aussentemperatur WHERE Datum > '".date("Y-m-d")." 00:00:00'");

Gruss




Edit:

Zum testen habe ich mir das mal gebastelt, aber ich bekomme keine Ausgabe, beim Aufruf der Webseite bleibt diese leer

PHP:
<?php

include_once("/var/www/web86/files/mysql.php");

$today = date("Y-m-d");

$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
$heute_aussentemp = mysql_query("SELECT Aussentemperatur WHERE Datum > '".$today." 00:00:00'"); 
echo $heute_aussentemp[1];
mysql_close($con);

?>
 
Zuletzt bearbeitet:
Werbung:
Mit der SQL Funktion Limit kannst du die Anzahl der Rückgegebenen Zeilen Limitieren. Ansonsten einfach nach dem Datum Absteigend (DESC) sortieren:

Sieht so aus:
Code:
SELECT Aussentemperatur FROM tabelle ORDER BY Datum DESC LIMIT 2

Ich hoffe ich konnte dir behilflich sein.

Edit:
Habe gesehen, du hast mehr als nur eine Temeratur pro Tag. Mein Fehler. Dann musst du doch dass Datum abfragen:
Code:
WHERE DATE_SUB(NOW(), INTERVAL 2 DAY) <= Datum

Also insgesammt (Nicht getestet):
Code:
SELECT Aussentemperatur FROM tabelle WHERE DATE_SUB(NOW(), INTERVAL 2 DAY) <= Datum ORDER BY Datum DESC
 
Zuletzt bearbeitet:
stehe jetzt etwas auf dem Schlauch, wenn ich ehrlich bin.

gruss

PS:hatte oben noch was hinzugefügt.
 
Werbung:
Ich habe auch nocheinmal was hinzugefügt^^

Ich weiß nicht ob das dass ist was du brauchst, ansonsten melde dich nochmal.
 
hmmm. also meine testseite bleibt erstmal leer.
echo $heute_aussentemp[1]; sollte doch zumindest einen Wert ausgeben, oder?

PHP:
$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
$heute_aussentemp = mysql_query("SELECT Aussentemperatur FROM tabelle WHERE DATE_SUB(NOW(), INTERVAL 2 DAY) <= Datum ORDER BY Datum DESC"); 
echo $heute_aussentemp[1];
mysql_close($con);
 
Werbung:
Du bist ein hoffnungsloser Fall!

Wieder mal kein mysql_error beim mysql_query und was liefert mysql_query im Erfolgsfall???
 
Werbung:
bisher nichts......leider :???:

PHP:
$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
$heute_aussentemp = mysql_query("SELECT Aussentemperatur FROM meteohub_1 WHERE DATE_SUB(NOW(), INTERVAL 2 DAY) <= Datum ORDER BY Datum DESC") or die(mysql_error(); 
echo $heute_aussentemp[1] or die(mysql_error();
mysql_close($con) or die(mysql_error();
 
mysql_query liefert als Ergebnis lediglich eine Resource-ID zurück.

Davon abgesehen beginnen Arrays in PHP immer mit dem Index 0!

Die Verwendung von mysqli bzw. PDO wurde hier im Forum schon sehr oft angeraten.
 
PHP:
echo $heute_aussentemp[1] or die(mysql_error();
Sehr kreativ! Mir stellt sich allerdings die Frage, was der Blödsinn soll? Wie wäre es denn, wenn du mal das ein oder andere Tutorial durcharbeitest?
 
Werbung:
PHP:
echo $heute_aussentemp[1] or die(mysql_error();
Sehr kreativ! Mir stellt sich allerdings die Frage, was der Blödsinn soll? Wie wäre es denn, wenn du mal das ein oder andere Tutorial durcharbeitest?
ok, sicherlich blödsinn.
dennoch weiss ich nicht warum echo $heute_aussentemp[1] keinen Wert ausgibt.
 
Weil Du vermutlich keine Fehler ausgeben lässt. Die Funktion mysql_query() liefert eine Ressource zurück, aber kein Ergebnis-Array. Du solltest halt einfach mal einen Blick in das PHP-Manual werfen: PHP: mysql_query - Manual
 
Werbung:
probiere ich, aber irgendwas stimmt da nicht mit der verbindung. muss da später mal ran.

das liefert eine ausgabe
PHP:
<?php
echo "test.php";
?>

und hiermit bekomme ich keine, also eine leere Seite.
PHP:
<?php
echo "test.php";
$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
?>
 
Jetzt überlegen wir mal in aller Ruhe!

Woher soll das Script die Variablen $databasehost, $databaseusername und $databasepassword kennen?
Wenn keine Verbindung zum MySQL-Server hergestellt werden kann, wie soll dir MySQL einen Fehlertext liefern können?
 
die daten standen in einem anderem file welches ich per include eingebunden hatte.

aber irgendwo habe ich trotzdem einen fetten bug drin und ich sehe ihn nicht, selbst wenn
ich die zugangsdaten direkt ins php schreibe, bekomme ich keine ausgabe, weder echo test.php noch einen
wert aus der mysql tabelle. und ich weiß nicht warum

PHP:
echo "test.php";

$databasehost = "db.sysproserver.de";
$databasename = "usr_web";
$databasetable = "meteohub_1";
$databaseusername ="web";
$databasepassword = "123456";

$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
$sql = mysql_query("SELECT Aussentemperatur FROM meteohub_1 WHERE Datum >=current_date()  ORDER BY etime DESC" or die(mysql_error());

echo $sql[0];
mysql_close($con);
 
Werbung:
Jetzt mal ganz ehrlich!! Liest du eigentlich auch die Antworten die du bekommst oder betrachtest du die einfach nur als Threadfüller? Es wurde mehrfach auf einen Fehler hingewiesen, aber das scheint dich irgendwie nicht zu interessieren! Wenn du der Meinung bist, Antworten ignorieren zu können, dann muss ich davon ausgehen, dass du dein Problem alleine lösen willst. Viel Erfolg!

Ein letzter Tipp:

Richtig debuggen


  1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
  2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
  3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
  4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
  5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
  6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
  7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
  8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
  9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
sorry, aber error_reporting hatte ich auch drin, es kommt keine ausgabe....
nur eine leere seite.

habe versucht den fehler einzugrenzen, es ist irgendwas mit der anmeldung nicht in ordnung, aber
ich weiss nicht warum. ich benutze ein anderes php file um die mysql-tabelle zu füllen, da sind
die selben anmeldedaten drin und das script funktioniert.

beim dem 2ten script um die daten zu lesen, geht nichts.

und natürlich habe ich alles gelesen und auch probiert, sorry.


So sieht das File aktuell aus, aber beim aufruf der seite ist diese leer. weder
fehlermeldung nch ein echo ist zusehen.

PHP:
<?php
error_reporting(-1);
ini_set('display_errors', true);

echo "test.php";

$databasehost = "db.sysproserver.de";
$databasename = "usr_web";
$databasetable = "meteohub_1";
$databaseusername ="web";
$databasepassword = "123456";

$con = mysql_connect($databasehost,$databaseusername,$databasepassword) or die(mysql_error());
mysql_select_db($databasename) or die(mysql_error());
$sql = mysql_query("SELECT Aussentemperatur FROM meteohub_1 WHERE Datum >=current_date()  ORDER BY etime DESC" or die(mysql_error());

echo $sql[0];
mysql_close($con); 

?>
 
Zurück
Oben