php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.12.2011, 19:58  
Neuer Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
n10n50 befindet sich auf einem aufstrebenden Ast
Standard [MySQL] DB-Abfrage, nach jedem 2. Datensatz eine "Zwischenseite"

Guten Abend zusammen,

ich hätte da mal eine Frage zu einer Abfrage, bzw. welche Möglichkeiten es gibt dieses Problem zu lösen.


Situation:
Es gibt eine MySQL-Tabelle die mehere Datensätze enthält, eine Spalte davon ist ein 0/1 Feld (werbung).

Es sollen jetzt sämtliche Datensätze mittels "WHERE werbung = 0 ORDER BY rand()" ausgelesen werden.
Allerdings sollen gleichzeitig auch alle Datensätze wo werbung = 1 zufällig ausgewählt werden.

Die Ausgabe sollte dann sein, dass immer 2 "normale" Datensätze ausgegeben werden und jeder dritte Datensatz ein Werbedatensatz ist...

Deswegen auch die rand() Sortierung - damit die Ausgabe immer zufällig passiert.


Sollten zu wenig Werbedatensätze da sein, um nach jeden 3. normalen Datensatz eine neue Werbung einzubinden, sollte einfach die Werbung wieder von vorne begonnen werden.

Wenn mehr Werbung da ist, soll die hinten einfach "abgeschnitten" werden,
da ja mittels rand() Sortierung sowieso jedesmal andere Werbung vorne dabei ist.


Ich hoffe ich habe mein Problem so gut wie ich konnte erklären können.
Hat da jemand eine einfache Lösung?


Derzeit ist meine Überlegung nämlich mit mehreren verschachtelten Schleifen zu arbeiten...


LG
n10n50 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.12.2011, 20:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

1) Was für Daten sind das? Haben die keine natürliche Sortierung
2) Zufällig und „von vorne beginnen“ widerspricht sich
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.12.2011, 20:12  
Neuer Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
n10n50 befindet sich auf einem aufstrebenden Ast
Standard

Die Datensätze könnte man als Newsbeiträge sehen (id, titel, text, link, werbung).
Eindeutig ansprechbar sind sie über das Feld id (Primary Key, auto_increment).

Allerdings entspricht der Erfassungszeitpunkt nicht der Sortierreinfolge.


Was ich meine ist das sätmliche Einträge (Titel, Text, Link) zufällig sortiert ausgegeben werden sollen über das Feld 'werbung' wird im Adminbereich per Chechbox ausgewählt ob es Werbung ist oder nicht (0/1).


Also so soll es dann rauskommen:
News 8
News 2
Werbe-News 9
News 1
News 6
Werbe-News 2
News 4
News 3
Werbe-News 7
News 7
News 5
Werbe-News 1
News 8
....

D.h. es sollen alle News ausgegeben werden, allerdings bei den Werbe-News soll mit der Ausgabe gestoppt werden, sobald keine "echten" News mehr vorhanden sind.

Gibt es z.B. nur 2 Werbe News, dann so:
News 8
News 2
Werbe-News 2
News 1
News 6
Werbe-News 1
News 4
News 3
Werbe-News 2
News 7
News 5
Werbe-News 1
News 8
...



Wie gesagt handelt es sich um komplett gleiche Daten, nur sollen halt die Werbenews immer genau als drittes kommen...
n10n50 ist offline   Mit Zitat antworten
Alt 08.12.2011, 20:14  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Aber müssen die „echten“ News nicht sortiert sein? Nach Datum und Uhrzeit? Finde das irgendwie unlogisch.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.12.2011, 20:17  
Neuer Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
n10n50 befindet sich auf einem aufstrebenden Ast
Standard

Nein, die sollten wenn möglich auch zufällig sein.
Sind nämlich nicht wirklich News, sondern Empfehlungen mit Titel, Text und Link.

Allerdings ist das bei meinem Problem eher nebensächlich - welche Daten es genau sind.
Geht nur um das Problem an sich, Datenstruktur klarerweise die selbe.
Typ der Mitteilung wird über ein bestimmtes Feld geregelt und die Daten sollen mehr oder weniger zufällig ausgelesen werden - allerdings mit Werbung dazwischen


Bzw. auch wenn die "echten" News sortiert rauskommen würden - würde mein Problem, dass ich nicht weiß wie ich die Werbung dazwischen bekomme, das Selbe bleiben
n10n50 ist offline   Mit Zitat antworten
Alt 08.12.2011, 20:42  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Lies alles aus der DB aus und mach die Logik in PHP. Den Zugriff auf die Werbedatensätze kannst Du mit einem fortlaufenden Zähler gestalten.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 08.12.2011, 22:01  
Neuer Benutzer
 
Registriert seit: 09.05.2011
Beiträge: 4
PHP-Kenntnisse:
Fortgeschritten
n10n50 befindet sich auf einem aufstrebenden Ast
Standard

So habe ich es bis jetzt, wollte es allerdings direkt in der Abfrage basteln - wenn soetwas möglich währe...
n10n50 ist offline   Mit Zitat antworten
Alt 08.12.2011, 22:03  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Glaube ich kaum.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] MySQL: Verschachtelte Abfrage? SupremeC Datenbanken 2 24.08.2011 14:13
[Erledigt] In Abfrage fehlt ein Datensatz!? pfump Datenbanken 2 18.01.2011 13:11
Während der Abfrage prüfen, ob 1 Datensatz mindestens gefunden wurde!?? nimmme01 Datenbanken 3 25.06.2010 00:13
[Erledigt] [MySQL] Keine Ausgabe bei Variable in Abfrage Bodda_ Datenbanken 2 25.05.2010 11:18
Optimierung einer Abfrage eines Datensatzes samt Vorgänger und Nachfolger Sirke Datenbanken 7 28.04.2010 17:11
result Variablen von SQL verbinden vci PHP Tipps 2010 15 05.02.2010 19:09
Scriptsuche [Erledigt] SQL- Abfrage über 2 tabellen ejim Scriptbörse 1 17.07.2009 21:10
[Erledigt] Tabelle automatisch generieren scheffie PHP Tipps 2009 18 07.06.2009 16:17
Wiemache ich eine Abfrage über 3 Tabellen??? djscaleo Datenbanken 8 05.01.2009 10:46
Bei Abfrage nur neuestes Datum auswählen alexh PHP Tipps 2008 16 22.09.2008 17:43
[mysql] Abfrage nach Monaten von Jan - Dez PHP Tipps 2005 4 11.05.2005 13:04
[mysql] verknüpfte kalender abfrage aktionkuba Datenbanken 6 28.04.2005 10:53
[MySQL] Problem mit einer verschachtelten Abfrage aktionkuba Datenbanken 7 06.04.2005 14:07
Abfrage funktioniert zwar, aber nicht korrekt Datenbanken 2 16.08.2004 09:10
Abfrage aus DB noch mal ausgeben und Abfrage aus mehrern Tab PHP Tipps 2004 4 12.07.2004 15:00

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql nach jedem zweiten eintrag, 2 datensätze abfrage

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum