Einen Wert nur einmal ausgeben!

OH OH! ich habe jetzt 33 Bilder upgeloadet! machs nicht! aber wenn ich 32 eingebe, dann kommen 29 Bilder! wenn ich 33 eingebe dann kommen 29 Bilder wenn 34 schreibe kommen 33 Bilder! häää! das ist so ein ! ich lass es für heute besser! ^^ mach am do weiter!! das gibt es ja nicht! so ein schei**dreck!
 
Ja, es kommt auch darauf an wie das Suchergebnist ist! wenn du 34 Bilder hochlädst, aber das Ergebnis 29 ist wirst du trotzdem nur 29 Bilder erhalten ;)
 
Aufjeden Fall ist es nicht meine Schuld! Dein Parser spinnt ;) :-) ! Dem ists bestimmt zu blöd geworden, jetzt hat er sich gedacht, hey, die lassen mich endlos hier arbeiten, dann verarsch ich die mal ein wenig, und parse das ganze ein bisschen falsch! :-)
 
^^ ich habe jetzt alle 33 bilder das gleiche stichwort hinzugefügt! jetzt passts?!! cool! ka ich geh jetzt zum augenarzt! bye! DANKE DANKE DANKE FÜR EURE/DEINE HILFE!! BIS DO
 
MORGEN!! ICH BIN DRAUFGEKOMMEN WAS NICHT PASST!! Wenn ich bei einen Bild mehr als ein Stichwort habe, dann spinnt das! wenn ich bei einen Bild 2 Stichwörter gebe, dann bekommt das Bild 2 "Plätze" bei der Anzeige! -> der Rest wird nicht mehr angezeigt!

der Code:

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="";
  $link_prev="";
  $count=count($id_a);
  $anzahl=32;
  $show_end=0;
  
  if($count>$anzahl){ 
  
    $id_a_limit=array();
    
    if(isset($_GET['show_results'])){
      $show_end=$_GET['show_results'];
    }
    for($x=0;$x<$count;$x++){
      $id_a_limit[$x]=$id_a[$x];
    }
    
    $id_a_main=$id_a_limit;
    if($show_end+$anzahl<$count ){
      $value=$show_end+$anzahl;
      $link_next="<a href=".$_SERVER['PHP_SELF']."?show_results=".$value."&zusammenfassung=$zusammenfassung>next</a>";
    }
    if($show_end>0){
      $value=$show_end-$anzahl;
      $link_prev="<a href=".$_SERVER['PHP_SELF']."?show_results=".$value."&zusammenfassung=$zusammenfassung>back</a>";
    }
    
  }
  
  foreach($id_a_main as $id_v){
    
    $where_for_query.= "id='".$id_v."' OR ";
    
  }
  
  $where_for_query=substr($where_for_query,0,strlen($where_for_query)-4);
  
  $sp=0;
echo "<table cellspacing=\"3\" cellpadding=\"3\">";
  echo "<tr>";
  $abfrage="SELECT name FROM file WHERE ".$where_for_query." LIMIT ".$show_end.",".$anzahl;
  $ergebnis=mysql_query($abfrage) or die(mysql_error());
  while($row=mysql_fetch_array($ergebnis)){
    $sp++ ;
    $bild=$row['name'];
    echo "<td valign=\"middle\" align=\"center\" style=\"BORDER:1px solid #CCCCCC;\">";
	echo "<a href='picture2_admin1.php?id=$bild&zusammenfassung=$zusammenfassung'><img src=\"thumbs/$bild\" border='0' ></a></td>";
    if(($sp%8)==0){
      echo "</tr><tr>";
    }
    
  }
  echo "</tr></table>";
  
  
  echo $link_next;
  echo $link_prev;

MFG Dönerman
 
Ich speichere es so, dass ich für jedes Stichwort für jedes Bild einen Eintrag mache!
Also:
Bildname = 2.jpg (ein Auto), id 200
Stichwörter: car, ford

in der DB steht dann
id | name | file_id
255 car 200
256 ford 200

usw! kann das der Fehler sein?
 
Eigentlich dürfte das nicht der Fehler sein, da das Script ja alle doppelten FILE-id's löscht!

Zuerst werden ALLE Datei-ID's in die Variable geschrieben, danach wird die Variable in ein Array konvertiert und mit der Funktion array_unique entfernen wir dann alle Doppelten Datei-ID's! Daher dürfte jedes Bild, egal ob einmal oder hundertmal gefunden, nur einmal ausgegeben werden!

Sagt zumindes die Logik! Es MUSS so ablaufen! Ich erkenne keinen Fehler! :confused:

//edit: Mein 300ster Beitrag! JUHUU
 
Zuletzt bearbeitet:
Zurück