| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

09-04-2011, 13:01
|
|
Prominenter
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 136
|
|
Array nur die letzten 3 werte ausgeben
Hi@all
PHP-Code:
$row=@mysql_fetch_array($result);
{
hier möchte ich nur die letzten 3 Einträge haben, insgesamt sind je nach query-Abfrage unterschiedlich viele einträge vorhanden.
}
Beispiel:
Abfrage ergibt: 1 -2 -3 -4 -5
ich möchte aber nur 3 -4 -5 ausgeben
Thx@all
|

09-04-2011, 13:04
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
wenn du stattdessen mysql_fetch_assoc() verwendest, kannst du über die Spaltennamen der Tabelle auf $row zugreifen, z. B. $row['vorname']
Edit: Solltest du dagegen die letzten drei Datensätze meinen (deine Fragestellung war dahingehend vage), sortiere das Ergebnis anders herum (ORDER BY ... DESC) und arbeite mit einer Limit-Klausel (LIMIT 3).
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
Geändert von AmicaNoctis (09-04-2011 um 13:09 Uhr)
|

09-04-2011, 13:10
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Warum selektierst du nicht im SQL-Query genau die Einträge, die du brauchst? Warum ladest du Daten, die du gar nicht haben willst?
|

09-04-2011, 13:18
|
|
Prominenter
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 136
|
|
PHP-Code:
$result_last=mysql_query("
SELECT id, vorname, nachname, geburt
FROM ".$dbtable."
WHERE ((DATE_FORMAT(geburt, \"%m%d\") < DATE_FORMAT(CURRENT_DATE, \"%m%d\")) && (geburt!='0000-00-00'))
ORDER BY (DATE_FORMAT(geburt, \"%m%d\")) DESC
Limit 3");
while($row=@mysql_fetch_array($result_last))
{
AUSGABE
}
bekomme als Beispiel jetzt:
23.03.2011 - 27.02.2011 - 26.02.2011
möchte es aber genau andersherum:
26.02.2011 - 27.02.2011 - 23.03.2011
Thx@all
|

09-04-2011, 13:21
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Stecke die Abfrage in ein Sub-Select und sortiere außerhalb nochmal in die andere Richtung.
Alternative: Schreib mit PHP die Werte in ein Array und verwende dann array_reverse().
Warum verwendest du überall @? Dies unterdrückt Fehlermeldungen, was man tunlichst unterlassen sollte. Fehler sollte man nicht ignorieren, sondern behandeln.
|

09-04-2011, 13:49
|
|
Prominenter
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 136
|
|
Zitat:
Zitat von h3ll
Stecke die Abfrage in ein Sub-Select und sortiere außerhalb nochmal in die andere Richtung.
|
Sorry, versteh ich nicht
Zitat:
Zitat von h3ll
Alternative: Schreib mit PHP die Werte in ein Array und verwende dann array_reverse().
|
$result = array_reverse($result_last);
bekomme ich ne Fehlermedlung: array_reverse() expects parameter 1 to be array
???
Thx@all
|

09-04-2011, 13:56
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Prominenter
Sorry, versteh ich nicht
|
http://www.google.com/search?q=mysql+subselect
Zitat:
$result = array_reverse($result_last);
bekomme ich ne Fehlermedlung: array_reverse() expects parameter 1 to be array
|
Ist $result_last etwa ein Array?
Nein, ist es natürlich nicht.
Lerne bitte Grundlagen - du scheinst noch sehr wenig Ahnung zu haben, was dein Code überhaupt tut, bzw. wo welche Art von Datentyp vorliegt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

09-04-2011, 14:01
|
|
Prominenter
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 136
|
|
Zitat:
Zitat von wahsaga
Ist $result_last etwa ein Array?
Nein, ist es natürlich nicht.
|
Etwa nicht, die mysql Abfrage wird doch als Array zurückgegeben oder ?
$result_last=mysql_query("...");
?
Thx@all
|

09-04-2011, 14:05
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Nein, wird sie nicht, sie wird als Ressource zurückgegeben. Deswegen muss man ja die Datensätze auch mit mysql_fetch_* abrufen. Dabei kann man die Daten in ein Array schreiben oder direkt ausgeben oder was auch immer. Das steht aber alles auch im Handbuch.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

09-04-2011, 14:24
|
|
Prominenter
Registrierter Benutzer
|
|
Registriert seit: Apr 2004
Beiträge: 136
|
|
Thx@all
PHP-Code:
while( $row = @mysql_fetch_array($result_last) )
{
$resultset[] = $row;
}
$resultset = array_reverse($resultset);
foreach($resultset as $row)
{
echo ' AUSGBAE ';
}
Kann geschlossen werden.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|