funkervogt
Goto Top

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.

          $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!

Content-ID: 227522

Url: https://administrator.de/contentid/227522

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

110135
110135 23.01.2014 um 12:38:05 Uhr
Goto Top
Hallo,

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.
FunkerVogt
FunkerVogt 23.01.2014 um 12:43:49 Uhr
Goto Top
Danke Florian, das war es!

Das mit der Schleife wollte ich später erst einbauen.
Ich prüfe gern alles Schritt für Schritt!
Das mit den Hochkommatas ist richtig wurde von mir
zwischenzeitlich schon korrigiert!

problem gelöst

Daaaanke!


Gruß Uwe
Arano
Arano 23.01.2014 um 17:30:11 Uhr
Goto Top
Hi,

mal zusätzlich zur Info: PHP-Manual - mysql_num_rows()


~Arano
boulder02
boulder02 05.05.2014 um 09:40:08 Uhr
Goto Top
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
FunkerVogt
FunkerVogt 05.05.2014 um 10:19:12 Uhr
Goto Top
Vielen Dank für Deine Tips!
Sollte ich noch einmal in die Verlegenheit dieses Problems kommen, denke ich daran!

Super von Dir, dass Du dennoch Ratschläge trotz "erledigt" gibst!


Gruss

Uwe