PHP-Formular Ausgabe ordnen und nummerieren

Pris0n

Mitglied
Hi,

also ich bin momentan dabei eine Gästeliste für ne Feier zu erstellen. Dazu schreibe ich durch ein Formularfeld den Namen der Person in eine php-Datei.
Das funktioniert auch alles schön und gut.
Nun komm ich gerade an folgendem Punkt nicht weiter:
Ich möchte, dass wenn der Name gespeichert wird vorne durchnummerirt wird.
Also:

1. Name
2. Name
3. Name

Da hab ich gerade keine Idee wie ich das am einfachsten bewerkstelligen könnte.

Das nächste was ich dann gerne machen würde, ist die Namen nach Alphabet zu ordnen. Das wäre für die Türsteher dann doch sehr praktisch :D
Hat da jemand ne Idee das zu automatisieren, da bei so 900 Leuten das ganze nach dem Alphabet zu ordnen doch keinen Spaß macht.

Danke schon mal

mfg

Pris0n
 
Hi,
also es ist natürlich möglich. Meine Frage ist, speicherst du das in eine Datenbank? Wenn nicht würde ich dir das empfehlen, denn das macht die ganze sache einfacher.
 
Öhm, ich bezweifle, dass du nur die Daten eintippst.
Du wirst die doch bestimmt speichern wollen egal ob Textfile oder Datenbank.

Das Nummerieren würde ich unabhängig von den Daten machen, das ist das Wenigste.

Sortierung:
Datenbank:
Bei der Abfrage "ORDER BY name" reicht.

Textfile, wirklich nur Eingabe ohne speichern:
Alles in einen Array speichern und einfach: sort ( $array );

Das Nummerieren einfach per $zaehler++;

PS: Bei so ner Sache würde ich einfach Excel oder so nehmen. Warum programmieren?...
 
also ich speicher das ganze nicht in einer Datenbank, da ich da nich so viel Ahnung von habe.
Die Leute melden sich ja da selbst an, d.h. ich weiß ja gar nicht wer alles kommt :D
 
Ok, du speicherst also in eine Textdatei.
Dann stellt sich die Frage, wie du die Einträge trennst:
Ein Name pro Zeile oder mittels eines Trennzeichens?
 
also ich hab das ganze so gemacht und sollte deshalb jeden nam,en in eine zeile schreiben

PHP:
$fp = fopen('gaesteliste.php', 'a');
  fwrite($fp, $vorname);
    fwrite($fp, " ");
  fwrite($fp, $nachname);
    fwrite($fp, "<br>");
  fclose($fp);

geht bestimmt auch einfacher:D
aber es funktioniert^^
 
Erst mal deines optimiert
PHP:
$fp = fopen('gaesteliste.php', 'a');
  fwrite($fp, $vorname."&nbsp;".$nachname."<br>");
  fclose($fp);

An sich ist es etwas unvorteilhaft, den Vornamen zuerst zu speichern, aber wir lassen es mal so, weil du bestimmt schon ein paar Einträge hast.

Das auslesen kommt gleich.
 
So sollte es funktionieren:

PHP:
<?PHP
$fp = fopen('gaesteliste.php','r');
if ($fp)
  {
    while(!feof($fp))
      {
        $daten .= fgets($fp);
      }
    fclose($fp);
  }

$namen = explode("<br>", $daten); // Jetzt haben wir die Namen hier in einem Array

for ( $i = 0; $i < count($namen); $i++ )
  {
    $gast = explode("&nbsp;", $namen); // $gast[0] = Vorname, $gast[1] = Nachname
    $gaeste[] = $gast[1].", ".$gast[0]; //Nachname nach vorne bringen
  }
//Somit haben wir alle Gäste in der Variable $gaeste

$gaesteliste = sort($gaeste); // sortieren

for ( $i = 0; $i < count($gaesteliste); $i++ )
  {
    echo "<b>".($i+1).". ".$gaesteliste[$i]."</b><br>";
  }
?>

Das <b>...</b> soll dir nur zeigen, wie du evtl. noch ein bisschen optische Anpassung vornehmen kannst.
 
Zuletzt bearbeitet:
ah danke für die hilfe

Ich hab noch keine Einträge, dsehalb ist es ansich kein Problem die Variablen zu tauschen
danke

gleich mal ausprobieren
 
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in /usr/export/www/vhosts/funnetwork/hosting/ks12ssg/royal/gaesteliste_sotiert.php on line 25

Zeile 25:
PHP:
    echo "<b>".($1+1).". ".$gaesteliste[$i]."</b><br>";

hmmm...
was stimmt denn da nicht?


€: nochwas wenn jemand anderes die Seite aufruft und sich einträgt dann ensteht 2 mal ein Absatz;
also wenn ich die Seite aufrufe und 2 Namen eingebe dann funktioniert alles wunderbar; lade ich das Formular neu oder auf einem anderen pc und tippe da einen neuen namen ein; dann sind zwischen dem namen und dem Alten eine Zeile frei; d.h. es existiert ein Absatz zu viel;
hat da wer ne Lösung
 
Zuletzt bearbeitet:
Zurück