 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.02.2002, 10:37
|
#1
|
|
TP-Senior
Registriert seit: Sep 2001
Ort: Iserlohn
|
Banner rotieren mit PHP&mySQL
Hallo Leuts,
ich hab mir ein kleines Banner-Select erstellt, welches folgendermaßen aussieht:
SELECT *
FROM banner
WHERE Aktiv = 1 AND
(max_views = 0 OR max_views > views) AND
(max_clicks = 0 OR max_clicks > clicks) AND
(start = 0 OR start < $temp) AND
(stop = 0 OR stop > $temp)
ORDER BY rollup ASC";
Aktiv sagt ob Banner aktiv ist,
max_views sagt, wie oft ein Banner angezeigt werden darf,
views sagt, wieoft der Banner zur Zeit schon angezeigt wurde,
max_clicks sagt, wie oft ein Banner angeklickt werden darf,
clicks sagt, wieoft der Banner zur Zeit angeklickt wurde,
start sagt, wann der Banner angezeigt werden soll,
stop sagt, wann der Banner nicht mehr angezeigt werden soll,
rollup sagt, wann der Banner zuletzt angezeigt wurde,
$temp hat die aktuelle Zeit.
Das doofe ist, das dieses Select die Banner selektiert, die noch nicht das start-Datum erreicht haben!
Mache ich aber ein SELECT über phpmyadmin, ohne das Aktiv = 1 AND, dann wird ordnungsgemäß selektiert...
Kann mir jemand sagen, was ich da falsch gemacht habe?? Definitiv liegt es an Aktiv. Aber wo und wie soll ich das als Kriterium angeben??
Vielen Dank im voraus.
__________________
Dreamflower.
|
|
|
20.02.2002, 17:00
|
#2
|
|
Registered User
Registriert seit: Feb 2002
|
Re: Banner rotieren mit PHP&mySQL
.
Geändert von Radoo.de (07.09.2003 um 08:30 Uhr).
|
|
|
20.02.2002, 19:34
|
#3
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Re: Banner rotieren mit PHP&mySQL
Zitat:
Original geschrieben von Dreamflower
SELECT *
FROM banner
WHERE Aktiv = 1 AND
(max_views = 0 OR max_views > views) AND
(max_clicks = 0 OR max_clicks > clicks) AND
(start = 0 OR start < $temp) AND
(stop = 0 OR stop > $temp)
ORDER BY rollup ASC";
|
mmhh... also irgendwie komm ich mit dem Start und Stop auch nicht klar...
Wenn du alle ziehen willst, die die Startzeit schon überschritten haben, dann muss es doch heißen
"start = 0 OR start > $temp"...
gesprochen: "Alle aus Start, die keine Startzeit gegeben haben ODER allen bei dennen die Startzeit größer, als die aktuelle Zeit ist."
ich hoffe das ist zu verstehen...
probier mal
Gruß Jan
|
|
|
20.02.2002, 20:24
|
#4
|
|
TP-Senior
Registriert seit: Sep 2001
Ort: Iserlohn
|
Zitat:
|
Was bedeutet denn start = 0?
|
Start = 0 bedeutet, das es sofort angezeigt wird, wenn der Banner aktiviert wird.
Stop = 0 ist das gleiche. Hört also nicht mehr auf angezeigt zu werden, bis es deaktiviert wird.
max_views = 0 heißt, daß es eine unbegrenzte Anzeigen von Banner geben darf.
max_clicks = 0 heißt also, daß es unbegrenzt viele Clicks auf den Banner geben darf.
Und das steht auch so in der DB.
Zitat:
|
"Alle aus Start, die keine Startzeit gegeben haben ODER allen bei dennen die Startzeit größer, als die aktuelle Zeit ist."
|
Nein, das müßte umgekehrt heißen, um die Banner zu selektieren, bei denen die Startzeit kleiner ist als die aktuelle Zeit.  Jetzt nicht verwirren lassen.
Wie schon gesagt: mit einem normalen Select ohne das Kriterium Aktiv = "1" funktionieren diese ganzen Bedingungen einwandfrei. Nur ich will aber die unaktiven Banner logischerweise nicht drinhaben...
__________________
Dreamflower.
Geändert von Dreamflower (21.02.2002 um 11:47 Uhr).
|
|
|
20.02.2002, 21:19
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Zitat:
Nein, das müßte umgekehrt heißen, um die Banner zu selektieren, bei denen die Startzeit kleiner ist als die aktuelle Zeit. Jetzt nicht verwirren lassen.
|
 Also du willst doch alle Banner abfragen, die zu einem bestimmten Zeitpunkt (abhängig von $temp) zur Verfügung stehen, oder?? Wenn ja, und du so abfragst, wie du es machst, Zeigt er dir alle Banner an, die Aktiv sind und die Startzeit noch nicht erreicht ist... deshalb meine ich, dass es andersherum muß.
