webForumDet fria alternativet

Utesluta vissa rader i databasen?

PHP

6 svar · 501 visningar · startad av Dryden

Medlem sedan aug. 200218 625 inlägg
Frågan#1

Jag sitter med taskiga php-kunskaper och försöker få ihop ett halvfärdigt script som ska bli en resultatlista i slutändan. Det ska sorteras på tiderna som angivits i en av kolumnerna. Men, jag vill helst utesluta de rader som finns i databasen som har "00:00:00" angivet, det vill säga de som aldrig kom till start/gick i mål och som således inte fick någon tid.

Just nu ser koden ut så här, för den delen av scriptet som skriver ut alla rader, sorterat på stigande där alla nollade tider kommer först.

								//Visar posterna i databasen
								while ( $rad = mysql_fetch_array($result) ) {
								$placering = $rad['placering'];
								$startnummer = $rad['startnummer'];
								$efternamn =  $rad['efternamn'];
								$fornamn = $rad['fornamn'];
								$klubb = $rad['klubb'];
								$sluttid = $rad['sluttid'];
								
								echo('<tr><td width="25" style="text-align: right; border-bottom: solid #C0C0C0 1px;">' . $placering . '&nbsp;&nbsp;&nbsp;</td><td width="20" style="border-bottom: solid #C0C0C0 1px; text-align: right;">' . $startnummer . '&nbsp;&nbsp;&nbsp;</td><td width="120" style="border-bottom: solid #C0C0C0 1px;">' . $efternamn . '</td><td width="120" style="border-bottom: solid #C0C0C0 1px;">' . $fornamn . '</td><td width="120" style="border-bottom: solid #C0C0C0 1px;">&nbsp;' . $klubb . '</td><td width="40" style="text-align: right; border-bottom: solid #C0C0C0 1px;">' . $sluttid . '</td></tr>'); }

I färdigt dokument ser det ut så här;
http://www.ostersundmarathon.se/resultat/res_2007_mara.php

Det är alltså de nollade tiderna jag vill ha bort. En lösning är att ta bort raderna helt direkt i databasen men jag vill helst slippa det av olika anledningar.

Så, någon? :)

Medlem sedan mars 20025 907 inlägg
#2

Jag hade filtrerat bort dem direkt i sql-frågan.

$result = mysql_query("select * from tabell where sluttid <> '00:00:00' order by sluttid asc");

Annars kan du göra något sådant här

//Visar posterna i databasen
while ( $rad = mysql_fetch_array($result) ) {
	if($rad['sluttid'] != '00:00:00') {
		$placering = $rad['placering'];
		$startnummer = $rad['startnummer'];
		$efternamn =  $rad['efternamn'];
		$fornamn = $rad['fornamn'];
		$klubb = $rad['klubb'];
		$sluttid = $rad['sluttid'];
								
		echo('<tr><td width="25" style="text-align: right; border-bottom: solid #C0C0C0 1px;">' . $placering . '&nbsp;&nbsp;&nbsp;</td><td width="20" style="border-bottom: solid #C0C0C0 1px; text-align: right;">' . $startnummer . '&nbsp;&nbsp;&nbsp;</td><td width="120" style="border-bottom: solid #C0C0C0 1px;">' . $efternamn . '</td><td width="120" style="border-bottom: solid #C0C0C0 1px;">' . $fornamn . '</td><td width="120" style="border-bottom: solid #C0C0C0 1px;">&nbsp;' . $klubb . '</td><td width="40" style="text-align: right; border-bottom: solid #C0C0C0 1px;">' . $sluttid . '</td></tr>'); 
	}
}

/r kom med lite mycket...

Medlem sedan juli 20033 147 inlägg
#3

Visa gärna SQL-frågan ovanför loopen. :)

/r Peeer hann före.

Medlem sedan aug. 200218 625 inlägg
#4

Så här ser det ut där från början, utan Peers tillägg.

								$result = @mysql_query("SELECT * FROM 2007_resultat WHERE distans='42195' ORDER BY sluttid ASC");
								
			
									if (!$result) {
									die('<br>Error- fixar inte att ställa frågan: ' .
									mysql_error() . '<br /><br />');
									}
Medlem sedan mars 20025 907 inlägg
#5
 $result = @mysql_query("SELECT * FROM 2007_resultat WHERE distans='42195' and sluttid <> '00:00:00' ORDER BY sluttid ASC");
Medlem sedan aug. 200218 625 inlägg
#6

Det där löste allt! Tackar så mycket!

15 minuter. Inte illa. :e

Medlem sedan mars 20025 907 inlägg
#7

Gott! :)

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)