Nu börjar jag bli lite desperat. Förmodligen är det väldigt lätt eftersom jag inte hittar någon som frågar om samma sak någonstans.
Jag kan inte få till detta med att hämta data i databasen och få det att skrivas ut rätt i en tabell.
Men hur gör man för att söka efter ettor i raden och om det inte finns någon att då skriva ut 0 och sedan fortsätta leta siffror fram till och med 6 i tur och ordning och få in det i rätt <td>.
Så här vill jag det ska se ut. Den nedre tabellen är inte kopplad till databasen. tabell
Som koden ser ut nu räknar den antalet 1:or osv och skriver ut det, men gör ingenting med de siffror som saknas, har klarat mig eftersom det funnits siffror för varje kolumn :r .
<?php
$result = mysql_query("SELECT placering, count( * ) AS antal,
year( l.datum ) AS theYear
FROM resultat s JOIN lopp l ON l.loppID = s.loppID
WHERE typID < 5 AND problemID <> 9 AND year(l.datum) >= 2006
GROUP BY placering, theYear") or die("gick inte");
if (mysql_num_rows($result) == 0)
echo "<p>Inga lopp har sprungits än i år.</p>";
else
{
echo "<p>Här visas de resultat de egentränade hästarna gjort</p><table>
<tr>
<th>År</th><th>Oplacerad</th><th>etta</th><th>tvåa</th><th>trea</th><th>fyra</th><th>femma</th><th>sexa</th><th>Insprunget</th>
</tr><tr><td>2006</td>";
while ( $row = mysql_fetch_array($result) )
echo "<td>".$row['antal']."</td>";
$query = "SELECT sum( prisSumma )
FROM resultat r, starta s
JOIN lopp l ON r.loppID = l.loppID AND r.loppID = s.loppID
GROUP BY year( datum ) DESC";
$result = mysql_query($query);
$sum = mysql_fetch_array($result);
function numberfix($sum)
{
$sum = number_format($sum,0,","," ");
return str_replace(" ", " ", $sum);
}
if ($sum)
{
echo "<td class=\"right\">{$sum['sum( prisSumma )']} kr
</td></tr></table>";
}
}
?>
Detta är en nödlösning... som fungerat fram till nu. Förutom number_format som inte gör någonting :(
Någon som kan ge tips om någon tutorial eller något?
Har böckerna PHP5 and MYSQL Bible och PHP5 programmering här men hittar inget.
Snälla HJÄLP
Det blev nog grekiska för mig...
När jag försökte så blev hela sidanfylld med femtielva varningar och notice... och en väldigt tom tabell.
Så jag gör nog inget annat än fel.
Så var och hur sätter jag in arrayen... till att börja med :r
Hm... letade i databasen för att hitta något år då det inte fanns något resultat för någon av placeringarna.
Fick gå tillbaka till 2003... för att se om det fungerar.
Resultaten som finns på lite fel ställen på sidan, men 0:or vill den inte skriva ut.
Det är på 5:e och 6:e plats det inte finns något.
Resultatet finns på länken jag skickade förut.tabeller
Nu är det sovdags :-) Nya tag för mig i morgon... Finns ju en del timmar kvar till 2007 ;)
<?php
$result = mysql_query("SELECT placering, count( * ) AS antal,
year( l.datum ) AS theYear
FROM resultat s JOIN lopp l ON l.loppID = s.loppID
WHERE typID < 5 AND problemID <> 9 AND year(l.datum) >= 2003
GROUP BY placering, theYear") or die("gick inte");
if (mysql_num_rows($result) == 0)
echo "<p>Inga lopp har sprungits än i år.</p>";
else
{
echo "<table><caption>2003 och 2004</caption>";
echo "<tr><th>År</th><th>Oplacerad</th><th>etta</th><th>tvåa</th><th>trea</th><th>fyra</th><th>femma</th><th>sexa</th><th>
Insprunget</th></tr>";
$resultat = array();
while ($row = mysql_fetch_array($result))
{
$resultat[$row['theYear']][$row['placering']] = $row['antal'];
}
for ($i = 2003; $i < 2005; $i++)
{
echo("<tr>");
for ($j = 0; $j < 7; $j++)
{
echo("<td>" . (isset($resultat[$i][$j])) ? $resultat[$i][$j] : 0 . "</td>"); //rad 78...
}
...
Nu ser det ut så här. Har ändrat lite siffror i koden för att få den att hämta från 2003 och framåt i stället. Och ändrade så att den skulle hämta antalet oplacerade lopp också.
Men det blir som det blir... Inga nollor och inga årtal och får inte ens antalen att placera sig inne i tabellen. Fast siffrorna är rätt...
Vad är fel nu? http://gotlandssidor.se/forsta.php
Det vill sig inte alls för mig. Ingen som vet någon bra tutorial för hur man gör med olika funktioner som ska in i <td>... eller vad... för att det ska bli rätt.
Har försökt i flera dagar nu med att få ut summorna i tabellen.
selecten ser ut så här nu. Någon som vill hjälpa mig åtminsone en bit på väg och tala om vilken metod jag ska använda mig av. Alla försök jag gjort blir fel...
SELECT sum( prisSumma ) , year( l.datum ) AS theYear
FROM resultat r, starta s
JOIN lopp l ON r.loppID = l.loppID
AND r.loppID = s.loppID
WHERE year( l.datum ) >=2002
GROUP BY theYear