Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Letzten Eintrag (Datum) ausgeben im Thread [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Letzten Eintrag (Datum) ausgeben im Thread


 
sly
30-04-2002, 09:57 
 
Hallo zusammen,

ich hab' mal wieder ein "dusseliges" Problem.
Ihr habt mir zwar prima geholfen bei Lösung meiner Ausgabe der Antworten im Thread, aber jetzt komm' ich einfach nicht weiter bei der Ausgabe der letzten Antworten sortiert nach Datum zu einer bestimmten Frage.
Meine DB-Struktur sieht wie folgt aus:

id datum bezug_id
1 xxxxx 0
2 xxxxx 1
3 xxxxx 0
4 xxxxx 2

def:
id= Eintrag
bezug_id= Antwort auf id

ich weiß, dass es kein eleganter Weg zur Thread-Darstellung,
aber jetzt steht das script einmal so und es funktioniert.
Kann mir trotzdem jemand helfen, wie ich mir die letzten Einträge in Form des Datum anzeigen lassen kann.

Vielen Dank im voraus :confused:
Sly

P.S.: Es gibt zwar schon einige Einträge mit diesem Thema, aber ich habe keine passende Lösung zu meinem Problem gefunden.
Oder bin ich einfach nur blind.

 
Sky
03-05-2002, 12:00 
 
SELECT id FROM tabelle ORDER BY datum DESC

..?

 
sly
03-05-2002, 12:22 
 
Das wäre die Lösung für die letzten Einträge oberster Kategorie, das funzt auch.
Wenn ich jetzt aber mein Thread durchsuche möchte mit allen "Unterantworten" weiss ich nicht weiter.

Kannst Du mir da helfen?

Danke!! Sly

 
sly
15-05-2002, 12:59 
 
Ich habe jetzt das komplette Forum nach meinem Problem durchsucht, habe zwar auch einige Ansätze gefunden, aber immer noch keine Lösung für mein Problem.
Ich habe jetzt die Datumspalte in sql auf timestamp() gesetzt, aber die Sortierfunktion im Thread funktioniert immer noch nicht.
Ich weiss jetzt wirklich nicht mehr weiter.
Ich bin zwar soweit, dass er mir den ganzen durchsucht, aber er gibt mir immer nur das Datum der obersten Kategorie aus.

id datum(timestamp) bezug_id
1 2002326154823 0
2 2002408221228 1
3 2002512113548 2

ausgegeben als letzter Beitrag wird:

2002408221228

Kann mir denn jemand helfen?!
Ich weiss, dass ist nervig - sorry!!!
Aber ich bin am verzweifeln.

Vielen DANK!!!!

 
Titus
15-05-2002, 13:08 
 
ähm ... hast du in deiner Query ein "where bezug_id=" stehen? oder "order by bezug_id, datum"?

 
sly
15-05-2002, 13:12 
 
Also, bei mir steht momentan :

"select datum from diskussion where bezug_id='" . $uebergabe ."' order by datum desc"

 
sly
16-05-2002, 09:40 
 
Ich weiss, dass das mit Sicherheit Anfängerprobleme sind,
aber ich würde so gerne weiterkommen, kann mir denn bitte jemand weiterhelfen?!

Danke, Sly :dontknow:

 
Titus
16-05-2002, 10:24 
 
Du willst zu jeder bezug_id den letzten Eintrag?

select * from Tabelle group by bezug_id order by datum desc

oder

select t1.* from Tabelle t1
left join Tabelle t2 on t1.bezug_id=t2.bezug_id
group by t2.bezug_id
having t1.datum=max(t2.datum)

beides nicht getestet, aber

select * from Tabelle where datum=max(datum) group by bezug_id

reicht nicht, da hier das max(datum) das letzte Datum überhaupt nimmt - unabhängig von der bezug_id.

Möglicherweise muss auch mit zwei Queries gearbeitet werden oder mit einer Schleife ...

 
sly
16-05-2002, 10:26 
 
Danke!! Ich versuch's erst mal so weiter.
Wenn's dann garnicht hinhaut, werd' ich mich "leider" nochmal melden.

Funktioniert das Ganze auch mit Php 3, ich hab leider nur die alte Version zur Verfügung.

Danke, Sly

 
Titus
16-05-2002, 10:32 
 
Das funktioniert auch mit PHP/FI, worauf es ankommt ist die mySQL-Version; und auch die sollte egal sein.
Wenn es funktioniert, dann überall.

 
sly
16-05-2002, 10:39 
 
Dann dank' ich dir erstmal - hoffentlich nicht bis später!! ;-))

 
sly
16-05-2002, 12:16 
 
Sorry!!!
Mir ist gerade beim Ausprobieren deiner Hilfestellung ein Fehler meinerseits aufgefallen.

Im Prinzip brauche ich nicht die letzten Einträge der bezug_id, sondern der id.
Das sollte so ähnlich aussehen wie bei euch im Forum.
Ich kriege eine Frage und darauf x-Antworten.
Die dann in einer Baumstruktur anzeigt werden.
Jetzt möchte ich auf der Einstiegsseite zeigen, wann die letzte Antwort auf eine 1. Fragestellung gegeben wurde.


Ich habe das Ganze mit einer rekursiven Schleife versucht, aber das haut irgendwie nicht hin.
Ich habe mir den Durchlauf der Schleife einmal anzeigen lassen :

1 - 20020408000000 - 9
1 - 20020328000000 - 4
4 - 20020413000000 - 11
2 - 20020417000000 - 25
25 - 20020514000000 - 27
2 - 20020412000000 - 6
2 - 20020325000000 - 3
5 - 20020417000000 - 23
5 - 20020328000000 - 7
12 - 20020415000000 - 18
18 - 20020416000000 - 21

Die letzte Zahl ist die id der Antworten und die vordere Zahl die der Ausgangsfragestellung bzw. die der letzten Antwort auf die dann wieder geantwortet wurde.
Und jetzt möchte ich pro Fragestellung das Datum der letzten Antwort unabhängig davon die wievielte "Unterantwort" es ist.

Ich weiss dass es euch mit Sicherheit nervt, solche dusseligen Newbie Fragen zu beantworten, aber ihr seit die bisher einzigsten, die einem wenigstens Hilfestellung geben.
Ich habe zwar auch einige PHP und MYSQL-Bücher, aber
irgendwie blickt ich da auch nicht immer durch, da ich ja auch garnicht weiss, nach welchem Befehl oder Funktion ich suchen muss.

Viiieeeeeelllllen Daaaannnkkkk!!!!!

 
Titus
16-05-2002, 13:24 
 
Tjahaa ... logisch.
Ich gehe mal davon aus, dass die ersten Posts eines Topics die bezug_id=0 haben.
Dann kann man das rekursiv machen - ich hab´s aber mal iterativ implementiert:
// erste Posts holen
$post = array();
$q = mysql_query("select id, titel, datum from Tabelle where bezug_id=0");
$get = array();
while ($x = mysql_fetch_assoc($q))
{
$datum = array();
$get = array($x['id']);
// jetzt "rekursiv" _alle_ Antworten auf den Post holen
// und ID und Datum der jeweils neuesten speichern:
while (count($get))
{
$q2 = mysql_query("select id, datum from Tabelle where bezug_id in ("
. implode(',', $get). ") order by datum desc");
$get = array(); // hier werden alle IDs zwischengespeichert
for ($i=0; $r = mysql_fetch_row($q2); $i++)
{
$get[] = $r[0];
if (!$i && $r[1]>$x['last_datum'])
{
$x['last_datum'] = $r[1];
$x['last_id'] = $r[0];
}
}
}
$post[] = $x;
}Jetzt muss nur noch das Array $post mittels usort (http://www.php3.de/de/usort) nach einem beliebigen Parameter sortiert werden und fertig.

Natürlich kannst du beliebige Daten aus dem ersten und letzten Post jedes Themas speichern.


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:50 Uhr.