+ Antworten
Ergebnis 1 bis 6 von 6

Thema: php-sql-problem / Modul mit neuesten Beiträgen

  1. #1
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard php-sql-problem / Modul mit neuesten Beiträgen

    Entschuldigt, den Titel zu schreiben ist nicht einfach.

    Ich bin dabei mir ein Modul zu basteln welches die neuesten Beiträge aus verschiedenen Komponenten zeigt, hübsch nach Datum sortiert.

    Ich hole mir aus der content Tabelle, den Video und Photo Tabellen von hwdvideo/photo share und aus der JComments jeweils (z.B.) 10 der neuesten Einträge.

    Diese verpacke ich dann mit den dazugehörigen html-codes (für den klickbaren titel, link zum userprofil) in ein array. Das sieht dann z.B. so aus:



    Jetzt muss ich dies nach der Spalte Datum sortieren (die liegen im unix-timestamp Format vor)

    Der Versuch eines array_multisort
    Code:
    array_multisort($f_posts, SORT_DESC);
    sortiert nach der img spalte, wenn überhaupt, habe das nicht ganz überprüft (es gibt 4 img typen, für jeweils bild, artikel, video oder kommentar)

    Dann ich denke ich muss das Array Zeilenweise aufbauen

    Code:
    		foreach ($f_posts as $nr => $inhalt) {
    			$img[$nr]  = $inhalt['img'] ;
    			$link[$nr]   = $inhalt['link'] ;
    			$neu[$nr] = $inhalt['neu'] ;
    			$date[$nr] = $inhalt['date'] ;
    			$username[$nr] = $inhalt['user'] ;
    		}
    		array_multisort($date, SORT_DESC, $f_posts);
    Das sortiert zwar dann nach dem Datum, aber auch nur jeweils nach img gruppiert...

    Was mache ich falsch?

    Hat jemand vielleicht einen anderen Lösungsweg? Die ganzen SQL-Abfragen in eine zu packen und bereits zu sortieren, das ist wohl kaum möglich? das übersteigt bei weitem meine kenntnisse

    Vielen vielen dank
    Geändert von Igather (07.01.2011 um 23:07 Uhr)
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Wichtig: Joomla - FAQ
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Web-Projekt: Warum tragen Musliminnen Kopftuch?

  2. #2
    OpenSource Nutzer Avatar von blackice2999
    Registriert seit
    18.05.2006
    Ort
    Berlin
    Alter
    32
    Beiträge
    3.639
    Bedankte sich
    112
    Erhielt 935 Danksagungen
    in 711 Beiträgen

    Standard

    Hi,

    die Daten aus der Datenbank zu holen und erst dann nach Datum zu sortieren macht wenig sinn... das was Du suchst ist "ORDER BY".

    http://dev.mysql.com/doc/refman/5.0/en/select.html

    Gruß Dennis
    Thread gelöst ? => Anleitung
    Wichtige Themen => Joomla FAQ | Flottes Sicherheitsliste
    Einfach nur so => Geiz ist doch geil oder?
    *dies ist ein Joomla Forum - Kein css / html Anfänger Forum...*

  3. #3
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Wirklich vielen Dank für deine Antwort!

    Ich weiss ja das ist total umständlich, aber wie kann man es denn sonst machen?

    Also ich habe ja 4 verschiedene Abfragen, die dann jeweils die Artikel, die Fotos, die Videos und die Kommentare aus der Datenbank holen.

    Kann ich denn das ganze in einer SQL-Abfrage lösen? Ich bin absolut kein SQL-Profi. Hier sind die Abfragen:
    Code:
    SELECT co.id,co.title,co.catid,co.created,cat.username
    FROM jos_content AS co
    INNER JOIN jos_users AS cat ON co.created_by = cat.id
    WHERE state = 1
    ORDER BY ID DESC
    LIMIT 0,7
    
    SELECT pic.id,pic.title,pic.date_uploaded,cat.category_name,us.username
    FROM jos_hwdpsphotos AS pic
    INNER JOIN jos_hwdpscategories AS cat ON cat.id = category_id
    INNER JOIN jos_users AS us ON pic.user_id = us.id
    WHERE pic.published = 1
    ORDER BY pic.id DESC
    LIMIT 0,7
    
    
    SELECT v.id,v.title,v.date_uploaded,us.username
    FROM jos_hwdvidsvideos AS v
    INNER JOIN jos_users AS us ON v.user_id = us.id
    WHERE v.approved = 'yes'
    ORDER BY v.date_uploaded DESC
    LIMIT 0,7
    
    
    SELECT j.id,j.username,j.date,j.object_group,j.object_id,cont.catid,cont.title AS artitle,vids.title AS vidtitle, gal.title AS galtitle
    FROM (jos_jcomments AS j
    LEFT JOIN jos_content AS cont ON cont.id = j.object_id)
    LEFT JOIN jos_hwdpsphotos AS gal ON gal.id = j.object_id
    LEFT JOIN jos_hwdvidsvideos AS vids ON vids.id = j.object_id
    WHERE j.published = 1 
    ORDER BY j.id DESC
    LIMIT 0,19
    Um die korrekten Links in der Abfrage zu bekommen brauche ich die verschiedenen Angaben, z.B. die ID des Bildes oder die Kategorie-ID des Artikels... (Die Limit angaben sind nur zufällige beim testen, das Modul holt jeweils soviele wie in den parametern angegeben sind (man stellt ein wieviele neue Beiträge angezeigt werden) (es können ja z.B. nur 10 neue kommentare sein)

    Das komplizierteste davon ist die letzte Abfrage für die JComments, da muss nach der object_group (also was kommentiert wurde) der ausgabe-link gebastelt werden.

    ooh.. hilfee...


    Nachtrag: Ich verstehe es wirklich nicht, denn das Array zuerst aufzuteilen und dann zu sortieren sollte der richtige lösungsweg sein, aber irgendwas mache ich falsch, hier ist eine Anleitung, ich meine ich habs genauso klick mich...
    Geändert von Igather (07.01.2011 um 22:56 Uhr)
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Wichtig: Joomla - FAQ
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Web-Projekt: Warum tragen Musliminnen Kopftuch?

  4. #4
    War schon öfter hier
    Registriert seit
    04.10.2008
    Beiträge
    178
    Bedankte sich
    25
    Erhielt 4 Danksagungen
    in 4 Beiträgen

    Standard

    Ah ok es scheint gelöst zu sein.

    Also das multisort funktioniert richtig laut dem Beispiel im letzten Link (php-kurs.com)

    Ich habe nur Fehler gemacht bei dem füllen und formatieren des Arrays vorher. Die Datumsfelder waren nicht richtig befüllt, also konnte danach auch nicht sortiert werden

    Falls aber jemand einen klügeren Lösungsweg hat, gerne!
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Wichtig: Joomla - FAQ
    ~*~*~*~*~*~*~*~*~*~*~*~*
    Web-Projekt: Warum tragen Musliminnen Kopftuch?

  5. #5
    OpenSource Nutzer Avatar von blackice2999
    Registriert seit
    18.05.2006
    Ort
    Berlin
    Alter
    32
    Beiträge
    3.639
    Bedankte sich
    112
    Erhielt 935 Danksagungen
    in 711 Beiträgen

    Standard

    Hi,

    ich denke Du solltest dich einfach erstmal mit den Grundlagen der Joomla API beschäftigen, ein normaler PHP kurs... alleine nützt Dir nicht viel da Du in viele Probleme rennen kannst. Ein guter Anfangspunkt ist: http://api.joomla.org und http://docs.joomla.org

    Gruß Dennis
    Thread gelöst ? => Anleitung
    Wichtige Themen => Joomla FAQ | Flottes Sicherheitsliste
    Einfach nur so => Geiz ist doch geil oder?
    *dies ist ein Joomla Forum - Kein css / html Anfänger Forum...*

  6. #6
    Joomla Guru Avatar von elkuku
    Registriert seit
    14.06.2006
    Ort
    Guayaquil - Südamerika
    Beiträge
    1.689
    Bedankte sich
    74
    Erhielt 517 Danksagungen
    in 397 Beiträgen

    Standard

    Zitat Zitat von blackice2999 Beitrag anzeigen
    Ein guter Anfangspunkt ist:...
    ...natürlich auch das http://wiki.joomla-nafu.de/
    Gruß,
    Nikolai
    Hilf mit: Deutsche Joomla! Dokumentation Help testing: EasyCreator Noch Fragen ? Forum.Joomla-Nafu.de

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein