Har sökt runt bl.a här på Webforum samt läst på php.net men jag får det inte att fungera.
Jag har i min db ett fält som innehåller ett datum i format (2003-03-20 19:50:00). nu är det så att jag önskar skriva ut detta datum enligt följande: March 20, 2003 - 19:50. Hur göra?
$result = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());
while($row = mysql_fetch_array($result)){
echo date("F j, Y - H:i", $row['tid']);
}
Glöm inte att ansluta till mysql, och välj databas.
Nu känner jag mig riktigt förvirrad dessvärre. Börjar kännas som jag blandar ihop allt. Följande händer just nu:
...får inte rätt datum, fortfarande January 1, 1970 - 01:00
...min sql fråga plockar inte fram rätt datum, alltså det datum som är det närmsta att komma.
$idag = date("Y-m-d H:i:s");
$result = mysql_query('SELECT * FROM showlist WHERE datum > "$idag" ORDER BY datum LIMIT 1') or die (mysql_error());
$timestamp = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
extract($row);
$dag = date("F j, Y - H:i", $row['tid']);
print "<tr valign=top><td colspan=2><b>Next Live Show: $dag $row[1]</b></td></tr><tr valign=top>";
Det ska enbart visas ett datum, det som är det näst följande, som sedan ska bytas ut med nästa när den dagen/tiden är slut.
Jag vet inte riktigt vad du vill göra, men du har iaf blandat ihop de två mysql-resultaten ($timestamp och $result):
$idag = date("Y-m-d H:i:s");
$result = mysql_query('SELECT * FROM showlist WHERE datum > "$idag" ORDER BY datum LIMIT 1') or die (mysql_error());
$timestamp = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());
while ($row = mysql_fetch_array($timestamp)) {
extract($row);
$dag = date("F j, Y - H:i", $row['tid']);
print "<tr valign=top><td colspan=2><b>Next Live Show: $dag $row[1]</b></td></tr><tr valign=top>";
Jag tar det från början, känner att det kan vara det bästa.
Problem 1:
Jag har i min databas, showlist, ett fält som heter datum som är av typ datetime (ex 2003-04-06 19:00:00) där det lagras datumet för när en show kommer köras. Tanken är att man ska kunna lägga in hur många framtida shower som helst men endast den näst kommande ska visas på sidan, allltså den showen som är näst i tur att komma. Jag får inte detta att fungera, tar inte rätt show utan verkar ta den senast inlagda.
Problem 2:
När texten ska skrivas ut så ska datumet presenteras i formatet April 6, 2003 - 19:00, alltså inte som det ligger i databasen.
Så här ser koden ut just nu, finns säkert ton med fel.
$connection_show = mysql_connect($host,$user,$password) or die ("Kunde inte koppla upp mot MySQL servern\n". mysql_error());
mysql_select_db($db) or die(mysql_error());
$idag = date("Y-m-d H:i:s");
echo $idag;
$result = mysql_query('SELECT * FROM showlist WHERE datum > ". $idag ." ORDER BY datum LIMIT 1') or die (mysql_error());
while ($row = mysql_fetch_array($result)) {
extract($row);
$dag = date("F j, Y - H:i", mysql_query("SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist"));
print "<tr valign=top><td colspan=2><b>Next Live Show: $dag $row[1]</b></td></tr><tr valign=top>";
if ($row[3] != NULL) {
print "<td width=160><img src=$row[3] class=news_pic></td><td><b></b><br><img src=img/empty.gif width=1 height=3<br>$row[1]<br>$row[2]</td>";
} else {
print "<td><b></b><br><img src=img/empty.gif width=1 height=3<br>$row[1]<br>$row[2]</td>";
}
print "</tr>";
}
mysql_close($connection_show);
$sql = "SELECT *, DATE_FORMAT(datum, '%M %e, %Y - %H:%I') as tid
FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
$result = mysql_query($sql);
$sql = "SELECT *, DATE_FORMAT(datum, '%M %e, %Y - %H:%i') as tid
FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
echo $row['tid'];
Äntligen fick jag det att fungera som jag ville. Jag fick göra det med två SQL satser samt dela upp det hela och (vilket det visade sig) fick lägga datumutskriften med ett echo för att det skulle visas. Ändrade även F & j till M & d. Klistrar in koden nedan, om det nu är någon som är intresserad.
Tack så jättemycket alla ni som tog er tid att hjälpa mig, kände att jag var på väg att bli tunnhårig :)
$sql_2 = "SELECT *, DATE_FORMAT(datum, '%M %d, %Y - %H:%i') AS tid FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
$result2 = mysql_query($sql_2);
$row2 = mysql_fetch_assoc($result2);
print "<tr valign=top><td colspan=2 bgcolor=dfdfdf><b>Next Live Show:</b> ";
echo $row2['tid'];
print " </td></tr><tr valign=top>";
mysql_free_result;
$sql_1 = "SELECT *, DATE_FORMAT(datum, '%M %d, %Y - %H:%i') AS tid FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
$result = mysql_query($sql_1);
while ($row = mysql_fetch_array($result)) {
extract($row);
if ($row[3] != NULL) {
print "<td width=160><img src=$row[3] class=news_pic></td><td>$row[1]<br>$row[2]</td>";
} else {
print "<td>$row[1]<br>$row[2]</td>";
}
print "</tr>";
}