webForumDet fria alternativet

Nästan fungerande kod

6 svar · 288 visningar · startad av streetrobban

streetrobbanMedlem sedan jan. 20011 140 inlägg
#1

Tja, jag har ett lite problem. Jag har saxat lite kod ur min hemsida som gör att det visas namn på bilder under dess datum. Så att det ser ut exempelvis så här:

[red]2004-10-06[/red]
bild1.gif
bild2.gif
bild3.gif

[red]2004-10-05[/red]
bild1.gif
bild2.gif

Men jag vill att det ska se ut som nedan. Men jag får inte riktigt till det:

[red]2004-10-06[/red]
Det finns totalt 3 bilder. Visa alla.

[red]2004-10-05[/red]
Det finns totalt 2 bilder. Visa alla.

Här är PHP-koden:

<?php
// Öppna databasen
require 'inc/db.php';

// Visa samtliga bilder
$get = mysql_query("SELECT * FROM Bilder ORDER BY datum DESC");		
		
$previous = "";
		
while($userRow = mysql_fetch_array($get))
{
	$bildnamn = $userRow['namn'];
	$datum = $userRow['datum'];
	$klubb = $userRow['klubb'];
	$id = $userRow['id'];
		
	if ($previous != $datum)
	{
		$previous = $datum;
		echo "<br><img src=gfx/ikon.blob.gif><a href=vimmel-spec.php?klubb=$klubb&datum=$datum><span class=rubrik>$datum</span></a><br>";
		echo "$bildnamn<br>";
	}
	else
	{
		echo "$bildnamn<br>";
	}
}

// Stäng databasen
mysql_close($open);
?>
EitrazMedlem sedan sep. 2002366 inlägg
#2

Tja! Det här kan du kunna använda för att visa som du vill (sen får du göra nåt eget för att visa alla bilder under ett visst datum) ;)

$query = mysql_query("SELECT COUNT(id),datum FROM bilder GROUP BY datum ORDER BY datum DESC");
while (list($num,$datum) = mysql_fetch_array($query)) {
	print "<b>$datum</b><br>";
	print "Det finns totalt $num bilder. <a href=\"vimmel-spec.php?datum=$datum\">Visa alla</a>.<br><br>";
}
EitrazMedlem sedan sep. 2002366 inlägg
#3

Verkade bli nåt fel med postningen här, hoppas du ser mitt lilla inlägg ;)

streetrobbanMedlem sedan jan. 20011 140 inlägg
#4

Prefekt, jag behövde bara lägga till WHERE klubb = '$klubb' så den hittade rätt klubb också :)

$query = mysql_query("SELECT COUNT(id),datum FROM bilder WHERE klubb = '$klubb' GROUP BY datum ORDER BY datum DESC");
while (list($num,$datum) = mysql_fetch_array($query)) {
    print "<b>$datum</b><br>";
    print "Det finns totalt $num bilder. <a href=\"vimmel-spec.php?datum=$datum\">Visa alla</a>.<br><br>";
}
SkarreMedlem sedan apr. 20012 427 inlägg
#5

Försök lösa det på något sätt med en matris istället. En sql-fråga per datum kan bli lite krävande. Beroende på hur många datum det rör sig om naturligtvis.

streetrobbanMedlem sedan jan. 20011 140 inlägg
#6

Skarre: Hur menar du, vad är en matris? Ja, det kommer nog att bli en hel del datum senare, med tiden.

Koden funkar dock inte riktigt som jag vill. Den lägger alla bilder (oavsett datum!) under samma klubb.

[b]Så här gör den nu:[/b]
[red]2004-10-06 - Klubb A[/red]
bild1.gif (2004-10-06)
bild2.gif (2004-10-05)

[red]2004-10-05 - Klubb B[/red]
bild3.gif (2004-10-05)

[b]Men jag vill att den ska göra så här istället:[/b]
[red]2004-10-06 - Klubb A[/red]
bild1.gif (2004-10-06)

[red]2004-10-05 - Klubb A[/red]
bild2.gif (2004-10-05)

[red]2004-10-05 - Klubb B[/red]
bild3.gif (2004-10-05)

Detta är PHP koden som felet ligger i:

<?php
// Öppna databasen
require '../inc/db.php';

// Räkna bilderna
$get = mysql_query("SELECT * FROM Bilder");
$rowCount = mysql_num_rows($get);
{
	echo "Klicka på länken för att redigera. Klicka på&nbsp;&nbsp;<img src=../gfx/ikon.papperskorg.gif> för att ta bort.<br>";
	echo "Det finns totalt $rowCount bilder.<br>";
}

// Visa samtliga bilder under dess datum
$get = mysql_query("SELECT * FROM Bilder ORDER BY datum,klubb DESC");		

$previous = "";

while($userRow = mysql_fetch_array($get))
{
	$bildnamn = $userRow['namn'];
	$datum = $userRow['datum'];
	$klubb = $userRow['klubb'];
	$id = $userRow['id'];

	if ($previous != $klubb)
	{
		$previous = $klubb;
		echo "<br><img src=../gfx/ikon.blob.gif><span class=rubrik>$datum - $klubb</span><br>";
		echo "<a href=vimmel-tabort.php?id=".$userRow['id']." onClick=\"return confirm('Vill du verkligen ta bort bilden?');\" title=\" Kasta \"><img src=../gfx/ikon.papperskorg.gif border=0></a><a href=vimmel-andra2.php?id=".$userRow['id'].">$bildnamn</a><br>";
	}
	else
	{
		echo "<a href=vimmel-tabort.php?id=".$userRow['id']." onClick=\"return confirm('Vill du verkligen ta bort bilden?');\" title=\" Kasta \"><img src=../gfx/ikon.papperskorg.gif border=0></a><a href=vimmel-andra2.php?id=".$userRow['id'].">$bildnamn</a><br>";
	}
}		

// Stäng databasen
mysql_close($open);
?>
EitrazMedlem sedan sep. 2002366 inlägg
#7

Lägg till en till "previous_date" eller nåt och lägg in i din if-sats till:
if ($previous != $klubb || $previous_date != $datum)
Har inte testat men det borde väll funka eller? (glöm inte att sätta $previous_date = $datum; bara.)

131 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)