MeleaMedlem sedan juli 20033 147 inlägg Kom inte på någon direkt bra rubrik så får förklara mig här istället.
Har en kod som loopar ut alla datum där det finns några nyheter i och sen skriver ut nyheterna under dessa datum. Nu måste jag ändra antalet dagar den ska söka bakåt i tiden efter nyheter för att få fram de riktigt gamla. För om man inte skriver en nyhet på kanske 2 veckor finns det inga i nyhetslistan. Jag vill alltså byta ut antalet dagar mot en limit 14 eller liknande. This is how it looks
<?
echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">";
for ($i = 0; $i <= 50 ; $i++){
$t = 60*60*24*$i;
$datum1a = date("Y-m-", date("U") -$t);
$datum1b = date("d", date("U") -$t);
$datum1c = $datum1a.$datum1b;
$datum1aa = date("l", date("U") -$t);
$datum1bb = date(" jS", date("U") -$t);
$datum1cc = $datum1aa.$datum1bb;
$SQL = mysql_query("SELECT * FROM teamswe_news where datum_short = '$datum1c' order by id desc") or die (mysql_error());
if (mysql_num_rows($SQL) <> 0) {
echo "<tr><td style=\"color: #FFFFFF; font-weight: bold;\">".$datum1cc."</td></tr><tr>";
while($objRS = mysql_fetch_array($SQL)) {
$SQL2 = mysql_query("SELECT Count(*) AS iCount FROM teamswe_newscom where newsid = $objRS[id]") or die (mysql_error());
$objM = mysql_fetch_array($SQL2);
?>
<td class="menu_left_topic">(<?=$objM[iCount]?>) <a href="index.php?show=news&id=<?=$objRS['id']?>">
<?
$tecken = 27;
$str = $objRS['rubrik'];
$strLenen = strlen($str);
if ($strLenen > $tecken) {
$str = substr($str,0,($tecken-3));
echo " ".$str."...";
} else {
echo $str;
}
?>
</a></td>
</tr><tr>
<?
} // If satsen som kollar om det finns några poster slutar här
} // Loopen slutar här
} // For satsen slutar här
echo "</table>";
?>
Tack på förhand
Mvh
pröva att ange "SELECT TOP 5 *" i sql-strängen istället, då returneras de övre fem (eller färre om det inte finns fler) raderna, baserat på de villkor som du ställer upp.
med WHERE kan du sedan enkelt begränsa hur gammal nyheten får vara.
//jocke
@ndersMedlem sedan juni 200032 969 inlägg
joakimbr skrev:
pröva att ange "SELECT TOP 5 *" i sql-strängen istället, då returneras de övre fem (eller färre om det inte finns fler) raderna, baserat på de villkor som du ställer upp.
med WHERE kan du sedan enkelt begränsa hur gammal nyheten får vara.
//jocke
TOP används inte i MySQL, utan i MySQL använder man LIMIT, som Melea skriver.
Tyvärr kan jag inte hjälpa till med ursprungsfrågan.
MatteMedlem sedan aug. 20002 975 inlägg SELECT * FROM teamswe_news ORDER BY id DESC LIMIT 14
Bör ge dig de 14 senaste posterna.
Om du har en datum/tid-kolumn bör du använda denna istället för id att sortera mot.
MeleaMedlem sedan juli 20033 147 inlägg Koden ovanför skriver ut
[b]Fredag 14 Januari[/b]
Välkommen till sidan
Jonas vann SM i dator!
[b]Måndag 17 Januari[/b]
wF får pris i blabla
Fast den skriver ut de nyheterna som är 50 eller mindre dagar gamla (for ($i = 0; $i <= 50 ; $i++){). Det jag vill göra är att bygga om koden så den skriver ut de 14 senaste men ändå med samma system som Måndag 17 Januari osv...
Har 2 st datumkolumner, en med datetime 2004-02-28 13:41:02 och en varchar som sparar Friday 12th December
Tips någon? :)
MatteMedlem sedan aug. 20002 975 inlägg Vad har du for-satsen till ?
Testa något på det här hållet:
<?php
echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">";
$sql = "SELECT * FROM teamswe_news ORDER BY id DESC LIMIT 14";
$SQL = mysql_query($sql);
while($objRS = mysql_fetch_array($SQL)) {
echo "<tr>\n<td style=\"color: #FFFFFF; font-weight: bold;\">
{$objRS['kolumnnamn_datum_text']}</td>\n</tr>";
$sql = "SELECT Count(*) AS iCount FROM teamswe_newscom
WHERE newsid = $objRS[id]";
$SQL2 = mysql_query($sql) or die (mysql_error());
$objM = mysql_fetch_array($SQL2);
echo "<tr>\n<td class=\"menu_left_topic\">({$objM['iCount']})
<a href=\"index.php?show=news&id={$objRS['id']}\">\n";
$tecken = 27;
$str = $objRS['rubrik'];
$strLenen = strlen($str);
if ($strLenen > $tecken) {
$str = substr($str,0,($tecken-3));
echo " ".$str."...";
} else {
echo $str;
}
echo "</a></td>\n</tr>\n";
}
echo "</table>";
?>
MeleaMedlem sedan juli 20033 147 inlägg Weho! Funkar halvt som halvt... problemet är att den skriver ut:
[b]Monday 9th February[/b]
(7) SWE.bw lost to Canada
[b]Monday 9th February [/b]
(5) Sweden gets support!
[b]Monday 9th February [/b]
(0) Inferno Online - Tours
Istället för
[b]Monday 9th February[/b]
(7) SWE.bw lost to Canada
(5) Sweden gets support!
(0) Inferno Online - Tours
:OO
MatteMedlem sedan aug. 20002 975 inlägg Testa det här då:
<?php
echo "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\" width=\"100%\">";
$sql = "SELECT * FROM teamswe_news ORDER BY id DESC LIMIT 14";
$SQL = mysql_query($sql);
$headline = '';
while($objRS = mysql_fetch_array($SQL)) {
if ($headline != $objRS['kolumnnamn_datum_text']) {
$headline = $objRS['kolumnnamn_datum_text']
echo "<tr>\n<td style=\"color: #FFFFFF; font-weight: bold;\">
$headline \n</td>\n</tr>\n";
}
$sql = "SELECT Count(*) AS iCount FROM teamswe_newscom
WHERE newsid = $objRS[id]";
$SQL2 = mysql_query($sql) or die (mysql_error());
$objM = mysql_fetch_array($SQL2);
echo "<tr>\n<td class=\"menu_left_topic\">({$objM['iCount']})
<a href=\"index.php?show=news&id={$objRS['id']}\">\n";
$tecken = 27;
$str = $objRS['rubrik'];
$strLenen = strlen($str);
if ($strLenen > $tecken) {
$str = substr($str,0,($tecken-3));
echo " ".$str."...";
} else {
echo $str;
}
echo "</a></td>\n</tr>\n";
}
echo "</table>";
?>
MeleaMedlem sedan juli 20033 147 inlägg Ja där ser man, älskar verkligen wF! ;)
Tack så hemskt mkt