Einen Wert nur einmal ausgeben!

Zähl doch einfach die Id's im Id-Array:

PHP:
$count=count($id_a);

Vollständig sähe das dann so aus:
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);

  //HIER ERGEBNISSE ZÄHLEN
  $count=count($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>"; 
    } 
   
  }
 
Naja, ok, so einfach ist das auch nicht, da man nicht einfach das Limit in der DB-Abfrage hernehmen kann! Dafür haben wir aber ein Array, welches die ID's enthält. Wir haben vorhin gerade die ID's gezählt also wissen wir wieviele Ergebnisse der Spaß liefert. Nehmen wir an wir wollen 5 Ergebnisse anzeigen. Dann müssen wir ein neues Array erzeugen dass zuerst die ersten 5 ID's enthält. Ich würde das mal so bewerkstelligen:

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); 
  $id_a_main=$id_a;
  $link_next="";

  //HIER ERGEBNISSE ZÄHLEN 
  $count=count($id_a); 
   
if($count>5){

    $id_a_limit=array();

    if(isset($_GET['show_results'])){
        $show_end=$_GET['show_results']+5;
    }else{
        $show_end=5;
    }
    for($x=$show_end-5;$x<$show_end;$x++){
        $id_a_limit[$x]=$id_a[$x];
    }

    $id_a_main= $id_a_limit;
    $link_next="<a href='?show_results=".$show_end."'>weiter</a>";

}

  foreach($id_a_main 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>";  
    }  
    
  }

echo $link_next;

So in etwa würde ich es machen! Ich bin mir zwar nicht sicher ob Fehler drin sind und obs funktioniert, und man müsste auch den Zurückbutton noch dazumachen aber ich denke, das bekommst du alleine hin, und das Prinzip solltest du verstanden haben! Für fragen stehe ich weiters gerne zur Verfügenung!
 
ok! Danke! ich versuchs! ehmm.. ich will 8 ausgeben, und ersetzte alle 5er durch 8er, aber er gibt mir nur 6 Bilder aus!, vielleicht liegt das daran, wegen den doppelten Bilder die man löscht?
 
Zurück