php.de

Zurück   php.de > Lösungen durch Skripte > Scriptbörse

Scriptbörse PHP Lösungen für nen schmalen Taler

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.12.2009, 15:44  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.992
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
für komplettlösungen wäre ich sehr dankbar
[MOD: verschoben]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 03.12.2009, 14:38  
Neuer Benutzer
 
Registriert seit: 02.12.2009
Beiträge: 6
PHP-Kenntnisse:
Anfänger
brandner befindet sich auf einem aufstrebenden Ast
Standard

Habs jetzt fertiggebracht. falls wem intressiert hier das Skript

PHP-Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Merwald Manuel</title>
</head>
<body>

<?php
    $vorname 
$_POST['vorname'];
    
$nachname $_POST['nachname'];
    
$geburtsdatum $_POST['geburtsdatum'];
    
$eintrag $_POST['eintrag'];
    
    
// Ueberpruefung, ob Werte eingegeben
    
if($eintrag == "1"){
        if(
$vorname == ""){
            
$fehlt "1";
            echo 
"Vorname nicht eingetragen!<br />";
        }
        if(
$nachname == ""){
            
$fehlt "1";
            echo 
"Nachname nicht eingetragen!<br />";
        }
        if(
$geburtsdatum == ""){
            
$fehlt "1";
            echo 
"<span style=\"color:red;\">Geburtsdatum nicht eingetragen!</span><br />";
        }
    }
    
    if(
$fehlt != "1" && $eintrag == "1"){
        if(
file_exists("liste.txt")){
            
$datei fopen("liste.txt""r");
            while(!
FEOF($datei)){
                
$datum[] = fgets($datei9);
                
$name[] = fgets($datei);
            }
            
fclose($datei);
        }
        
        
// '.' entfernen
        
$geburtsdatum str_replace("."""$geburtsdatum);
        
        
$datum[] = $geburtsdatum;
        
$name[] = " $vorname $nachname\r\n";
        
        
// BubbleSort
        
for($i 0$i count($datum); $i++){
            for(
$j $i 1$j count($datum); $j++){
                if(
strcmp($datum[$i], $datum[$j]) > 0){
                    
$temp $datum[$i];
                    
$datum[$i] = $datum[$j];
                    
$datum[$j] = $temp;
                    
                    
$temp $name[$i];
                    
$name[$i] = $name[$j];
                    
$name[$j] = $temp;
                }
            }
        }
        
        
$schreiben fopen("liste.txt""w");
        for(
$i 0$i count($datum); $i++){
            
fputs($schreiben"$datum[$i]$name[$i]");
        }
        
fclose($schreiben);
        
        
// Ausgabe
        
echo"<table border>";
        echo
"<tr><td>Geburtstag</td><td>Name</td></tr>";
        foreach(
$datum as $key => $val){
        echo
"<tr><td>$val</td><td>$name[$key]</td></tr>";
            
//echo "$val";
            //echo "$name[$key]<br>";
        
}
        echo 
"</table>";
        
        echo 
"Dateischreiben erfolgreich<br>";
    
    }
    


?>

<h2>Neuer Eintrag</h2>

<table border="0">
<form action="index.php" method="POST">
    <tr>
        <td>Vorname:</td>
        <td><input type="text" name="vorname" /></td>
    </tr>
    <tr>
        <td>Nachname:</td>
        <td><input type="text" name="nachname" /></td>
    </tr>
    <tr>
        <td>Geburtsdatum:</td>
        <td><input type="text" name="geburtsdatum" value="jjjj.mm.tt" /></td>
    </tr>
    <tr>
        <td colspan="2">
        <input type="hidden" value="1" name="eintrag" />
        <input type="reset" value="Zur&uuml;cksetzen" />
        <input type="submit" value="Abschicken" /></td>
    </tr>
</form>
</table>

</body>
</html>
brandner ist offline   Mit Zitat antworten
Alt 03.12.2009, 17:13  
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

Ich frag mich, warum man dir antwortet. Ich hatte dir doch den Link für usort() geschickt. Du brauchst eben *keinen* Sortieralgorithmus selbst implementieren, sondern nur die Vergleichsfunktion.

Ein einziger Funktionaufruf zusätzlich zu meinem Beispiel:

Zitat:
Zitat von Chriz Beitrag anzeigen
PHP-Code:
<?php
function compareDates(array $a, array $b)
{
  if (
$a["date"] == $b["date"]) {
    return 
0;
  }
  if (
$a["date"] < $b["date"]) {
    return -
1;
  }
  return 
1;
}
$array = array(
  array(
"name" => "Hans Meyer""date" => "1977-01-01"),
  array(
"name" => "Sabine Kaschinski""date" => "1995-06-20"),
  array(
"name" => "Hans Wurst""date" => "1976-12-31")
);
// usort einbinden, deine Eigenleistung ;)
?>
hätte ausgereicht:
PHP-Code:
<?php
usort
($array"compareDates");
?>
um den Array zu sortieren. Naja.
Chriz ist offline   Mit Zitat antworten
Alt 12.01.2012, 13:43  
Neuer Benutzer
 
Registriert seit: 12.01.2012
Beiträge: 1
PHP-Kenntnisse:
Anfänger
baerr befindet sich auf einem aufstrebenden Ast
Standard

Woher weiss php denn, was $a und $b ist?

Versuche momentan mein Array in die richtige Reihenfolge zu bekommen, klappt leider nicht so recht.
Gewünschte Reihenfolge wäre von Aktuell nach Älter.

