php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.10.2009, 10:11  
Neuer Benutzer
 
Registriert seit: 01.10.2009
Beiträge: 1
PHP-Kenntnisse:
Anfänger
Jenni86 befindet sich auf einem aufstrebenden Ast
Standard Sortieralgorithmus

Halli Hallo,

bin ein PHP-Neuling und habe natürlich auch gleich ein Problem (für euch sicherlich keins )
Habe eine Webseite übernommen, in der mit PHP gearbeitet wird. Nur leider funktioniert es nicht ganz mit dem Sortieren.
Es geht um die Darstellung von Sportlern, JAHRESWEISE. Die Jahre 2006-2008 werden richtig sortiert (2008 - 2007 - 2006).
Nun geht es um das aktuelle Jahr 2009. Diesem Jahr wird als Überschrift hinzugefügt, Aktuelle Saison. Demzufolge sollten die Sportler auch ganz oben erscheinen. Jedoch erscheinen sie als letztes.

Wie kann ich einen Sotieralgorithmus mit einbauen? Und wie sieht sowas dann aus?

Der Quellcode sieht so aus:

PHP-Code:
<?

$pfad2
=substr(str_replace('\\''/',dirname(__FILE__)).'/',strlen($origpfad))."Kadersportler/";

function 
jahrweise($pfad)
{
$verz=opendir ($pfad);
while (
$file=readdir($verz))
{
if (
filetype($pfad.$file)=="dir" && $file!="." && $file!="..")
{
if (
file_exists($pfad.$file."/spez.txt") && file_exists($pfad.$file."/bild.jpg"))
{
$datei = @ fopen($pfad.$file."/spez.txt""r");
echo 
"<div class='kadersportler'";
echo (
eregi("MSIE",getenv('HTTP_USER_AGENT'))) ? " onmouseover='this.childNodes[2].style.visibility=\"visible\"' onmouseout='this.childNodes[2].style.visibility=\"hidden\"'>" ">";
echo 
"<img src='/".pfadersetz($pfad.$file)."/bild.jpg' alt='".textersetz($file)."'>";
echo 
"<h4 style='font-size:12px;margin-bottom:0px;text-align:center;'>".textersetz($file)."</h4>";
echo 
"<div class='kaderbeschreibung'>";
echo 
"<dl>";
echo 
"<dt>Geburtsdatum</dt><dd>".fgets($datei)."</dd>";
fgets($datei);
echo 
"<dt>Kader</dt><dd>".fgets($datei)."</dd>";
echo 
"<dt>Hauptschwimmart</dt><dd>".textersetz(fgets($datei))."</dd>";
echo 
"<dt>beim HSV seit</dt><dd>".textersetz(fgets($datei))."</dd>";
echo 
"</dl>";
echo 
"</div></div>";
fclose($datei);
}
}
}
}
$verz=opendir ($pfad2);
while (
$file=readdir($verz))
{
if (
filetype($pfad2.$file)=="dir" && $file!="." && $file!=".." && is_numeric($file))
{
$neujahr=intval($file)+1;
echo (
date('Y')==$file) ? "<h2>Aktuelle Saison (".$file."/".$neujahr.")</h2>" "<h2 style='padding-top:25px'>Saison ".$file."/".$neujahr."</h2>";
jahrweise($pfad2.$file."/");
}
}
?>
Ich hoffe ihr könnt mir helfen, stehe da leider total auf dem Schlauch...

DANKE
Jenni86 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.10.2009, 12:22  
Moderator
 
Benutzerbild von Asipak
 
Registriert seit: 18.07.2005
Beiträge: 4.072
Asipak sorgt für eine eindrucksvolle AtmosphäreAsipak sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

ehrlich gesagt kann ich da jetzt gar keine Sortierung erkennen. Vermutlich wurden die Daten nur bereits vorher sortiert in die Textdatei eingetragen! Dementsprechend müsstest du die Sportler des Jahres 2009 beim Eintragen an den Anfang der Datei schreiben und nicht an das Ende.

