Avatar billede sorensen_123 Nybegynder
19. juni 2007 - 16:23 Der er 8 kommentarer og
1 løsning

Hent ikke, hvis dato er overskredet.

Hej,

Jeg har en mysql tabel med en masse kolonner, og der har jeg en der hedder "udloeber".

Når jeg laver en udskrift vil jeg så gerne have at den ikke skal hente, hvis "udloeber" er overskredet.
Jeg angiver aktuelle dato med:
$dato = date('d-m-Y');
Og alle datoer i "udloeber" er i samme format (DD-MM-ÅÅÅÅ).

Når jeg henter bruger jeg denne kode:
$getBannere = mysql_query("SELECT * FROM bannere WHERE bannertype = '$type' ORDER BY RAND() LIMIT 2")or die(mysql_error());

Men hvis $dato er over "udloeber", skal den ikke hente værdierne, men gå videre til næste (fx hvis dato er 06-01-2008 og "udloeber" er 01-01-2008, skal den ikke hente).

Nogen der kan følge mig?
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 16:36 #1
Først tror jeg vi skal starte med vende din dato, og fjerne de bindestrege ;)

men her er et script, ved ikke om det virker :b

<?php

$udloeber = 01-01-2008; // og skal selvfølig rettes til dit db udtræk!
$dato = date("Ymd");

$udate = explode("-", $udloeber);

$udloeber = $udate[2]$udate[1]$udate[0]; // så har vi den omvendt og har fjernet bindestregene

if($dato < $udloeber) {

echo "dette er brugeren: burgernavn"; //eller din kode skal bare være her i denne if sætning!

}
?>
Avatar billede sorensen_123 Nybegynder
19. juni 2007 - 16:47 #2
Jeg skal kun bruge 2 rækker, og derefter kører jeg dem i en while, så tror der ville være spil af indlæsningstid og computer at hente hele databasen ud.

Men selvfølgelig, hvis man ikke kan gøre det nemmere, så vil jeg da bruge det ;)
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 16:52 #3
Ahh vent du nu lige mester ;)

<?php

$getBannere = mysql_query("SELECT * FROM bannere WHERE bannertype = '$type' ORDER BY RAND() LIMIT 2")or die(mysql_error());
while($postBannere = mysql_fetch_assoc($get_Bannere)) {

$udloeber = $postBannere[udloeber];
$dato = date("Ymd");

$udate = explode("-", $udloeber);

$udloeber = $udate[2]$udate[1]$udate[0]; // så har vi den omvendt og har fjernet bindestregene

if($dato < $udloeber) {

echo "Banner/Billede lige her";

}
}

?>

Så skulle det nok virke :D
Avatar billede sorensen_123 Nybegynder
19. juni 2007 - 17:06 #4
Ja, men den skulle jo gerne have to bannere. Så hvis den henter 2 kolonner fra databasen, og den ene er udløbet, vil den jo kun vise et??
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 17:23 #5
ahh :b

Du kan jo også bare slette de bannere som er udløbet!

<?php

$getBannere = mysql_query("SELECT * FROM bannere WHERE bannertype = '$type' ORDER BY RAND() LIMIT 2")or die(mysql_error());
while($postBannere = mysql_fetch_assoc($get_Bannere)) {

$udloeber = $postBannere[udloeber];
$dato = date("Ymd");

$udate = explode("-", $udloeber);

$udloeber = $udate[2]$udate[1]$udate[0]; // så har vi den omvendt og har fjernet bindestregene

if($dato < $udloeber) {

echo "Banner/Billede lige her";

}else{

mysql_query("DELETE FROM bannere WHERE id='$postBannere[id]'"); // så slettes banneret

}
}

?>

Og med det her, vil den slette alle bannere der er udløbet ;)
Du kan også oprette en felt i din mysql tabel der hedder udloebet

bare en int med længde 2

og så køre dette script >

<?php

$getBannere = mysql_query("SELECT * FROM bannere WHERE bannertype = '$type' AND udloebet = '0' ORDER BY RAND() LIMIT 2")or die(mysql_error());
while($postBannere = mysql_fetch_assoc($get_Bannere)) {

$udloeber = $postBannere[udloeber];
$dato = date("Ymd");

$udate = explode("-", $udloeber);

$udloeber = $udate[2]$udate[1]$udate[0]; // så har vi den omvendt og har fjernet bindestregene

if($dato < $udloeber) {

echo "Banner/Billede lige her";

}else{

mysql_query("UPDATE bannere SET udloebet='1' WHERE id='$postBannere[id]'"); // så rettes bannert til at være udloebet

echo "Banner/Billede lige her";

}
}

?>
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 18:08 #6
hov i hvis du vil slettet gamle bannere - skal du IKKE have limit på ;)
Avatar billede sorensen_123 Nybegynder
19. juni 2007 - 21:01 #7
Jeg vil ikke slette dem, for i admin systemet kan man forny. Men bruger bare din første metode.. Ser lige om det virker, og så melder jeg ud :)
Avatar billede sorensen_123 Nybegynder
19. juni 2007 - 21:10 #8
Virkede fint. smid svar.
Avatar billede peterpedersen Nybegynder
19. juni 2007 - 21:50 #9
godt - svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester