Ankündigung

Einklappen
Keine Ankündigung bisher.

Interaktive (Film)Tabelle ohne MySql

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Scriptangebot Interaktive (Film)Tabelle ohne MySql

    Hallo,

    ich habe schon einige Erfahrung in Dingen HTML und CSS. Seit gestern habe ich begonnen, PHP selber zu erlernen. Dazu habe ich mich natürlich fleißig informiert und gestern sogar mein erstes Mini-Projekt fertiggestellt.

    Eine interaktive Tabelle mit PHP ohne die Verwendung einer Datenbank. Im ersten Anlauf habe ich eine Filmliste erstellt.

    Falls jemand Zeit und Lust hat, bin ich sehr gerne für Kritik und Verbesserungsvorschläge offen!

    Screenshot:
    __________________________________________________ ____

    __________________________________________________ ____

    Für PHP-Profis sieht das alles wohl ziemlich primitiv und unordentlich aus, aber ich richte mich hiermit natürlich auch an meinesgleichen, die weniger Erfahrenen.

    Was macht das Script?

    Man trägt 3 Werte ein, drückt auf senden und PHP trägt diese Werte automatisch in eine .txt Datei ein, wobei diese vorher auf Korrektheit überprüft werden. Beim aufrufen des Scripts wird die Textdatei ausgelesen und auf Wunsch (Buttondruck) sortiert. Hohe Werte werden Farblich markiert.
    Unten findet man Ein Textfeld mit dem Button "löschen". Hiermit trägt man unter Angabe der Zeilennummer ganze Zeilen aus der Textdatei aus. !!! Dies Funktioniert nur, wenn die Liste unsortiert ist !!!

    In Kurz:
    - Auslesen der Liste
    - Eingabe & Überprüfung von Werten
    - Löschen von Zeilen

    Erklärung der einzelnen Vorgänge:

    Ich möchte nun auf die wichtigen Teile des Scripts eingehen.
    Alle Auszüge sind gekürzt und sollen lediglich erklärend wirken. Ich habe noch etliche Bedienungen eingebaut, die aber hier zu viel Text verursachen würden.

    Zuerst legen wir ein array ($datei2) mit dem Inhalt der Textdatei an und öffnen per fopen die Datei.
    PHP-Code:
    $datei2 file("filme.txt");
    $datei fopen("filme.txt","a+"); 
    Nun starten wir eine while-Schleife, die bis zum Ende jede Zeile einzeln ausliest und in das array "$zerlegen" zerlegt. Wir haben $zerlegen[0] $zerlegen[1] $zerlegen[2]. Diese Werte werden ausgegeben.
    PHP-Code:
    $a 0;
    while(
    $a count($datei2))
       {
        
    $zerlegen explode("|"$datei2[$a]);

            echo 
    "
           <tr>
            <td>"
    .$a."</td>
            <td>"
    .$zerlegen[1]."</td>
            <td>"
    .$zerlegen[2]."</td>
            <td>/ 100</td>
            <td>"
    .$zerlegen[0]."</td>
           </tr>"
    ;
           
    $a++;

        } 
    Nun kommt der interaktive Teil. Per Eingabe von 3 Werten (Name, Wertung (0-100) und Genre) werden diese in die Textdatei eingetragen.

    PHP-Code:

    if ($_POST['senden']){              // Bei Buttondruck

        
    $name $_POST["name"];         //Lese Werte aus Formular
        
    $wertung $_POST["wertung"];
        
    $genre $_POST['genre'];

            
    $neuzeile "".$genre."|".$name."|".$wertung."\n";   
            
    // Ordne Werte und packe sie in Variable
            
        
    fwrite($datei$neuzeile);                    // Datei schreiben
        
    header('location:'.$_SERVER['PHP_SELF']);     //Seite neu laden
        

    Zuletzt noch die löschen-Funktion
    PHP-Code:
    if ($_POST['del']){
        
        
    $loeschen $_POST["loeschen"];  // Bei Buttondruck
        
         
    $datei 'filme.txt'
        
    $zeilen file($datei);     // Datei einlesen
        
    unset($zeilen[$loeschen]);   // Zeile herausnehmen
        
        
    $handle fopen($datei'wb');          // Datei einlesen
        
    fwrite($handleimplode(''$zeilen));    // Datei schreiben
        
    fclose($handle); 
        
        
    header('location:'.$_SERVER['PHP_SELF']);    // Seite neu laden
            


    Download:
    Die gewerbliche Verwendung ist untersagt, eben so wie die Vervielfältigung unter anderem Namen.

    Download im Anhang!

    Download - mega.co.nz
    Angehängte Dateien


  • #2
    wenn ich mich recht erinnere sollte man kein $_SERVER['PHP_SELF'] benützen.
    wenn ich recht verstanden habe stört dich das:
    Hiermit trägt man unter Angabe der Zeilennummer ganze Zeilen aus der Textdatei aus. !!! Dies Funktioniert nur, wenn die Liste unsortiert ist !!!
    da kann man recht einfach abhilfe schaffen, auch ohne js und ajax, was selbstredent eleganter wäre.
    Code:
    <td><a href=". $this_is_another_script_url. "?delete=".$a.">delete ". $a."</a></td>
    das script auf der anderen url checked den $_GET['delete'] wert und löscht ensprechend den eintrag, um sicherzugehen, dass nicht etwas falsches gelöscht wurde, falls die datei schon geändert wurde, würde ich die zahl auf $zerlegen[3] nochmalls innerhalb der datei speichern (zur controlle).

    mit xml ginge das ganze einfacher.
    mit einer datenbank sowieso.

    Kommentar


    • #3
      Dreh mal dein Error-Reporting hoch, mir fliegen notices um die Ohren wenn ich das Script ausführe.

      Ich würde dir nahe legen ein praktischeres Dateiformat zu nutzen bei dem du weniger Aufwand hast es auszulesen. Bspw.: JSON. [man]json_encode[/man], [man]json_decode[/man], [man]file_get_contents[/man], [man]file_put_contents[/man].

      Außerdem rate ich dazu HTML von PHP zu trennen. Und das HTML valide zu definieren, damit das, was du da baust, auch in jedem Browser gleich aus sieht. Zu einem validen Dokument gehört ein Doctype. ( <!DOCTYPE html> für html5 )

      URL-Queries würde ich an deiner stelle mit [man]html_build_query[/man] zusammenbauen und wenn du auf das eigene Script zeigen willst nutze $_SERVER['SCRIPT_NAME']. Vielleicht schaust du dir auch mal DataTables an, dort kannst du die Sortierung dem Client überlassen und hast auch eine integrierte client-seitige Suche / Filterung.

      Ansonsten schon mal ganz nett, für ein Anfänger-Projekt, das selbstredend Anfänger-Fehler macht, aber die kann man ja beheben.

      P.S.: Man könnte hier auch erste schritte mit DOMDocument gehen und das HTML auf anderer - nicht konventioneller Art - zusammenbauen.
      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

      Kommentar


      • #4
        Die gewerbliche Verwendung ist untersagt, eben so wie die Vervielfältigung unter anderem Namen.
        Ohne hier Illusionen zerstören zu wollen,

        1) dann hinterlege doch bitte eine konkrete Nutzungslizenz und
        2) dürfte der Trivialcode wohl kaum irgendeine schutzwürdige Schöpfungshöhe besitzen. Da kannst Du noch so viel „untersagen“
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar

        Lädt...
        X