bestimmte zeilen löschen

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

  • bestimmte zeilen löschen

    Hallo, ich habe mir ein kleines Ticket-Script gebastelt!

    muss dazu sagen das ich noch ein ziemlicher Frischling bin!

    Ich trage die Supportanfragen der Tickets in meine Datei anfragen.html ein!

    Die Frage ist jetzt, wie kann ich mit einem anderen Script zeilen aus dieser datei lösche?

    ich trage sie ein mit:

    PHP-Code:
    <?php
    $art
    =$_POST['art'];
    $vorname=$_POST['vorname'];
    $name=$_POST['name'];
    $ort=$_POST['ort'];
    $land=$_POST['land'];
    $ausgabe"<hr>".$art."\r\n".$vorname."\r\n".$name.$ort."\r\n".$land."<hr>";
    $datei=fopen("anfragen.html","a");
    $output=fwrite($datei,$ausgabe);
    fclose($datei);
    ?>
    jetzt suche ich ein script..sowas wie das hier:
    PHP-Code:
    <form action="3.php" method="post">zu löschende Zeile: #
    <input type="text" name="fertig" MAXLENGTH="2" SIZE="1" /><input type="submit" /></form>
    <?php
    $delzeile
    =$_POST['fertig'];

    $datei=fopen("namen.html","a");
    $datei2=file('namen.html');
    fdelete=$datei2[$delzeile];
    fclose($datei);
    ?>
    Das ist natürlich jetzt eine theoretische vorstellung!!!!!!
    Ich weiß das das script so nicht funktioniert!
    Aber ich hoffe ihr versteht mich!

    Hoffe auf eine hilfreiche Antwort,
    Vielen Dank schonmal, Change
    Zuletzt geändert von Change; 05.08.2008, 13:01.

  • #2
    Hallo,

    bitte lies dir erstmal die Regeln durch "vor dem posten"..

    Dann: Guck dir mal das Modell einer CSV-Datei an..
    Das wäre viel einfacher zu realisieren und auch sinnvoller zu speichern..

    Natürlich müsstest du das ganze dann auch anders auslesen..

    mfg

    Kommentar


    • #3
      Ich verstehe nicht ganz was du meinst!
      Zum einen welche Forumregel ich verstoßen habe und zum Anderen
      was eine CSV Datei ist!

      Geht das nicht mit PHP???

      MfG Change

      Kommentar


      • #4
        Hallo,

        Regeln: http://php-resource.de/forum/showthr...threadid=50454
        -> Keine horizontalen Scrollbalken (ich hab einen bei 1280x800)

        Natürlich geht das mit PHP, aber dein Speichermodell ist etwas murks..

        Deshalb wollte ich dir das Modell der csv-datei ans Herz legen.

        Da werden Werte durch ein Trennzeichen gespeichert und 1 Datensatz bekommt genau 1 Zeile.
        Einlesen, löschen etwas. kein Problem.

        Da es nur ein Modell ist und keine Sprache, ist natürlich die Sprache dafür php Infos dazu hätte auch google gegeben


        Bei deinem Modell müsste man das ganze recht kompliziert gestalten.

        mfg
        ps: hatte "vor dem posten" wohl auf den falschen thread verwiesen, sry

        Kommentar


        • #5
          Regeln: http://php-resource.de/forum/showth...&threadid=50454
          -> Keine horizontalen Scrollbalken (ich hab einen bei 1280x800)
          Entschuldige, ich dachte php-scripts werden in einem extra kasten zusammengehalten, wie in anderen Foren!

          csv hört sich gut an!
          Wo kann man sich denn da nötige Wissen aneignen?
          Gibt es da irgendein gutes Tutorial was empfohlen werden kann?

          Vielen Dank für die Antwort, Change

          Kommentar


          • #6
            Generell musst du dir nur Wissen über das Arbeiten mit Dateien aneignen.

            z.b.:
            http://schattenbaum.net/php/
            http://peterkropff.de

            Würde zu folgendes raten:

            Speichern: fopen(), fwrite(), fclose() (so wie du es eigentlich schon hast nur muss der speicher-string anders aussehen (siehe wikipedia - csv)

            Auslesen: file(), und zum anzeigen for() und explode()

            Löschen: siehe auslesen + formular zum absenden (ID ^= Zeile) + file(), unset(), implode() + speichern

            mfg
            ps: php scripte werden nicht automatisch umgebrochen .. wäre also nett, wenn du deinen beitrag oben bearbeiten würdest.

            Kommentar


            • #7
              Also ich würde ja hier zu einer Datenbank raten ...
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Original geschrieben von unset
                Also ich würde ja hier zu einer Datenbank raten ...
                Meinst nicht, dass es Change überfordern würde?

                Wäre natürlich einfacher und so, aber bei Anfängern ist das so eine Sache.

                @ Change: Infos zu Datenbank (mysql) gibt es auch auf den beiden links..

                mfg

                Kommentar


                • #9
                  Möchtest du den Anfänger dann auch direkt mal über Race Conditions aufklären, die er beim handling mit Flatfiles zu beachten hat? Mit Datenbanken geht das wesentlich flotter und einfacher. Und man muss selbst nicht so oft das Rad neu erfinden.

                  Außerdem ist CSV ein Transport- und kein Storeformat.
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    Original geschrieben von unset
                    Möchtest du den Anfänger dann auch direkt mal über Race Conditions aufklären, die er beim handling mit Flatfiles zu beachten hat?
                    Bin eigentlich davon ausgegangen, dass nur er/sie damit arbeitet, aber gut - hat er nicht gesagt...

                    Mit Datenbanken geht das wesentlich flotter und einfacher. Und man muss selbst nicht so oft das Rad neu erfinden.
                    Stimmt schon soweit..

                    Außerdem ist CSV ein Transport- und kein Storeformat.
                    Ich meinte zwar auch nur das CSV-Modell und nicht die ".csv", macht aber ansich keinen Unterschied, insofern - stimmt schon..

                    mfg

                    Kommentar


                    • #11
                      ich würde auch eher zu mysql raten.

                      ein ticket-system wird eine gewisse größe annehmen und für die performance und der übersicht eignet sich eine datenbank besser.

                      wenn ich bedenke wielange ich gebraucht habe um das mit den dateien richtig hinzubekommen .. in der zeit hätte ich damals auch datenbanken lernen können (std dinge wie simple inserts, updates und delete)
                      Gruß
                      Uzu

                      private Homepage

                      Kommentar


                      • #12
                        Original geschrieben von UzumakiNaruto
                        ich würde auch eher zu mysql raten.
                        Das mein ich auch. Es ist sicher besser (und viel einfacher ), ein bestehendes Datenbanksystem zu benutzen, als zu versuchen - und was du willst ist ein entsprechender Versuch im Kleinen - eines nachzubauen.
                        Gruss
                        H2O

                        Kommentar


                        • #13
                          Das Problem ist, das ich kein ganzes Tickets-sytem übernehmen möchte!

                          Ich brauch das ganze extra Zeugs nicht!!!!

                          Ich möchte nur ein script zum eingeben
                          und danach wieder auslesen & evt. löschen!

                          Eingeben:
                          PHP-Code:
                          <form action="2.php" method="post">
                          <
                          table>
                             <
                          tr>
                               <
                          td>Option:</td>
                               <
                          td> <select name="art" size="10" multiple="multiple">
                              <
                          option value="Support1">Support1</option>
                              <
                          option value="Support2">Support2</option>
                              <
                          option value="Support3">Support3</option>
                              <
                          option value="Support4">Support4</option>
                              <
                          option value="Support5">Support5</option>
                              <
                          option value="Support6">Support6</option>
                          </
                          select>
                                 </
                          td>
                               </
                          tr>  <br />
                               <
                          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 >Ort:</td>
                                 <
                          td>  <input type="text" name="ort" /></td>
                               </
                          tr>
                                    <
                          tr>
                                 <
                          td >Land:</td>
                                 <
                          td> <select name="land">
                              <
                          option value="Deutschland">Deutschland</option>
                              <
                          option value="Österreich">Österreich</option>
                          </
                          select>
                                  </
                          td>
                               </
                          tr>
                               <
                          tr>
                                    <
                          td> <input type="submit" /></td>
                              </
                          tr>
                           </
                          table>
                          </
                          form
                          Und nun muss ich halt das ganze in eine Tabelle einfügen (wenn ich MySQL nehme!)
                          PHP-Code:
                          <?php
                              
                          // config.php
                              
                          error_reporting(E_ALL);

                              
                          define('MYSQL_HOST',     'localhost');
                              
                          define('MYSQL_USER',     'root');
                              
                          define('MYSQL_PASS',     '********');
                              
                          define('MYSQL_DATABASE''db1');


                          $art=$_POST['art'];
                          $vorname=$_POST['vorname'];
                          $name=$_POST['name'];
                          $ort=$_POST['ort'];
                          $land=$_POST['land']; 


                              
                          $sql "INSERT INTO tickets
                                          (Art, Vorname, Nachname, Ort, Land)
                                      VALUES
                                          ('"
                          .addslashes(htmlspecialchars($_POST['art']))."',
                                          '"
                          .addslashes(htmlspecialchars($_POST['vorname']))."',
                                          '"
                          .addslashes(htmlspecialchars($_POST['nachname']))."',
                                          '"
                          .addslashes(htmlspecialchars($_POST['ort']))."',
                                          '"
                          .addslashes(htmlspecialchars($_POST['land']))."',
                                          NOW())"
                          ;

                              
                          mysql_query($sql) OR die(mysql_error());

                          ?>
                          geht das so?
                          Hoffe auf eine hilfreiche Antwort, Change

                          Kommentar


                          • #14
                            Ungefähr ist das OK. Es fehlt noch die Verbindung zur DB (mysql_connect() und mysql_select_db() ). Das würde ich allerdings in eine andere Datei auslagern.
                            Des weiteren würde ich der Tabelle (ich gehe davon aus, dass du diese definiert hast) noch eine eindeutige ID als Primary Key mitgibst, am besten als AUTOINCREMENT.
                            addslashes(htmlspecialchars()) bringt hier nicht viel, dafür mysql_real_escape_string () ,
                            PHP-Code:
                            <?php
                            // include 'config.php';
                                
                            error_reporting(E_ALL);

                                
                            define('MYSQL_HOST',     'localhost');
                                
                            define('MYSQL_USER',     'root');
                                
                            define('MYSQL_PASS',     '********');
                                
                            define('MYSQL_DATABASE''db1');
                                
                                
                            $conn mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) or exit('Keine Verbindung zur Datenbank');
                                
                            mysql_select_db(MYSQL_DATABASE) or exit('Datenbank ' MYSQL_DATABASE ' existiert nicht');
                            // Ende config.php


                            $art mysql_real_escape_string($_POST['art']);
                            $vorname mysql_real_escape_string($_POST['vorname']);
                            $name mysql_real_escape_string($_POST['name']);
                            $ort mysql_real_escape_string($_POST['ort']);
                            $land mysql_real_escape_string($_POST['land']); 


                            $sql "
                                INSERT INTO tickets(
                                    art, 
                                    vorname, 
                                    nachname, 
                                    ort, 
                                    land,
                                    datum
                                )
                                VALUES(    
                                    '
                            $art',
                                    '
                            $vorname',
                                    '
                            $nachname',
                                    '
                            $ort',
                                    '
                            $land',
                                    NOW()
                                )"
                            ;
                            mysql_query($sql) OR die(mysql_error());
                            ?>
                            Gruss
                            H2O

                            Kommentar


                            • #15
                              addslashes(htmlspecialchars($_POST['art']))
                              kannst du sein lassen. $art würde reichen

                              $art=$_POST['art'];
                              und danach arbeitest du wieder mit $_POST['art']???

                              ich benutze eher die UPDATE methode, damit mein INSERT übersichtlich ist:

                              PHP-Code:
                              # abfrage ob die zeichen erlaubt sind wäre auch nicht schlecht
                              if (isset($_POST['art'])    $art      $_POST['art'];
                              if (isset(
                              $_POST['vorname'$vorname  $_POST['vorname'];
                              if (isset(
                              $_POST['name']    $nachname $_POST['nachname'];
                              if (isset(
                              $_POST['ort']     $ort      $_POST['ort'];
                              if (isset(
                              $_POST['land']    $land     $_POST['land'];

                              $sql "
                              INSERT INTO tickets SET
                                 Art = '"
                              .$art."',
                                 Vorname = '"
                              .$vorname."',
                                 Nachname = '"
                              .$nachname."',
                                 Ort = '"
                              .$ort."',
                                 Land = '"
                              .$land."';
                              "

                              den du willst in deinem code 6 einträge machen .. die aber in 5 felder schreiben ;-) .. bei meiner "art" kann dir sowas nicht passieren.
                              Gruß
                              Uzu

                              private Homepage

                              Kommentar

                              Lädt...
                              X