14. januar 2003 - 21:50Der er
31 kommentarer og 2 løsninger
?Query der skal hente et - næste - sæt data, der er udfyldt...
Jeg har en kalender, hvor jeg echo to slags information.
1. I dag... - Her hentes alle poster med den aktuelle dags dato. Der kan sagtens være til flere
2. Næste gang... - Her vil jeg gerne vise, hvad der sker næste gang der er noget på skemaet.
Jeg bruger denne query til den første echo: $query = "SELECT * from kalender WHERE date='$date' order by tidspunkt";
Jeg vil ikke hvilken query jeg kan skrive for at hente næste datasæt, er der nogle gode idéer?
Bemærk; der skal ikke bare hentes data fra næste dag, da denne sagtens lan være "tom", der skal hentes fra næstkommende WHERE der er instastet en aktivitet PLUS der godt kan være flere på hinanden følgende aktiviteter med samme dato.
Jeg pinder lige ud: 14-01-2002: Natur/Teknik 14-01-2003: Sang aflyst 14-01-2003: kl. 14 - samling
15-01-2003: ingen data
16-01-2003: Natur/Teknik 16-01-2003: Gæst i klassen
Min I-dag-query henter alle 3 poster fra den 14-01-2003 og den næste - som jeg ikke kan finde ud af - skal hente hente begge poster fra 16-01-2003.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Nu virker den - bare mere end den skal... Jeg bruger:
$query = "SELECT * from kalender WHERE date >('$date') and comment<>'' order by date";
Nu henter den ALLE udfyldte comment-felter EFTER dags dato. Også dem der ligger en måned fremme...
Det betyder også, at jeg må sortere efter date og ikke time, for så blandes alle datoerne sammen. Kan jeg sætte en hindring på, så den henter de næste poster men KUN frem til næste tomme?
Tjaaa, men problemet med en limit her er, at jeg aldrig ved, hvor mange ændringer eller aflysninger de forskellige taster ind, så hvis jeg laver en limit på 2 og der kun er 1 post så kommer næste dato med...
jeg tror den eneste løsning hvis du vil læse frem til den næste tomme record er at først finde næste dato med fyldte comments, og herefter trække alle data ud for den dato. Noget a'la:
// Find første dato med indhold: "select * from kalender where date>('$date') and comment<>'' order by date limit 1"
Kopier dato til $date, og find nu alle comments for datoen: "select * from kalender where date=('$date') order by time"
jo jeg tror søreme det kan gøres $query = " SELECT *, MIN(date) as temp from kalender WHERE date >('$date') and comment<>'' order by date having date = temp ";
Ups. HAVING skal før ORDER BY $query = " SELECT *, MIN(date) as temp from kalender WHERE date >('$date') and comment<>'' having date = temp order by date, time ";
Giver det nogen idé, hvis man laver en: 1. query der henter dato næste udfyldte comment 2. query der henter dato for næste tomme comment efter den der lige er fundet 3. query der henter poster mellem de to første queries
Eller hvad med en count row (som limit) fra førstkommende udfyldte comment til næstekommende tomme comment - kan det fixe i én query. Det prøver jeg at bixe sammen...
det er nemt med 2 queries: $query1 = " SELECT MIN(date) from kalender WHERE date >('$date') and comment<>'' "; $rs1 = mysql_query( "$query1" ) or die( mysql_error() ); $den_dag = mysql_result( $rs1, 0, 0 ); $query2 = " SELECT * from kalender WHERE date = '$den_dag' and comment<>'' order by time "; $rs2 = mysql_query( "$query2" ) or die( mysql_error() ); ...osv
Så lykkedes det :-) Jeg kombinerede jeres første forslag med overhovedet at springe til næste udfyldte comment - skippede limit - lavede dernæst en ny query hvor jeg søgte på den funde date:
$query_find_date = " SELECT MIN(date) from kalender WHERE date >('$date') and comment<>'' ";
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.