php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-12-2006, 10:21
BlackPixel
 Member
Links : Onlinestatus : BlackPixel ist offline
Registriert seit: Dec 2002
Ort: Tuttlingen
Beiträge: 253
BlackPixel ist zur Zeit noch ein unbeschriebenes Blatt
Standard [SQL allgemein] Die letzten Einträge aus der DB holen

Hallo Gemeinde,

mal wieder was von mir, ich brauch eine Denkhilfe.

Folgendes Programm:

EDIT:
Code wegen Überbreite entfernt. Neuer Versuch.
wahsaga



Ich hole mir aus "phpbb_posts" die letzten 10 Einträge.
Danach hole ich mir aus phpbb_topics die Thementitel die dazu gehören.
Am schluss baue ich mir nen Link auf den Topictitle

Soweit so gut. Dumm ist an dem Programm, das wenn 3 Post`s in einem Thread sind, ich als ausgabe logischerweise auch die 3 Post`s bekomme. Klar.
Wie kann ich erreichen, das dies nicht passiert? Also im Prinzip, ist die topic_id schon ausgelesen, dann diese nicht nochmal auslesen in verbindung mit einem anderen Post.
Ohne das sich das Limit bei der ersten Abfrage verkleinert?
Gibt`s da eine art UNIQUE das ich im Statement verwenden kann?

Danke für nen Schubs

Geändert von wahsaga (11-12-2006 um 10:23 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 11-12-2006, 10:33
BlackPixel
 Member
Links : Onlinestatus : BlackPixel ist offline
Registriert seit: Dec 2002
Ort: Tuttlingen
Beiträge: 253
BlackPixel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sorry @wahsaga

Also gut, neuer Versuch.

Idee ist es, vor die Abfragen nochmal eine Schleife zu setzen die mir die Topic ID`S als UNIQUE ausliest. ALs ergebnis bekomme ich allerdings nur noch eine Zeile, obwohl Limit auf 10 eingestellt ist:

PHP-Code:
$query_getuniquetopic "SELECT DISTINCT topic_id as unique_topic_id FROM phpbb_posts ";
$query_getuniquetopic.= " order by post_id DESC LIMIT 10";
$res_getuniquetopic $GLOBALS['TYPO3_DB']->sql_query($query_getuniquetopic);
if (
$GLOBALS['TYPO3_DB']->sql_error()) 
debug(array($GLOBALS['TYPO3_DB']->sql_error(), $query_getuniquetopic));              

while (
$row_getuniquetopic $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_getuniquetopic))
    {

        
$query_getnewpost "SELECT post_id as getnewpost_post_id, topic_id as getnewpost_topic_id 
        FROM phpbb_posts "
;
        
$query_getnewpost.= " WHERE topic_id = "$row_getuniquetopic["unique_topic_id"] ."";
        
$res_getnewpost $GLOBALS['TYPO3_DB']->sql_query($query_getnewpost);
        if (
$GLOBALS['TYPO3_DB']->sql_error()) 
        
debug(array($GLOBALS['TYPO3_DB']->sql_error(), $query_getnewpost));              
    
        while (
$row_getnewpost $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_getnewpost))
            {
                
$getnewpost_topic_id $row_getnewpost["getnewpost_topic_id"];
                
$query_gettopic "select topic_id as topic_id, topic_title as topic_title 
                from phpbb_topics "
;
                
$query_gettopic.= "WHERE topic_id = ".$getnewpost_topic_id."";
                
$query_gettopic.= " order by topic_id DESC";
                
$res_gettopic $GLOBALS['TYPO3_DB']->sql_query($query_gettopic);
                if (
$GLOBALS['TYPO3_DB']->sql_error()) 
                
debug(array($GLOBALS['TYPO3_DB']->sql_error(), $query_gettopic));              
    
                while (
$row_gettopic $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res_gettopic))
                    {
                        
$post_id $row_getnewpost["getnewpost_post_id"];
    
                        
$content.= "<a href =\"http://www.dslr-seite.de/fpost"
                        
.$post_id.".html#".$post_id."\">"
                        
.$row_gettopic["topic_title"]."</a><br />";
        
                    }
            }
        
    return 
$content;
    } 
Bin ich auf dem richtigen weg?

Geändert von BlackPixel (11-12-2006 um 10:36 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 11-12-2006, 12:21
BlackPixel
 Member
Links : Onlinestatus : BlackPixel ist offline
Registriert seit: Dec 2002
Ort: Tuttlingen
Beiträge: 253
BlackPixel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für diejenigen die angefangen haben sich den Kopf zu zerbrechen.

hatte das return in der falschen Schleife plaziert

Eins runter dann kommt das richtige ergebnis zu Tage

Bis zum nächsten mal
Mit Zitat antworten
  #4 (permalink)  
Alt 11-12-2006, 15:35
BlackPixel
 Member
Links : Onlinestatus : BlackPixel ist offline
Registriert seit: Dec 2002
Ort: Tuttlingen
Beiträge: 253
BlackPixel ist zur Zeit noch ein unbeschriebenes Blatt
Standard [MySQL 3.23.X] DISTINCT und WHERE haut nicht hin

Hallo Gemeinde,

ich glaub ich komm jetzt wieder öfter

PHP-Code:
$query_getuniquetopic "SELECT DISTINCT topic_id as unique_topic_id FROM phpbb_posts ";
$query_getuniquetopic.= " order by post_id DESC";
$query_getuniquetopic.= " LIMIT 10"
Einfache Sache: ich hole mir aus der tabelle alle topic_id`s. Um gleiche Einträge auszusortieren benutze ich DISTINCT. Funktioniert ohne Probleme.
Gebe ich hinten nun noch ein WHERE Statement mit an, klappt gar nichts mehr.

Das schaut dann so aus:

PHP-Code:
$query_getuniquetopic "SELECT DISTINCT topic_id as unique_topic_id FROM phpbb_posts";
$query_getuniquetopic.= " WHERE forum_id != 21 ";
$query_getuniquetopic.= " order by post_id DESC";
$query_getuniquetopic.= " LIMIT 10"
Anstatt nun den einen Eintrag, den die Where KLausel betrifft, auszulassen, bekomme ich irgendwelche älteren Einträge angezeigt. Woran liegt das?

Nehm ich das Where wieder raus, passt die ganze Ausgabe... bis halt auf das, was raus soll.

Jemand eine Idee?
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:51 Uhr.