select nur wenn dateStart größer als heue??

Fragen rund um PHP,HTML,CSS und MySQL

select nur wenn dateStart größer als heue??

Beitragvon Richard.Laing » 28. Jul 2010, 09:51

hi@ all

ich habe hier eine ausgabe der nächsten drei events nach dateStart sortiert.
ich möchte aber das er nur die nächsten 3 ausgibt deren dateEnd nach heute ist... also die abgelaufenen events nicht mehr...??
kann mir hierbei jemand helfen ;)

in dateEnd steht folgendes Datumsformat: jjjj-mm-dd

danke gruß richy

Code: Alles auswählen
<?php
$qry = 'SELECT * FROM rex_423_venues v  JOIN rex_423_events e ON v.venueId = e.rVenue ORDER BY dateStart LIMIT 3
';
$sql = new sql();
$sql->setQuery($qry);
$inhalt ='<div class="short_news">';
for($i = 0; $i < $sql->getRows(); $i++)
{
  $inhalt .= '<span class="e_datum">'. $sql->getValue('dateStart') .'</span>';
  $inhalt .= '<span class="e_pic"><img src="index.php?rex_resize=80w__'. $sql->getValue('pictures') .'" alt="GoOn" /></span>';
  $inhalt .= '<span class="e_name">'. $sql->getValue('eventName') .'</span>';
  $inhalt .= '<span class="e_ort">'. $sql->getValue('venueName') .'</span>';

  $sql->next();
}
  $inhalt .= '</div>';

print $inhalt;
?>
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

Beitragvon Xong » 28. Jul 2010, 10:46

Hi Richard!

Code: Alles auswählen
SELECT *
FROM rex_423_venues v
JOIN rex_423_events e ON v.venueId = e.rVenue
WHERE v.dateEnd >= CURDATE()
ORDER BY dateStart
LIMIT 3
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Richard.Laing » 28. Jul 2010, 11:07

hi robert,
dann zeigt er mir garkeine news mehr an.

wie kann ich denn testen was bei CURDATE() rauskommt? in der db steht das datum so: 2010-07-20

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

Beitragvon Xong » 28. Jul 2010, 11:22

Richard.Laing hat geschrieben:dann zeigt er mir garkeine news mehr an.
Überprüfe mal, ob auch wirklich Daten existieren, die in der Zukunft liegen.
Richard.Laing hat geschrieben:wie kann ich denn testen was bei CURDATE() rauskommt? in der db steht das datum so: 2010-07-20
In der Datenbank ist das Feld hoffentlich als Typ "DATE" gespeichert. Die Stringrepräsentation sieht halt nur zufällig so aus, wie du das schreibst.
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon jeandeluxe » 28. Jul 2010, 11:51

Xong hat geschrieben:In der Datenbank ist das Feld hoffentlich als Typ "DATE" gespeichert.

Ich tippe auf nein.. ich hatte Richard vorhin schon nach
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html und
http://dev.mysql.com/doc/refman/5.1/en/storage-requirements.html
geschickt.. ;)

Korrektur: Ne, paßt schon..:

Code: Alles auswählen
DROP TABLE IF EXISTS `%TABLE_PREFIX%423_events`;
CREATE TABLE `%TABLE_PREFIX%423_events` (
  `eventId` int(11) NOT NULL auto_increment,
  `eventName` varchar(255) NOT NULL,
  `pictures` text NOT NULL,
  `shortdesc` varchar(255) NOT NULL,
  `longdesc` text NOT NULL,
  `dateStart` date NOT NULL,
  `dateEnd` date NOT NULL,
  `timeStart` time NOT NULL,
  `timeEnd` time NOT NULL,
  `rCategory` int(11) NOT NULL,
  `rVenue` int(11) NOT NULL,
  PRIMARY KEY  (`eventId`)
) ENGINE=MyISAM  COMMENT='v1' AUTO_INCREMENT=11 ;


lg,
j.
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Beitragvon Xong » 28. Jul 2010, 12:01

Problem war, dass die Spalte dateEnd zur Tabelle rex_423_events gehört.
So ist es also richtig:
Code: Alles auswählen
SELECT *
FROM rex_423_venues v
LEFT JOIN rex_423_events e ON v.venueId = e.rVenue
WHERE e.dateEnd >= CURDATE()
ORDER BY dateStart
LIMIT 3
LG,
Xong

Bild Määääääääääääääääääääääääh!
Benutzeravatar
Xong
 
Beiträge: 1560
Registriert: 5. Jun 2008, 07:30
Wohnort: Hohndorf in Sachsen

Beitragvon Richard.Laing » 28. Jul 2010, 12:02

hi
jup steht als date drin.
robert hatte gleichzeitig geantwortet ;)
hab ihm noch ne pn geschickt

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

Beitragvon Richard.Laing » 28. Jul 2010, 12:03

ja ja ja so gehts DANKE @all
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de
Benutzeravatar
Richard.Laing
 
Beiträge: 2109
Registriert: 27. Aug 2005, 23:55
Wohnort: Brühl / Rheinland

Beitragvon jeandeluxe » 28. Jul 2010, 12:29

Xong hat geschrieben:
Code: Alles auswählen
SELECT *
FROM rex_423_venues v
LEFT JOIN rex_423_events e ON v.venueId = e.rVenue
WHERE e.dateEnd >= CURDATE()
ORDER BY dateStart
LIMIT 3

Saubere Sache! Jetzt weiß ich wen ich künftig mit mysql Fragen bewerfen kann.. ;)

lg,
j.
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Beitragvon TInKim » 10. Aug 2010, 10:14

Richard.Laing hat geschrieben:wie kann ich denn testen was bei CURDATE() rauskommt?


Hallo Richard,

Du kannst den Rückgabewert einer MySQL-Funktion ganz einfach mit SELECT abfragen. Also mit SELECT CURDATE(); bekommst Du dann 2010-08-10 bspw. Gleiches geht also mit SELECT NOW(); oder whatever.

Gruß,
Kim
Benutzeravatar
TInKim
 
Beiträge: 410
Registriert: 23. Mär 2007, 15:16
Wohnort: Kiel


Zurück zu PHP/HTML/CSS/MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste