PHP - MySQL Abfrage liefert anderes Ergebnis als direkte MySQL (PHP-MyAdmin) Abfrage!
Ich denke mal, die Antwort von Euch wird kurz und bündig. Zumindest hoffe ich
mit Eurer Hilfe, das Problem schnell geklärt zu haben!
Situation:
Es existiert eine Datenbank tbl_XxX, in der jeden Tag 96 Werte eingetragen werden.
Struktur: date (typ DATE) | time (typ time) | value (Typ float)
Für eine Weiterverarbeitung, möchte ich die Tage (jeden Tag nur einmal) auslesen.
also DB befüllt:
2014-01-08 werte1
2014-01-08 werte2
2014-01-08 werte3
2014-01-10 werte1
2014-01-10 werte2
2014-01-10 werte3
2014-01-11 werte1
2014-01-11 werte2
usw....
Ich benötige aber nur:
2014-01-08
2014-01-09
2014-01-10
2014-01-11
usw..
per PHP Abfrage.
Wenn ich "SELECT date FROM `tbl_XxX` Group by date" in phpMyAdmin ausführe
klappt das bestens aber wenn ich das im PHP-Code umsetze erhalte ich nur:
als Countwert: 2 und nur den ersten Wert aus der Tabelle.
Ausgabe: (egal ob ich 0 oder 1 in echo $row[x] einsetze:
2
2014-01-08
Countwert und Ergebnis ist falsch aber warum?
Danke für die Hilfe!
mit Eurer Hilfe, das Problem schnell geklärt zu haben!
Situation:
Es existiert eine Datenbank tbl_XxX, in der jeden Tag 96 Werte eingetragen werden.
Struktur: date (typ DATE) | time (typ time) | value (Typ float)
Für eine Weiterverarbeitung, möchte ich die Tage (jeden Tag nur einmal) auslesen.
also DB befüllt:
2014-01-08 werte1
2014-01-08 werte2
2014-01-08 werte3
2014-01-10 werte1
2014-01-10 werte2
2014-01-10 werte3
2014-01-11 werte1
2014-01-11 werte2
usw....
Ich benötige aber nur:
2014-01-08
2014-01-09
2014-01-10
2014-01-11
usw..
per PHP Abfrage.
Wenn ich "SELECT date FROM `tbl_XxX` Group by date" in phpMyAdmin ausführe
klappt das bestens aber wenn ich das im PHP-Code umsetze erhalte ich nur:
als Countwert: 2 und nur den ersten Wert aus der Tabelle.
$query = mysql_query("SELECT date FROM `tbl_XxX` Group by date");
$row = mysql_fetch_array($query);
$datecount = count($row);
echo $datecount;
echo "</br>";
$row = array_values($row);
echo $row;
Ausgabe: (egal ob ich 0 oder 1 in echo $row[x] einsetze:
2
2014-01-08
Countwert und Ergebnis ist falsch aber warum?
Danke für die Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 227522
Url: https://administrator.de/forum/php-mysql-abfrage-liefert-anderes-ergebnis-als-direkte-mysql-php-myadmin-abfrage-227522.html
Ausgedruckt am: 23.12.2024 um 08:12 Uhr
5 Kommentare
Neuester Kommentar
Hallo,
das Problem ist, dass du das Array $row direkt ansprichst und nicht mit einer Schleife durchläufst:
Außerdem solltest du das Feld "date" in der Abfrage in Hochkommata setzen:
Gruß,
Florian.
das Problem ist, dass du das Array $row direkt ansprichst und nicht mit einer Schleife durchläufst:
<?php
while ($row = mysql_fetch_array($query))
{
echo $row['date'];
}
?>
Außerdem solltest du das Feld "date" in der Abfrage in Hochkommata setzen:
$query = mysql_query("SELECT `date` FROM `tbl_XxX` Group by `date`");
Gruß,
Florian.
Hi,
ich bin grad über deinen thread gestolpert. Auch wenn der schön gelöst ist, noch mal zwei Anstöße von meiner Seite:
- Verwende am besten die PDO Datenbank-Klasse von php (ab 5.1). Die mysql_ ... Befehle sind meines Wissens in den neuen php Versionen bereits alt veraltet gekennzeichnet.
- Wenn du in deinem Ergebnis jeden Tag nur einfach aufgelistet haben willst, kannst du das mit DISTINCT statt mit GROUP erfragen. Wenn auf deinem 'date'-Feld in der DB kein Index soll das angeblich performanter sein.
SELECT DISTINCT(`date`) FROM `tbl_XxX`
Gruß Boulder
ich bin grad über deinen thread gestolpert. Auch wenn der schön gelöst ist, noch mal zwei Anstöße von meiner Seite:
- Verwende am besten die PDO Datenbank-Klasse von php (ab 5.1). Die mysql_ ... Befehle sind meines Wissens in den neuen php Versionen bereits alt veraltet gekennzeichnet.
- Wenn du in deinem Ergebnis jeden Tag nur einfach aufgelistet haben willst, kannst du das mit DISTINCT statt mit GROUP erfragen. Wenn auf deinem 'date'-Feld in der DB kein Index soll das angeblich performanter sein.
SELECT DISTINCT(`date`) FROM `tbl_XxX`
Gruß Boulder