Mein Array ( var_dump ($giveme); ):

array(5) {
[0]=> array(5) { ["datum"]=> string(10) "2011-01-17" ["winner_1"]=> string(1) "1" ["money_1"]=> string(2) "25" ["teilnehmer"]=> string(1) "5" ["buyin"]=> string(1) "8" }
[1]=> array(5) { ["datum"]=> string(10) "2011-01-18" ["winner_2"]=> string(1) "1" ["money_2"]=> string(1) "0" ["teilnehmer"]=> string(1) "3" ["buyin"]=> string(2) "10" }
[2]=> array(5) { ["datum"]=> string(10) "2011-01-20" ["winner_3"]=> string(1) "1" ["money_3"]=> string(1) "0" ["teilnehmer"]=> string(1) "5" ["buyin"]=> string(1) "3" }
[3]=> array(5) { ["datum"]=> string(10) "2011-01-19" ["winner_4"]=> string(1) "1" ["money_4"]=> string(1) "0" ["teilnehmer"]=> string(1) "7" ["buyin"]=> string(1) "5" }
[4]=> NULL
}



PHP-Code:
function compareDates(array $a, array $b)
{
  if (
$a["datum"] == $b["datum"]) {
    return 
0;
  }
  if (
$a["datum"] < $b["datum"]) {
    return -
1;
  }
  return 
1;
}
usort($giveme"compareDates"); 


Sobald ich usort von der Leine lasse bekomm ich
Zitat:
Catchable fatal error: Argument 1 passed to compareDates() must be an array, null given in C:\xampp\htdocs\new\game\member\test.php on line 134
line 134 = function compareDates(array $a, array $b)


Hoffe ihr könnt mir helfen,
ich praktiziere php alle Jahre mal wieder für ein paar Wochen und
bin daher leider nicht so fit.
Ich such mir von alten Dateien meist funktionierende Schnipsel raus, google im netz und versuch diese dann abzuändern...
Also alles in allem eine ziemlich dreckige Angelegenheit !

Trotzdem hoffe ich, dass ihr mich erleuchten könnt bzw. es versucht.

Danke schonmal
baerr ist offline   Mit Zitat antworten
Alt 12.01.2012, 21:47  
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

Hey,

den Algorithmus übernimmt PHP, compareDates() ist nur dazu da, zwei Einträge aus deinem Array zu vergleichen.
Stell dir deinen Array als Kartenhaufen vor, [5], [7], [3]. PHP nimmt jetzt [5] + [7] und übergibt deiner Funktion beide ($a und $b). Deine Funktion stellt fest, dass 5 < 7 ist und liefert -1 zurück (was bedeutet, der erste Wert ist kleiner). Wenn beide gleich sind wird 0, wenn der zweite Wert größer ist +1 zurückgegeben. Das ganze geht dann weiter mit vergleiche 5 mit 3 und 3 mit 7 ... solange eben, bis der Algorithmus feststellt, dass er weiß welches die korrekte Reihenfolge ist.

Daher die Funktion mit den zwei Werten. Natürlich geht es auch komplizierter als ein einfacher Zahlenvergleich, Datumsvergleiche beispielsweise.

Dein Aufruf müsste also lauten usort($array, "compareDates").

Häufig kannst du die Sortierung aber schon mit der Datenbank machen, das ist erheblich (!) schneller.
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 13.01.2012, 07:43  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Mit Verlaub, die Funktion da oben setzt 2 Arrays die Übergeben werden voraus und du übergibst 0. Genauergenommen eine in deinem Script nicht existierende Variable ( $giveme )..

Eigentlich müsste der Parser dir schon sagen das du da etwas verwendest was du garnicht definiert hast, eh die Fehler kommen das du der sort-Funktion Murks übergeben hast.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datum sortieren tzzaetaynzz PHP Tipps 2009 8 21.05.2009 23:26
[Erledigt] nach datum (array) sortieren ostems PHP Tipps 2009 14 12.04.2009 21:05
[Erledigt] Datensätze nach Datum sortieren und nächstes Datum ausgeben kinerdar Datenbanken 2 12.09.2008 12:00
[JS] Divs nach Datum sortieren cycap JavaScript, Ajax und mehr 24 16.07.2008 18:48
Dateien nach Datum sortieren ddog PHP Tipps 2008 4 09.03.2008 10:11
Nach Datum sortieren zoro Datenbanken 9 28.11.2007 14:00
Ordnerausgabe nach Ordnername (Datum) sortieren... PHP Tipps 2005-2 6 05.07.2005 19:18
[Erledigt] Datum RICHTIG sortieren Datenbanken 8 14.05.2005 22:52
Tabelle nach Datum sortieren? PHP Tipps 2005 10 29.03.2005 16:02
News nach Datum sortieren maximus PHP Tipps 2005 2 10.02.2005 15:33
Sortieren nach Datum Datenbanken 2 30.01.2005 11:21
Daten einer Textdatenbank nach Datum sortieren PHP Tipps 2004-2 10 20.11.2004 11:29
Datum sortieren? PHP Tipps 2004 2 18.09.2004 19:11
[Erledigt] Nächsten Geburtstag ausgeben (Datum sortieren) Datenbanken 6 05.09.2004 20:48
[Erledigt] nach datum sortieren PHP Tipps 2004 4 27.07.2004 16:13

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
merwald manuel, usort datum, php datum array sortieren, php sort date array, datum sortieren php aus txt datei, name, vorname sortieralgorithmus, php submit sortieren, dateinamen mit datum sortieren

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:36 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