Web-TorMedlem sedan nov. 200013 890 inlägg Jag är i behov av hjälp! :x
Jag har tänkt så det knakar men har ingen lösning i sikte.
Jag har en databas med tre kolumner.
Dom ser ut så här:
[b]Name | Week | Status[/b]
-----------------------
Kalle | 10 | 10
Kalle | 12 | 20
Kalle | 14 | 30
Kalle | 15 | 40
Lasse | 12 | 21
Lasse | 14 | 31
Lasse | 15 | 41
Lasse | 16 | 51
Nu skulle jag vilja ha ut all data och visa den i en vanlig tabell.
Så här ungefär:
[b]Week Kalle Lasse[/b]
-----------------------
10 10 -
12 20 21
14 30 31
15 40 41
16 - 51
Antalet personer och veckor är inte konstant utan kan variera.
Visa nu vad ni går för och hjälp en stackars PHP-kompis. :)
------------------
/Tor
www.tor.nu
[Redigerat av Web-Tor den 24 okt 2001]
pimmeMedlem sedan sep. 20011 086 inlägg $sql = "select distinct week from tabell";
$res = mysql_query($sql);
while($row = mysql_fetch_object($res)){
$sql2 = "select * from tabell where week = $row->week";
$res2 = mysql_query($sql2);
while($row2 = mysql_fetch_object($res2)){
echo $row2->name
}
}
borde fungera....
------------------
//pimme
Web-TorMedlem sedan nov. 200013 890 inlägg Nja...
Det enda jag får ut på skärmen är:
Kalle
Kalle
Lasse
Kalle
Lasse
Kalle
Lasse
Lasse
------------------
/Tor
www.tor.nu
pimmeMedlem sedan sep. 20011 086 inlägg jo, men du får ju ändra lite i utskriften så att du får rätt format.....
------------------
//pimme
Web-TorMedlem sedan nov. 200013 890 inlägg Läs igenom mitt första inlägg en gång till. Jag vill att den skall skriva ut Kalle EN gång och Lasse EN gång. ;)
Sedan måste jag ju få ut veckorna och statusen också...
------------------
/Tor
www.tor.nu
pimmeMedlem sedan sep. 20011 086 inlägg echo "<table><tr><th>Week</th>";
while($hej = mysql_fetch_object(mysql_query("select distinct name from tabell"))){
echo "<th>$hej->name</th>";
}
echo "</tr>";
sql = "select distinct week from tabell";
$res = mysql_query($sql);
while($row = mysql_fetch_object($res)){
echo "<tr>";
echo "<td>$row->week</td>";
$sql2 = "select * from tabell where week = $row->week";
$res2 = mysql_query($sql2);
while($row2 = mysql_fetch_object($res2)){
echo "<td>$row2->status</td>";
}
echo "</tr>";
}
nåt sånt kanske
------------------
//pimme
[Redigerat av pimme den 25 okt 2001]
Web-TorMedlem sedan nov. 200013 890 inlägg Nu är det nära!
Så här set utskriften ut nu:
[b]Week Kalle Lasse[/b]
-----------------------
10 10
12 20 21
14 30 31
15 40 41
16 [b][red]51[/b]
Det blir bara ett litet fel. :x
Statusen för vecka 16 hamnar på Kalle i stället för Lasse...
------------------
/Tor
www.tor.nu
[Redigerat av Web-Tor den 25 okt 2001]
KimMedlem sedan jan. 20007 697 inlägg Jag lånar pimmes kod så länge
echo "<table><tr><th>Week</th>";
while($hej = mysql_fetch_object(mysql_query("select distinct name from tabell"))) {
echo "<th>$hej->name</th>";
}
echo "</tr>";
sql = "select distinct week from tabell";
$res = mysql_query($sql);
while($row = mysql_fetch_object($res)) {
echo "<tr>";
echo "<td>$row->week</td>";
$sql2 = "select * from tabell where week = $row->week";
$res2 = mysql_query($sql2);
while($row2 = mysql_fetch_object($res2)) {
if (!$row2->status) {
echo "<td>-</td>";
}else {
echo "<td>$row2->status</td>";
}
echo "</tr>";
}
------------------
-mucho-
Web-TorMedlem sedan nov. 200013 890 inlägg Det gjorde tyvärr inte nån skillnad Kim. :(
if (!$row2->status) {
echo "<td>-</td>";
}else {
echo "<td>$row2->status</td>";
}
$row2->status har ju alltid ett värde...
------------------
/Tor
www.tor.nu
KimMedlem sedan jan. 20007 697 inlägg Stupid me! Vad har det för värde när det blir tomt då?
------------------
-mucho-
Web-TorMedlem sedan nov. 200013 890 inlägg Den blir ju aldrig tom. Det är det som är problemet...
Om vi tar den första raden:
[b]Week Kalle Lasse[/b]
-----------------------
10 10 -
Denna vecka har alltså inte Lasse rapporterat nån status och jag vill skriva ut ett streck.
Hur mycket jag än tänker så kommer jag inte på någon lösning. :x
------------------
/Tor
www.tor.nu
KimMedlem sedan jan. 20007 697 inlägg Vad får du ut för värde då? Du måste ju få ut något värde väl?
Sen är det väl bara att ersätta det med hjälp av str_replace()
------------------
-mucho-
LarsGMedlem sedan dec. 200012 464 inlägg $sql2 = "select * from tabell t1 left join tabell t2 on t2.week = $row->week
and t1.name = t2.name and t1.week = t2.week";
Kanske värt att testa?
------------------
essentitia preter non sans multiplicandum
Web-TorMedlem sedan nov. 200013 890 inlägg Utskriften blir så här:
Week Kalle Lasse
-----------------------
10 10 [b][red]*[/b]
12 20 21
14 30 31
15 40 41
16 51 [b][red]*[/b]
* innebär att den inte skriver ut någonting. Inte ens en cell.
Raden där det står echo "<td>$row2->status</td>"; körs bara en gång för vecka 10 och 16.
------------------
/Tor
www.tor.nu
[Redigerat av Web-Tor den 25 okt 2001]
Web-TorMedlem sedan nov. 200013 890 inlägg Jag fattar faktiskt inte hur jag skall använda din sql-fråga Lars men det verkar som en väldigt krånglig lösning.
Att visa resultatet från en databas i en matris borde ju vara skitlätt! Jag fattar inte att det skall vara så krångligt.
Ingen som kan komma på något annat sätt att lösa problemet?
------------------
/Tor
www.tor.nu
LarsGMedlem sedan dec. 200012 464 inlägg Jag tänkte bara att du skulle ersätta pimmes $sql2 med min fråga.
Använder du Mysql?
------------------
essentitia preter non sans multiplicandum
Web-TorMedlem sedan nov. 200013 890 inlägg Faran över!
Min ASP-kunniga kollega har återigen kommit till min räddning.
------------------
/Tor
www.tor.nu
[Redigerat av Web-Tor den 25 okt 2001]