"SELECT headline FROM pixelpost_pixelpost WHERE datetime < UNIX_TIMESTAMP() LIMIT 1"
ska väl räcka om du använder timestamp.
Databaser & SQLur Databashanterare & SQL
13 svar · 340 visningar · startad av silfver
Jag använder mig av den här koden:
$result = mysql_query("select headline from pixelpost_pixelpost order by datetime desc limit 1")
or die('Err: ' . mysql_error());
if(mysql_num_rows($result) > 0){
$data = mysql_fetch_array($result);
echo $data['headline'];
}
mysql_free_result($result);
Och den funkar alldeles utmärkt. Men grejen är så här, att i min fotodagbok (som scriptet är till för) så kan jag sätta bilder på "autopilot". Jag kan alltså posta bilder och bestämma att de ska visas på sidan vid en viss tid. När jag gör det här så blir det fel i scriptet ovan, eftersom den hämtar den senast postade titeln i tabellen.
Kan man på något sätt begränsa koden så att den endast hämtar namnet efter tiden? Alltså, så att den inte springer i förväg och hämtar den senast postade bilden?
Shit, det här blev rörigt. Men jag hoppas ni förstår annars så får jag väl förklara. :)
"SELECT headline FROM pixelpost_pixelpost WHERE datetime < UNIX_TIMESTAMP() LIMIT 1"
ska väl räcka om du använder timestamp.
WiZzLeR skrev:
"SELECT headline FROM pixelpost_pixelpost WHERE datetime < UNIX_TIMESTAMP() LIMIT 1"
ska väl räcka om du använder timestamp.
Det där fungerade inte. Resulterade i ett tomt meddelande. :l
r\ Timestamp? Har en cell för datetime...
WiZzLeR skrev:
Dvs YY-MM-DD tt:mm:ss ?
Testa NOW().
Så här ser den ut: 2005-07-31 19:20:50. Du får gärna skriva ut fullständig kod så att jag förstår... :OO :birp
SELECT headline FROM pixelpost_pixelpost WHERE datetime < NOW() LIMIT 1
@nders skrev:
SELECT headline FROM pixelpost_pixelpost WHERE datetime < NOW() LIMIT 1
Med den koden så visas den första bilden som är postad. Så, det funkade inte heller. :l
Ja, du måste ju ha med din order by också.
Jag bara kopierade SQL-frågan från Wizzlers inlägg, för det var en massa PHP-skräp i ditt. ;)
Så här ser en del av tabellen ut. Vad jag kan göra där är alltså att få in flera poster, utan att de visas. Det kanske bara är ni som misstolkar mig? Jag är inte så bra på att förklara nämnligen... :)
@nders skrev:
Ja, du måste ju ha med din order by också.
Jag bara kopierade SQL-frågan från Wizzlers inlägg, för det var en massa PHP-skräp i ditt. ;)
Ja, allt är med. Jag bara ersätter min sql-fråga med den Wizzler skrev. :) Men den visar fel inlägg.
Visar den fel trots att du har med ORDER BY datetime DESC?
Ja, det är möjligt att vi misstolkar, om du är dålig på att beskriva. På vilket sätt vet du att en post inte ska visas? Datumet i datetime-fältet är i framtiden?
@nders skrev:
Visar den fel trots att du har med ORDER BY datetime DESC?
Ja, det är möjligt att vi misstolkar, om du är dålig på att beskriva. På vilket sätt vet du att en post inte ska visas? Datumet i datetime-fältet är i framtiden?
Jag kanske gör fel.
SELECT headline FROM pixelpost_pixelpost WHERE datetime < NOW() LIMIT 1 ORDER BY datetime DESC
Det funkar i varje fall inte. :)
I ditt första inlägg har du LIMIT efter ORDER BY, här har du tvärt om. Jag tror att MySQL inte tycker om båda alternativen, så du får nog prova på rätt sätt istället. ;)
@nders skrev:
I ditt första inlägg har du LIMIT efter ORDER BY, här har du tvärt om. Jag tror att MySQL inte tycker om båda alternativen, så du får nog prova på rätt sätt istället. ;)
SELECT headline FROM pixelpost_pixelpost WHERE datetime < NOW() ORDER BY datetime DESC LIMIT 1
Nu så! :e
Tack så mycker för er hjälp! Det verkar fungera nu. :)