Einen Wert nur einmal ausgeben!

also das ist mein gesammtes script!
PHP:
 $eintraege=explode("|",$zusammenfassung); 
 for ($x=0;$x<count($eintraege);$x++)
 {   
  
 	$abfrage = "SELECT  * FROM catchword where name = '$eintraege[$x]' AND file_id !='1'";
 	$ergebnis = mysql_query($abfrage);
 	while($row = mysql_fetch_object($ergebnis))
 		{
 		$id = $row->file_id;
 	
 			$abfrag = "SELECT name FROM file where id = '$id' ";
 			$ergebni = mysql_query($abfrag);
 			while ($rows = mysql_fetch_array($ergebni))
 			{
 			$bild = array_unique($rows);
 				foreach($bild as $bild_v)
 				{
 				echo $bild_v."<br />";
 				}   
 			   }
 		}
 
 }

Ich glaube es liegt daran, das es in der for schleife liegt! oder?
 
Eine Frage hab ich noch! Wenn du sie "richtig" beantwortest hab ich eine Lösung für dich! Jede "id" einer Datei ist einzigartig oder? Gibt es auch 2 ID's mit gleichem Namen? (z.B.:
  • id=1 name='name1und2'
  • id=2 name='name1und2'
 
Dann versuch mal folgendes:

PHP:
  $eintraege=explode("|",$zusammenfassung);
  $trennzeichen="|*.*|";
  
  for($x=0;$x<count($eintraege);$x++){
  
    $abfrage = "SELECT * FROM catchword WHERE name='$eintraege[$x]' AND file_id!='1'";
    $ergebnis = mysql_query($abfrage);
    while($row = mysql_fetch_object($ergebnis)){
    
      $id .= $row->file_id.$trennzeichen;
    
    }
  
  }
  
  $id = substr($id,0,strlen($id)-strlen($trennzeichen));
  $id_a=explode($trennzeichen,$id);
  $id_a=array_unique($id_a);
  foreach($id_a as $id_v){
  
    $abfrage="SELECT name FROM file WHERE id='$id_v'";
    $ergebnis=mysql_query($abfrage);
    while($row = mysql_fetch_array($ergebnis)){
      echo $row['name']."<br>";
    }
  
  }
Zur Erklärung:
In den ersten beiden Schleifen hab ich die ID's mit einem Trennzeichen in eine Variable geschrieben und danach die Schleifen beendet! Danach hab ich die ID-Variable in ein Array umgewandelt (explode();) und alle doppeleten Einträge entfernt! Danach war es ein Leichtes für jedes Array eine DB-Abfrage zu starten! ;-) Ich hoffe das wars!
 
Zurück