Hilfestellung bei Schleife

chill0r55555

Mitglied
Hi,

ich hänge gerade an einer Schleife. Hier mal der Code:

PHP:
 $count=0;
$count2=1;
 while ($row = oci_fetch_array ($statement, OCI_NUM)) 
 {

 if ($count == 50)
 {
 $count=0;
 $count2++;

 }


  $filename = "file".$count2.".htm";

  
 if ($count == 0)
 {
 $handle = fopen ($filename, "w+");
 }
 else
 {
 $handle = fopen ($filename, "a+");
 }

    //echo "<tr>";
    fwrite($handle, "<html><head></head><body><table border=1 cellspacing=4 cellpadding=4><tr>");

    for ($i=0; $i<count($row); $i++)
    {
       //echo "<td>".$row[$i]."</td>";    
            fwrite($handle, "<td>".$row[$i]."</td>");        
    }
   fwrite($handle, "</tr></table></body></html>");
   fclose ($handle);
   
   
 //zählt jede reihe
 $count++;   
 }

Es geht da drum, dass ich mit der while und der for-Schleife am Ende der while-Schleife eine SQL Abfrage machen und je 50 Datensätze in eine Datei schreibe. Das klappt auch wunderbar, nur komm ich grade einem Punkt nicht weiter. Und zwar würde ich gerne $filename in ein Array schreiben. Nun ist es ja so das normalerweise der gleiche Dateinamen mehrmals vorkommt (im aktuellen Beispiel 50mal), es soll aber so sein das jeder Dateinamen nur 1x im Array vorkommen soll. Ich weis das das OCI ist also PHP mit Oracle aber das spielt mal keine Rolle, da es mir ja nur um die Schleife geht. Ich seh grade den Wald vor lauter Bäumen nicht:rolleyes:

MfG
 
hi,

ich bin mir nicht ganz sicher ob ich dein Problem richtig verstanden habe, aber vielleicht hilft dir die Funktion array_unique weiter. Wenn nicht musst du mir noch mal erklären woran du genau scheiterst.

Gruß brainsucker
 
Hey,

die Funktion ist schonmal nicht Schlecht. Sowas habe ich gesucht. Nur mein Problem ist noch nicht ganz gelöst aber ich komme der lösung näher. Ich würde des so haben, dass er bei jedem durchlauf den filename ins array schreibt und wenn er dann mit der While-Schleife fertig ist oder schon vorher soll halt die Funktion array_unique drüberlaufen, somit habe ich keine Dupletten. Sprich dann steh im Array File1.htm,File2.htm,.... und nicht mehrmals File1.htm,File1.htm,File1.htm,File2.htm,File2.htm,File2.htm,...
Gruß

Edit:
PHP:
  $filename = "file".$count2.".htm";

    for ($a=0; $a<50; $a++)
    {
    $array[$a]=$filename;

    }
    $result = array_unique($array);
    echo $result[$a];

so habs ich mal aus Testzwecken gehabt aber geht leider nicht richtig.
 
Zuletzt bearbeitet:
Die Funktionen sind gut ist des was ich Such aber irgendwie stimmts noch net ganz ?!

PHP:
  $filename = "file".$count2.".htm";

$array = array();

    for ($a=0; $a<50; $a++)
    {
    if (!in_array($filename, $array)) 
    {
    $array[$a]=$filename;
    }
    echo $array[$a];
    }
 
Versuch mal folgendes:

PHP:
$filename = "file".$count2.".htm";

$array = array();

    for ($a=0; $a<50; $a++)
    {
    if (!in_array($filename, $array)) 
    {
    array_push($array, $filename)
    }
    echo $array[$a];
    }
 
Versuch mal folgendes:

PHP:
$filename = "file".$count2.".htm";

$array = array();

    for ($a=0; $a<50; $a++)
    {
    if (!in_array($filename, $array)) 
    {
    array_push($array, $filename)
    }
    echo $array[$a];
    }

ne des geht leider nicht, bekomm sowas inner ausgabe:

file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htm...........
 
Versuch das hier nochmal und schreib hier bitte rein was er ausgibt....

PHP:
$filename = "file".$count2.".htm";

$array = array();

    for ($a=0; $a<50; $a++)
    {
    if (!in_array($filename, $array)) 
    {
    array_push($array, $filename)
   array_unique($array);
    }
 
    }  
   for ($i=0;$i<count($array);$i++)
    {
     echo $array[$i];
    }
 
Versuch das hier nochmal und schreib hier bitte rein was er ausgibt....

PHP:
$filename = "file".$count2.".htm";

$array = array();

    for ($a=0; $a<50; $a++)
    {
    if (!in_array($filename, $array)) 
    {
    array_push($array, $filename)
   array_unique($array);
    }
 
    }  
   for ($i=0;$i<count($array);$i++)
    {
     echo $array[$i];
    }

So hab des jetzt mal getestet, der gibt wieder wie vorher aus...:rolleyes:
ich versteh des net. kann des an der while liegen die ganz aussen rum ist?!

Die Ausgabe:
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htmfile1.htm
file1.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htmfile2.htm
file2.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htm
file3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htm
file3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htmfile3.htm
file3.htm................................
 
Zurück