Es ist auch logisch, wenn du das Aktiv = 1 wegläßt, dass er dir dann halt alle Anzeigt, bei denen die Startzeit noch nicht erreicht ist.
Zitat:
|
Das doofe ist, das dieses Select die Banner selektiert, die noch nicht das start-Datum erreicht haben!
|
Also, entweder hast du jetzt einen Denkfehler gemacht, oder ich...  Hast du es denn mal ausprobiert?
|
|
|
21.02.2002, 09:24
|
#6
|
|
Registered User
Registriert seit: Feb 2002
|
.
Geändert von Radoo.de (07.09.2003 um 08:30 Uhr).
|
|
|
21.02.2002, 09:31
|
#7
|
|
TP-Senior
Registriert seit: Sep 2001
Ort: Iserlohn
|
 Wenn ich doch ein Start > $temp mache, dann habe ich nur die Banner selektiert, die in der Zeit noch nicht aktiv sind. Deine Lösung würde sagen, daß das Startdatum für die Banner größer sein muß, als die aktuelle Zeit, um selektiert zu werden...?!? Und somit ist das doch falsch, weil doch der Zeitstempel immer größer wird und das Startdatum irgendwann überschritten werden muß, um selektiert werden zu können...
Ich habe Deine Methode Start > $temp mal ausprobiert und es selektiert alle Banner die noch nicht angezeigt werden dürfen.
EDIT: Definitiv muß es am Aktiv = 1 liegen. Vielleicht setzt er nämlich diese Bedingung als höchste Bedingung...kA.
__________________
Dreamflower.
|
|
|
21.02.2002, 14:13
|
#8
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
argh... jetzt hats klick gemacht...  Da hatte ich irgendwie ein Brett vorm Kopf... *schäm*
Ich denke mal es wäre einfacher, wenn du mal einen Testdumb der Tabelle machst, und den an deinen Post ranhängst... Denn mit Probieren ist das Problem vielleicht leichter zu finden... bzw. die Lösung.
Also...
Gruß Jan
|
|
|
22.02.2002, 08:27
|
#9
|
|
TP-Senior
Registriert seit: Sep 2001
Ort: Iserlohn
|
hier mal ein Testdump.
Viel Spaß beim tüfftellen. 
__________________
Dreamflower.
|
|
|
22.02.2002, 13:25
|
#10
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
mmhh.... ich hoffe ich hab jetzt nix übersehen... aber hab einfach mal alle Banner aktiviert, und dann diesen Query ausgeführt:
Code:
SELECT *
FROM banner
WHERE Aktiv = 1 AND
(max_views = 0 OR max_views > views) AND
(max_clicks = 0 OR max_clicks > clicks) AND
(start = 0 OR start < UNIX_TIMESTAMP()) AND
(stop = 0 OR stop > UNIX_TIMESTAMP())
ORDER BY rollup ASC
...und ich bin der Meinung das funktioniert doch?!
Angezeigt wird:
"ImmobilienScout 24" und "Elbenwald Online-Shop"
ist doch richtig?!
Bei "WPON" ist die Startzeit noch nicht erreicht und bei "Traumprojekt" sind die maxviews erreicht...
Kann es sein, dass deine Variable $temp nicht passt??
...und ab gehts in die nächste Runde
Gruß Jan
|
|
|
25.02.2002, 09:09
|
#11
|
|
TP-Senior
Registriert seit: Sep 2001
Ort: Iserlohn
|
 na, jetzt tritt mich doch ein Pferd...
Tatsache...wieso ist die Angabe time() von PHP anders als UNIX_TIMESTAMP() von mysql?!?!
Ist mir jetzt Wurst...danke wenigstens. 
__________________
Dreamflower.
|
|
|
25.02.2002, 14:33
|
#12
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
puhh... ich hab aber auch schon an mir gezweifelt
Gruß Jan
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| 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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 Uhr.
|
 |