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 15-10-2007, 13:26
DaGuertliz
 Registrierter Benutzer
Links : Onlinestatus : DaGuertliz ist offline
Registriert seit: Nov 2003
Ort: Kiel
Beiträge: 304
DaGuertliz ist zur Zeit noch ein unbeschriebenes Blatt
DaGuertliz eine Nachricht über ICQ schicken
Standard Zwei Tabellen limitiert verknüpfen

Hi Leute,

ich bin total verzweifelt ...

Ich habe zwei Tabellen:

fotogb fotos
-----------------------------------------------

fotogb_id --------1-- foto_id
foto_id -----n--------- pfad
user_id
inhalt


In "fotogb" werden Kommentare zu den Bildern, die in "fotos" gespeichert werden, gespeichert.

Nun möchte ich in einer Abfrage die letzten zehn Kommentare der neuesten zehn Bilder abfragen.


Bisher löse ich das Problem wie folgt (vereinfacht dargestellt):

Code:
select * from fotos limit 1,10
while ($row=mysql(fetch_object()) {
        "zeige Bild an"
        select * from fotogb where foto_id = $row-> foto_id order b fotogb_id DESC limit 0,10
        while ($row2=mysql_fetch_object()) {
                "zeige kommentar an"
       }
}
Das kann nicht optimal sein, weil ich so 11 (!) Abfragen gegen die DB starte ...


Mit einem Subselect krieg ich es nicht hin, mit einem Join krieg ich es nicht hin ...

Ich beschäftige mich seit vielen Monaten damit und ich krieg es einfach nicht hin ...

Hat von euch jemand einen Denkansatz ?!?

Ich danke euch so sehr ...
__________________
Yeah !
Mit Zitat antworten
  #2 (permalink)  
Alt 15-10-2007, 15:49
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Seit vielen Monaten? Zeig doch mal deine Ansätze.
Mit Zitat antworten
  #3 (permalink)  
Alt 15-10-2007, 16:03
DaGuertliz
 Registrierter Benutzer
Links : Onlinestatus : DaGuertliz ist offline
Registriert seit: Nov 2003
Ort: Kiel
Beiträge: 304
DaGuertliz ist zur Zeit noch ein unbeschriebenes Blatt
DaGuertliz eine Nachricht über ICQ schicken
Standard

Ich habe ehrlich gesagt keinen brauchbaren Ansatz.

Eine Lösung über einen Join funktioniert nicht, weil ich hier nur entweder die Anzahl der Kommentare oder die Anzahl der Bilder begrenzen kann.

In einem SubSelect ist es nicht möglich, eine Limit-Anweisung mit anzugeben.

Ich liege manchmal nachts wach im Bett und grüble ... aber mir fällt nix ein ...


Ich hab auch schon darüber nachgedacht, das mit Views zu lösen - aber auch das bringt nix ...
__________________
Yeah !
Mit Zitat antworten
  #4 (permalink)  
Alt 15-10-2007, 19:55
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
select * from fotogb where foto_id IN (
  select foto_id from fotos limit 1,10
) order b fotogb_id DESC limit 0,10
Mit Zitat antworten
  #5 (permalink)  
Alt 15-10-2007, 20:26
DaGuertliz
 Registrierter Benutzer
Links : Onlinestatus : DaGuertliz ist offline
Registriert seit: Nov 2003
Ort: Kiel
Beiträge: 304
DaGuertliz ist zur Zeit noch ein unbeschriebenes Blatt
DaGuertliz eine Nachricht über ICQ schicken
Standard

Hab ich auch schon versucht - mit folgendem Ergebnis :

[tabelle] ERROR 1235: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Sonst wäre das zu geil *g*
__________________
Yeah !
Mit Zitat antworten
  #6 (permalink)  
Alt 15-10-2007, 21:21
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Dann update halt MySQL...
Oder du markierst die letzten 10 Kommentare immer besonders, dann kannst du nach dem Kriterium joinen.
UPDATE kommentare SET neu = 0;
UPDATE kommentare SET neu = 1 ORDER BY id DESC LIMIT 10;
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

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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

EJS TreeGrid ansehen EJS TreeGrid

EJS TreeGrid is DHTML component written in pure JavaScript to display and edit data in table, grid, tree view or grid with tree on HTML page

09.04.2019 coqsoft@ | Kategorie: JAVASCRIPT/ Components
Suchmaschine redaktionell, Branchenportal zum Geld verdienen

Programmbeschreibung Die Bezahl-Suchmaschine ist in Perl und PHP programmiert (eigenes CGI-Verzeichnis notwendig), benötigt PHP aber keine MySQL-Datenbank. Webmaster haben mit dieser Suchmaschine neben der normalen kostenlosen Registrierung von Lin

06.04.2019 skripte@ | Kategorie: PHP/ Suchmaschinen
Oog Photo-Video-Gallery

Mit Oog Photo-Gallery können Sie einfach und stilvoll Bilder (auch Video & Audio) auf Ihrem PHP5-Webserver veröffentlichen und verwalten. Lizenz: GNU GPL v2

06.04.2019 trottbrand@ | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

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