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-Key: 227522

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

Printed on: April 18, 2024 at 16:04 o'clock

Mitglied: 110135
110135 Jan 23, 2014 at 11:38:05 (UTC)
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.
Member: FunkerVogt
FunkerVogt Jan 23, 2014 at 11:43:49 (UTC)
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
Member: Arano
Arano Jan 23, 2014 at 16:30:11 (UTC)
Goto Top
Hi,

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


~Arano
Member: boulder02
boulder02 May 05, 2014 at 07:40:08 (UTC)
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
Member: FunkerVogt
FunkerVogt May 05, 2014 at 08:19:12 (UTC)
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