Hallo WEB-Fans,
Eure Unterstützung war gleich Null. Aber das ist gut so. Jetzt habe ich mir selber geholfen. Und war gezwungen mich in das Thema einzuarbeiten. Ich verstehe jetzt das Thema Arrays auch besser.
Das Script vom 18.6.2009 ist voller Fehler und hinterlies den Eindruck, der hat ja wohl gar nichts verstanden.
Hier ist aber ist die Lösung: Eine Text-Datei einlesen und sortiert nach Spalten ausgeben. Die Tabelle bietet auch die Möglichkeit mehrer Spalten durch Ancliken (Pfeil up u. down) nach Ausgabe erneut zu sortieren. Array-multisort ist wohl ein heikles Thema für viele. Habe nichts Vergleichbares gefunden. Ein Teil stammt aus: <!-- w --><a class="postlink" href="http://www.php-kurs.com">http://www.php-kurs.com</a><!-- w -->.
Hier jetzt erst der Input /Output und danach mein Script.
Ich will versuchen ein Screen-shot als Anhang zur Verfügung zustellen.
Aber wie lädt man hier den Anhang? Und wo ist die Hilfe? Anhang geht offenbar nicht - sorry.
Mein Dank an Axel. Dank seines PHP-Toturials bin ich im Rating vom Alzheimer-Ast etwas höher bewertet worden oder?
Farmer u. Rentner in Afrika
Huberg
<?php // Version Name_627.php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
echo "name_xyz.txt Daten Stand 27.6.2009";
$array = file("$DOCUMENT_ROOT/../htdocs/Daten/name_xyz.txt");
$anzahl_zeilen = count($array);
echo "<br/>"; echo "<br/>";
echo 'array vor der Sortierung und vor der Trennung mit explode' ;
echo "<pre>";
print_r ($array); // nur fuer Test
echo "array in 5 Spalten (arrays) zerlegt " ;
echo "<br/>"; echo "<br/>";
for ($i = 0; $i < $anzahl_zeilen ; $i++)
{
// Zeilen in Spalten speichern -----------------------------
$line = explode ("|" , $array[$i]) ;
$datum[$i] = strtolower ($line[0] );
$name[$i] = strtolower ($line[1]);
$betrag[$i] = strtolower ($line[2]);
$bemerkung[$i]= strtolower ($line[3]);
$kz[$i] = strtolower ($line[4]);
print_r ($datum[$i]); // nur fuer Test
print_r ($name[$i] );
print_r ($betrag[$i] );
print_r ($bemerkung[$i] );
print_r ($kz[$i] );
}
switch ( $_GET['sortierung'] )
{
case ( "d"
array_multisort($datum, SORT_ASC, $name, SORT_ASC,$betrag, SORT_ASC, $bemerkung, SORT_ASC );
echo "nach switch/case d"; // nur fuer Test
break;
case ( "da"
array_multisort($datum, SORT_DESC, $name, SORT_DESC, $betrag, SORT_DESC, $bemerkung, SORT_ASC );
echo "nach switch/case da"; // nur fuer Test
break;
case ( "b"
array_multisort( $name, SORT_ASC, $datum, SORT_ASC, $betrag,SORT_ASC,$bemerkung, SORT_ASC );
echo "nach switch/case b"; // nur fuer Test
break;
case ( "ba"
array_multisort( $name, SORT_DESC,$datum, SORT_DESC,$betrag, SORT_DESC,$bemerkung, SORT_DESC );
echo "nach switch/case ba"; // nur fuer Test
break;
case ("o"):
array_multisort( $betrag, SORT_ASC,$name, SORT_ASC,$datum, SORT_ASC,$bemerkung, SORT_ASC);
echo "nach switch/case o = Betrag aufsteigend"; // nur fuer Test
break;
case ("oa"):
array_multisort( $betrag, SORT_DESC,$name, SORT_DESC,$datum, SORT_DESC,$bemerkung, SORT_DESC);
echo "nach switch/case oa = Betrag absteigend"; // nur fuer Test
break;
DEFAULT:
array_multisort($datum, SORT_ASC, $name, SORT_ASC,$betrag, SORT_ASC, $bemerkung, SORT_ASC );
}
ausgabe_tabelle ( $datum, $name, $betrag, $bemerkung, $kz, $anzahl_zeilen);
// ------------------------------------------------------------------
function ausgabe_tabelle ( $datum, $name, $betrag, $bemerkung, $kz, $anzahl_zeilen)
{
echo '<table border="1" cellpadding="6" cellspacing="0">';
echo '<tr bgcolor="#6CF8E6">';
echo '<th>';
echo 'Datum ';
echo '<a href="Name_627.php?sortierung=d">↓</a>';
echo ' ';
echo '<a href="Name_627.php?sortierung=da">↑</a>';
echo '</th>';
echo '<th>';
echo 'Name ';
echo '<a href="Name_627.php?sortierung=b">↓</a>';
echo ' ';
echo '<a href="Name_627.php?sortierung=ba">↑</a>';
echo '</th>';
echo '<th>';
echo 'Betrag ';
echo '<a href="Name_627.php?sortierung=o">↓</a>';
echo ' ';
echo '<a href="Name_627.php?sortierung=oa">↑</a>';
echo '</th>';
echo '<th>';
echo 'Bemerkung ';
echo '</th>';
echo '<th>';
echo ' Kz';
echo '</th>';
echo '</tr>';
// -------------------------------------------------------------------
for ($i = 0; $i < $anzahl_zeilen; $i++)
{
// var_dump($datum); // nur fuer Test
$zeilenr++;
echo '<tr';
echo farbwechsel ( $zeilenr );
echo '>';
echo '<td>';
echo $datum[$i];
echo '</td>';
echo '</td>';
echo '<td>';
echo $name[$i];
echo '</td>';
echo '</td>';
echo '<td>';
echo $betrag[$i];
echo '</td>';
echo '<td>';
echo $bemerkung[$i];
echo '</td>';
echo '<td>';
echo $kz[$i];
echo '</td>';
echo '</tr>';
} }
echo '</table>';
// -----------------------------------------------------------
function farbwechsel ( $zeilenr )
{
if ( bcmod ( $zeilenr , '2' ) == 0 ) {
$hintergrundfarbe = ' bgcolor="#ACC8F0" ';
} else
{ $hintergrundfarbe = ' bgcolor="#DDE8F9" '; }
return ( $hintergrundfarbe );
}
?>
[/code]