Avatar billede stois Nybegynder
01. juli 2004 - 12:57 Der er 19 kommentarer og
1 løsning

Hvordan for UNIX-TimeStamp sammenligning til at virke?

Jeg har det her kode, som skal kunne tjekke om et unixtimestamp i DB'en er større eller mindre end timestamp for lige nu... og så skal den returnere om det er der eller ej.... Men det det virker ikke... =(

<?
//  ****************************
//  ***    WARS PART SITE    ***
//  *** >----[wars.php]----< ***
//  ****************************
DB::Conn("open");
$curtime = time();
$War_Over_Query = mysql_query("SELECT * FROM wars WHERE date < '$curtime' ORDER BY war_id  ASC") or die("Fejl i søgning i  MYSQL database (War_Over_Query)" . mysql_error());
$War_Wait_Query = mysql_query("SELECT * FROM wars WHERE date > '$curtime' ORDER BY war_id  ASC") or die("Fejl i søgning i  MYSQL database (War_Wait_Query)" . mysql_error());

// if(mysql_num_rows($War_Over_Query) > 0){

    if(mysql_num_rows($War_Wait_Query) > 0){
        $Test_DB_Wait = 0;  //"No data";
    } elseif(mysql_num_rows($War_Wait_Query) > 0){
        $Test_DB_Wait = 1;  //"Data found";
    } else {
        $Test_DB_Wait = 2;  //"Data error";
    }

    if(mysql_num_rows($War_Over_Query) > 0){
        $Test_DB_Over = 0;  //"No data";
    } elseif(mysql_num_rows($War_Over_Query) > 0){
        $Test_DB_Over = 1;  //"Data found";
    } else {
        $Test_DB_Over = 2;  //"Data error";
    }

Java::Alert("Nu : $curtime");
Java::Alert("Test of Test_DB_Wait : ".$Test_DB_Wait."    Test of Test_DB_Over : ".$Test_DB_Over."");

?>

der bliver returneret:
$Test_DB_Wait = 2
$Test_DB_Over = 0

det skulle have været:
$Test_DB_Wait = 0
$Test_DB_Over = 1

Hvad er det lige jeg gør så galt gutter ???
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 13:29 #1
Du skal jo nok ændre

    if(mysql_num_rows($War_Wait_Query) > 0){

til

    if(mysql_num_rows($War_Wait_Query) == 0){

Men hvad står der ellers i date-feltet?
Avatar billede stois Nybegynder
01. juli 2004 - 13:31 #2
i date feltet er der kun et UNIX-TimeStamp
Avatar billede stois Nybegynder
01. juli 2004 - 13:35 #3
Det er selvfølgeligt rigtigt nok det du siger Erik, men Wait retunere stadigt 2 =(
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 13:39 #4
Lad mig være mere præcis ;) Det er et talfelt, med en unix-stamp i, ikke?
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 13:40 #5
mysql_num_rows kan ikke være negativ, så har du rettet det jeg skriver, kan du ikke få 2.
Avatar billede stois Nybegynder
01. juli 2004 - 13:49 #6
Joh det er et talelt (int 11) med et timestamp i...
Det er meget muligt, men det returnere stadig væk 2...
Her er den nye kode efter dine ændringer...

<?
//  ****************************
//  ***    WARS PART SITE    ***
//  *** >----[wars.php]----< ***
//  ****************************
DB::Conn("open");
$curtime = time();
//$War_Over_Query = mysql_query("SELECT * FROM wars WHERE date < '$curtime' ORDER BY war_id  ASC") or die("Fejl i søgning i  MYSQL database (War_Over_Query)" . mysql_error());
$War_Wait_Query = mysql_query("SELECT * FROM wars WHERE date > '$curtime' ORDER BY war_id  ASC") or die("Fejl i søgning i  MYSQL database (War_Wait_Query)" . mysql_error());

// if(mysql_num_rows($War_Over_Query) > 0){

    if(mysql_num_rows($War_Wait_Query) == 0){
        $Test_DB_Wait = 0;  //"No data";
    } elseif(mysql_num_rows($War_Wait_Query) < 0){
        $Test_DB_Wait = 1;  //"Data found";
    } else {
        $Test_DB_Wait = 2;  //"Data error";
    }
?>
Avatar billede stois Nybegynder
01. juli 2004 - 13:50 #7
Jeg fjerner lige de ting der alligevel er udkommenteret....

<?
//  ****************************
//  ***    WARS PART SITE    ***
//  *** >----[wars.php]----< ***
//  ****************************
DB::Conn("open");
$curtime = time();
$War_Wait_Query = mysql_query("SELECT * FROM wars WHERE date > '$curtime' ORDER BY war_id  ASC") or die("Fejl i søgning i  MYSQL database (War_Wait_Query)" . mysql_error());

    if(mysql_num_rows($War_Wait_Query) == 0){
        $Test_DB_Wait = 0;  //"No data";
    } elseif(mysql_num_rows($War_Wait_Query) < 0){
        $Test_DB_Wait = 1;  //"Data found";
    } else {
        $Test_DB_Wait = 2;  //"Data error";
    }
?>

Sådan =)
Avatar billede stois Nybegynder
01. juli 2004 - 13:54 #8
Jeg fatter det bare ikke, jeg har kiggetpå det kode i så lang tid, og jeg kan bare ikke se fejlen, og jeg har været væk, så jeg ikke blev ved med at køre i samme spor, men det hjællper bare ikke...
Avatar billede stois Nybegynder
01. juli 2004 - 13:56 #9
Tjek det selv på http://stois.users.whitehat.dk/?page=wars ... hvis du er i tvivl =)
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:02 #10
Er du sikker på du mener <
Avatar billede stois Nybegynder
01. juli 2004 - 14:03 #11
< ??? hvor????
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:05 #12
} elseif(mysql_num_rows($War_Wait_Query) < 0){
Avatar billede stois Nybegynder
01. juli 2004 - 14:07 #13
ARRGGHHHH!!!! DET VAR FANDME KUN DET.......... ARGH ØV ØV ØV ØV ØV ØV ØV
Avatar billede stois Nybegynder
01. juli 2004 - 14:08 #14
Avatar billede stois Nybegynder
01. juli 2004 - 14:08 #15
Smid et svar erik =)
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:09 #16
Der stod heller ikke < i dit oprindelig script, så hvor mon det kom fra.
Godt det virker. Jeg samler ikke på point. Svar selv, accepter eget svar.
Avatar billede stois Nybegynder
01. juli 2004 - 14:14 #17
hmmm... vil gerne give noget, men okay, hvis du insistere =)
Avatar billede stois Nybegynder
01. juli 2004 - 14:15 #18
Jeg tror jeg sover for meget og drikker for lidt kodemælk (kaffe)
Avatar billede erikjacobsen Ekspert
01. juli 2004 - 14:20 #19
Grøn te er bedre - se bare mig.
Avatar billede stois Nybegynder
01. juli 2004 - 14:43 #20
hmmm..... =/
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