Oder du speicherst vor jede Zeile in der Datei das aktuelle Jahr und liest jede Zeile in ein Array ein, z.B. mit PHP: file - Manual . Dann kannst du alle Einträge mit PHP: sort - Manual oder PHP: rsort - Manual sortieren.

Habe mir mal von meinem Editor den Quelltext etwas besser formatieren lassen:

PHP-Code:
function jahrweise($pfad) {
  
$verz=opendir ($pfad);
  while (
$file=readdir($verz)) {
    if (
filetype($pfad.$file)=="dir" && $file!="." && $file!="..") {
      if (
file_exists($pfad.$file."/spez.txt") && file_exists($pfad.$file."/bild.jpg")) {
        
$datei = @ fopen($pfad.$file."/spez.txt""r");
        echo 
"<div class='kadersportler'";
        echo (
eregi("MSIE",getenv('HTTP_USER_AGENT'))) 
              ? 
" onmouseover='this.childNodes[2].style.visibility=\"visible\"'
                onmouseout='this.childNodes[2].style.visibility=\"hidden\"'>"
              
">";
        echo 
"<img src='/".pfadersetz($pfad.$file)."/bild.jpg'
              alt='"
.textersetz($file)."'>";
        echo 
"<h4 style='font-size:12px;margin-bottom:0px;text-align:center;'>";
        echo 
textersetz($file);
        echo 
"</h4>";
        echo 
"<div class='kaderbeschreibung'>";
        echo 
"<dl>";
        echo 
"<dt>Geburtsdatum</dt><dd>".fgets($datei)."</dd>";

        
fgets($datei);

        echo 
"<dt>Kader</dt><dd>".fgets($datei)."</dd>";
        echo 
"<dt>Hauptschwimmart</dt><dd>".textersetz(fgets($datei))."</dd>";
        echo 
"<dt>beim HSV seit</dt><dd>".textersetz(fgets($datei))."</dd>";
        echo 
"</dl>";
        echo 
"</div></div>";
        
fclose($datei);
      }
    }
  }  
}

$verz=opendir ($pfad2);
while (
$file=readdir($verz)) {
  if (
filetype($pfad2.$file)=="dir" && $file!="." && $file!=".." && is_numeric($file)) {
    
$neujahr=intval($file)+1;
    echo (
date('Y')==$file
      ? 
"<h2>Aktuelle Saison (".$file."/".$neujahr.")</h2>" 
      
"<h2 style='padding-top:25px'>Saison ".$file."/".$neujahr."</h2>";
    
jahrweise($pfad2.$file."/");
  }

Damit kannst du dann sicher besser weiterarbeiten.

Wenn du wirklich keine Ahnung von PHP hast und so eine Sortierung wirklich notwendig ist, solltest du den Thread wohl in die Jobbörse verschieben lassen.

Gruß
Asipak ist offline  
Alt 01.10.2009, 19:32  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Ist doch letztlich ganz einfach:
Lies alle Daten aus, mit der Jahreszahl als Arrayschlüssel und den Daten eben als Wert. Dann sortierst du mit krsort() und gibst das ganze aus. Bei der Ausgabe kannst du dann prüfen, ob der Schlüssel (das Jahr) dem aktuellen entspricht und deinen Text "Aktuelle Saison" hinzufügen.
Chriz ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php sortieralgorithmus, sortieralgorithmen php, sortieralgorithmus php, php sortieralgorithmen, sortieralgorithmen in php, sortieralgorithmus, quelltext sortieralgorithmen, php einfacher sortieralgorithmus, php file read dir class, php http_user_agent soriert, php sortier algorithmus, php sortier algorithmen, sortieralgorythmen in php, php sortier algori, onmouseover this child visibility visible, while ( $file = readdir ( $verz ) ), sortieralgorithmen php function, datei sortier algorithmus, quellcode für sortieralgorithmus php, quellcode für sortieralgorythmus php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum