Einmalige datenbank ausgabe wie?

  • Themenstarter Themenstarter Xingbobo
  • Beginndatum Beginndatum
X

Xingbobo

Hallo

ich habe eine Datenbank wo immer ein Datum drinne steht. Im Format "Y-m-d".
Nun soll mein php script die Datums auslese aber die die doppelt drinne sind einmal.

also wenn 2 bis 20 mal der 07.07.2010 drine steht soll er es nur einmal anzeigen.


hier mal mein php script

PHP:
<?PHP 			
				include ("../includes/_config.php");
				$query1 = "SELECT datum, schicht, if( (schicht like '%1.%' or schicht='egal'),'X','') as FS , if( (schicht like '%2.%' or schicht='egal'),'X','') as SS, if( (schicht like '%3.%' or schicht='egal'),'X','') as NS FROM `eingabe` where datum='$_POST[theDate_start]' GROUP BY schicht";
				$result1 = mysql_query($query1);
				while ($line = mysql_fetch_array($result1)) { 

?><?php echo $line[FS]; }?>

Es gibt in der Datenbank noch die tabelle schicht. mit früschicht spätschicht nachtschicht und egal. das script gibt nicht den text aus der in der DB steht sondern er gibt X aus. was egal ist es geht um das datum was nur einmal gezählt werden soll.
 
Du hast ja schon ein Group By. Entweder du nimmst dort noch das Datum rein, oder du machst ein DISTINCT

SQL:
SELECT DISTINCT
	datum, 
	schicht, 
	if( (schicht like '%1.%' or schicht='egal'),'X','') as FS , 
	if( (schicht like '%2.%' or schicht='egal'),'X','') as SS, 
	if( (schicht like '%3.%' or schicht='egal'),'X','') as NS 
FROM 
	`eingabe` 
where 
	datum='$_POST[theDate_start]' 
GROUP BY 
	schicht
oder mittels GROUP BY
SQL:
SELECT 
	datum, 
	schicht, 
	if( (schicht like '%1.%' or schicht='egal'),'X','') as FS , 
	if( (schicht like '%2.%' or schicht='egal'),'X','') as SS, 
	if( (schicht like '%3.%' or schicht='egal'),'X','') as NS 
FROM 
	`eingabe` 
where 
	datum='$_POST[theDate_start]' 
GROUP BY 
	datum,
	schicht
 
Zuletzt bearbeitet von einem Moderator:
also so wie ich es mir gedacht habe alles zusammen zu fassen funktioniert nicht.

nun eine andere Idee

ich will die funktion so lassen die ich geschrieben habe nur das es einen bestimmten zeitraum auswählt
geänderte version von datum:
PHP:
<?PHP             
                include ("../includes/_config.php");
                $query1 = "SELECT datum, schicht, if( (schicht like '%1.%' or schicht='egal'),'X','') as FS , if( (schicht like '%2.%' or schicht='egal'),'X','') as SS, if( (schicht like '%3.%' or schicht='egal'),'X','') as NS FROM `eingabe` where datum>='$_POST[theDate_start]'  and datum<='$adddatum'";
                $result1 = mysql_query($query1);
                while ($line = mysql_fetch_array($result1)) { 

?><?php echo $line[FS]; }?>

bis jetzt alles klar er gibt mir alle Dates aus die in der DB sind.

nun will ich das echo $line[FS]; ein bestimmtes Datum ausgibt. Das heist ich wähle 20.07.2010 bis 30.07.2010 aus und will mir aber 23.07.2010 ausgeben lassen.

Wie mache ich das?


Vielen dasnk für die schnelle antwort.
 
Zurück