rakiMedlem sedan jan. 2003137 inlägg Lite dålig rubrik, hoppas ni fattar vad jag menar nu :)
Jag skulle vilja sortera nyheter efter månader samt år.
Jag har är nybörjare på php så jag är tacksam för all hjälp.
[edit]
Man ska kunna välja från en lista vilken månad som ska visas.
Ett litet arkiv alltså.
rakiMedlem sedan jan. 2003137 inlägg Jag har ett fungerande script nu som jag kan lägga till nyheter samt visa dem.
rakiMedlem sedan jan. 2003137 inlägg Ingen som vet hur man gör och kan hjälpa mig? :(
cyprysMedlem sedan dec. 20003 563 inlägg SQL = "SELECT * FROM tbl_nyheter WHERE month(col_datum) = " & StrMonth
rakiMedlem sedan jan. 2003137 inlägg Sorterar den inte bara efter månaderna där?
Jag vill ha ett arkiv där nyhetera sparas i kategorier (månader)
rakiMedlem sedan jan. 2003137 inlägg Frågar igen.
nån som kan hjälpa mig, eller vet nåt ställe där det finns kod på sånt här.
rakiMedlem sedan jan. 2003137 inlägg Jag vill alltså kunna visa nyhets poster som är skrivna en viss månad med hjälp av en drop down meny eller vanliga text länkar.
MatteMedlem sedan aug. 20002 975 inlägg Testa det här.
I ditt formulär:
<form action="skript.php" method="get">
<select name="StrMonth">
<option value="2002-08">augusti 2002</option>
<option value="2002-09">september 2002</option>
</select>
SQL-frågan
$sql = "SELECT * FROM tbl_nyheter WHERE DATE_FORMAT(col_datum,'%Y-%m')={$_GET['StrMonth']}";
Då ska datumkolumnen vara av formaten DATETIME eller TIMESTAMP.
rakiMedlem sedan jan. 2003137 inlägg Får det inte riktigt att fungera.
Kanske är för att inte datumkolumnen är som du säger.
Hur ändrar jag det?
Ser detta rätt ut annars:
<table>
<?php
$datum = date("Y-m-d");
$sql = "SELECT * FROM news WHERE DATE_FORMAT (col_datum,'%Y-%m')={$_GET['StrMonth']}";
$results = mysql_query($sql);
while ($rows = mysql_fetch_array($results)){
$id = $rows['id'];
$datum = $rows['datum'];
$name = $rows['name'];
$email = $rows['email'];
$rubrik = $rows['rubrik'];
$news = nl2br (strip_tags ($rows['news'], '<a><b><i><u>'));?>
<tr>
<td><?=$datum?> | <?=$rubrik?></td>
</tr>
<tr>
<td><?=$news?><br>By:<a href="mailto:<?=$email?>"><?=$name?></a></td>
</tr>
</table>
<?php } ?>
MatteMedlem sedan aug. 20002 975 inlägg Ser att vi får ändra lite i sql-frågan. Tror den bör vara så här istället:
$sql = "SELECT * FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='{$_GET['StrMonth']}'";
Hur har du sparat i col_datum? I vilket format?
rakiMedlem sedan jan. 2003137 inlägg Hur menar du med sparat col_datum?
Jag får detta felmeddelande:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/tomas/public_html/oldnews.php on line 35
MatteMedlem sedan aug. 20002 975 inlägg Då får vi prova lite felsökning. Vad får du för utfall av detta:
$sql = "SELECT * FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='{$_GET['StrMonth']}'";
$results = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
Är fältet col_datum av formatet DATETIME eller TIMESTAMP så ska det funka. Om jag minns rätt även med VARCHAR om du lagt in det som '2003-02-07 00:00:00'.
Har du däremot VARCHAR och lagt in tiden typ '7/2-2003' så kan du få problem.
Hur ser ditt formulär ut ?
Hur ser koden ut där du sparar till din databas ?
rakiMedlem sedan jan. 2003137 inlägg Fick detta felmeddelande:
SQL: SELECT * FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='2002-08'
Koden för att spara i databasen:
<?php }elseif($action == "save"){
$datum = date("Y-m-d");
$sql = "INSERT INTO news (datum, name, email, rubrik, news) VALUES ('$datum', '$name', '$email', '$rubrik', '$news')";
$results = mysql_query($sql);?>
Datum i databasen ser ut såhär:
datum timestamp(14) NOT NULL,
MatteMedlem sedan aug. 20002 975 inlägg
raki skrev:
Fick detta felmeddelande:
SQL: SELECT * FROM news WHERE DATE_FORMAT(col_datum,'%Y-%m')='2002-08'
Du måste ha fått ytterligare en rad efter denna?
Har du någon kolumn ytterligare som heter col_datum?
Annars så är det kolumnen datum du ska använda i din sql_fråga:
$sql = "SELECT * FROM news WHERE DATE_FORMAT(datum,'%Y-%m')='{$_GET['StrMonth']}'";
Ett TIMESTAMP behöver du inte lägga in värde på i tabellen, detta sker automatiskt. Skulle du ändå göra det så gör det med med now(), eller om du vill använda date utanför sql-satsen, använd samma format som TIMESTAMP:
$datum = date("YmdHis");
rakiMedlem sedan jan. 2003137 inlägg Tack Matte!
nu funkar allt som det ska