PHP $_POST-Array werte löschen und sortieren

Dieses Thema im Forum "Webentwicklung" wurde erstellt von splinter, 10. Juni 2008 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 10. Juni 2008
    hi
    ich bin noch einsteiger in php-programmierung,muss jedoch im rahmen meines praktikums ein intranet dersignen...
    ich hab leider noch keine ahnung von datenbanken(sql) daher versuche ich mich mit textdokumenten durchzuschleifen ...
    nun habe ich schon ein(recht) fertiges formular für eine produktdatenbank gemacht, jedoch soll ich eine sortierfunktion und eine löschfunktion einbauen , habe jedoch keine ahnung wie ich das anstellen soll -.-

    meinen bisherigen quelltext könnt ihr euch unter

    http://rapidshare.com/files/121449473/beispiel_funktion.php.html

    downloaden .
    ich wär echt für hilfe dankbar und wer mir hilft, dem ist eine gute bewertung sicher ^^
    schonmal danke im voraus
    mfg splinter
     
  2. 10. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    1. gehört in webtechnik
    2. google > php array alphabetisch sortieren - Google-Suche 1. hit hilft schon
    3. löschen: produkt daten einlesen aus der datei (>array) und zB mit checkbox liste ausgeben...bei checkbox auswahl entsprechenden eintrag im array löschen und array wieder in die datei schreiben
     
  3. 10. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    Sooooo, isch hab da ma was vorbereitet!

    Code:
    ......
    while (!feof($produkte)){
    $inhalt=fgets($produkte);
    
    $NOTExploded=$inhalt;
    $inhalt=explode("|",$inhalt);
    sort ($inhalt); //Inhalt sortieren.
    
    echo "<tr align='center'>
    
    foreach ($inhalt as $produkt) { //Für jedes Produkt...
     
     echo "<TD><FORM action=\"löschen.php\" method=\"post\">
     <INPUT type=\"hidden\" name=\"deletethis\" value=\"$produkt\">
     <INPUT type=\"hidden\" name=\"olddata\" value=\"$NOTExploded\">
     $produkt&nbsp;&nbsp;&nbsp;<INPUT type=\"submit\" value=\"$produkt\"></INPUT></FORM></TD>";
    }
    
    echo "<td><a href='$PHP_SELF' ?id=$i';>x</a></td>";
    echo "</tr>";
    
    unset($_POST[$i]);
    
    ......
    
    Ist wohl nicht komplett fehlerfrei da ich das nu hier im Browser getippt habe aber Syntaxfehler kannst du ja ausbügeln
    Würde dir trotzdem raten das mit SQL zu machen ^^

    Also, absofort wird das Array $Inhalt sortiert , mittels sort() danach wird für jedes Element im array ein neues Formular angelegt das einen versteckten Wert (hidden) hat der immer den produktnamen hat, und hinter jedem produktnamen ist nun ein Button der den produktnamen und den nicht explodierten String (in dem die Produkte enthalten waren) via Post an das script "löschen.php" schickt.

    Soa, da bastelst du dir nun eine ähnliche schleife und schreibst das array einfach neu in die Txt file, dann wieder auslesen und voila ^^


    Mfg, Inqui.
     
  4. 10. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    *schubsed to webtechnik
     
  5. 10. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    Ehmm dein Formular hat ganz schöne Probleme wenn man einen Zeilenumbruch in die Produktbeschreibung macht.... Da ich eine Lösung die nicht auf MySQL basiert sehr... naja, resourcenintensiv ist habe ich hier mal eine MySQL Lösung aufgebaut:

    (ebenfalls im Browser getippt, sollte aber funktionieren, das Script ist ein wenig zusammengepfuscht)

    PHP:
    <? php
    //------------------------------------------------
    function  escape_string ( $string )
    {
      
    $string  stripslashes ( $string );  // Auskommentieren wenn Magic_quotes off
      
    $string  mysql_real_escape_string ( $string );  // PHP-interne Funktion um SQL-Injection vorzubeugen
      
      
    return  $string ;
    }

    $mysql_host  "localhost" ;
    $mysql_user  "test" ;
    $mysql_pass  "test" ;
    $mysql_db    "test" ;

    $inhalt  = array();  // Enthaehlt alle Daten aus der MySQL Tabelle
    $orderby  = isSet( $_GET [ 'order' ]) ?  escape_string ( $_GET [ 'order' ]) :  "id" // Hiernach wird sortiert

    // Mit der Datenbank verbinden
    mysql_connect ( $mysql_host $mysql_user $mysql_pass ) or die( mysql_error ());
    mysql_select_db ( $mysql_db ) or die( mysql_error ());

    // Die Tabelle erstellen falls sie nicht schon existiert
    mysql_query ( "CREATE TABLE IF NOT EXISTS produkte(id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, produktNr INT UNSIGNED NOT NULL, ProduktName TINYTEXT NOT NULL, ProduktBeschreibung TEXT NOT NULL, Preis SMALLINT UNSIGNED NOT NULL)" ) or die( mysql_error ());

    //------------------------------------------------

    // Eine neue Eingabe hat stattgefunden
    if(!empty( $_POST [ 'nummer' ]) && !empty( $_POST [ 'pname' ]) && !empty( $_POST [ 'besch' ]) && !empty( $_POST [ 'preis' ])) {
      
    mysql_query ( "INSERT INTO produkte(produktNr, ProduktName, ProduktBeschreibung, Preis) VALUES('" . escape_string ( $_POST [ 'nummer' ]). "', '" . escape_string ( $_POST [ 'pname' ]). "', '" . escape_string ( $_POST [ 'besch' ]). "', '" . intval ( escape_string ( $_POST [ 'preis' ])). "')" ) or die( mysql_error ());
      
    header ( "Location: " . $_SERVER [ 'PHP_SELF' ]);
      die();
    // Seite anzeigen
    } else {
      
    // Die bereits vorhandenen Daten aus der Tabelle auslesen
      
    $mysql_query  mysql_query ( "SELECT produktNr, ProduktName, ProduktBeschreibung, Preis FROM produkte ORDER BY " . $orderby . " ASC" ) or die( mysql_error ());
      while(
    $row  mysql_fetch_array ( $mysql_query ))  $inhalt [] =  $row ;
      
      
    // Seitenaufbau
    ?>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
      "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      <title>Unbenanntes Dokument</title>
      <link  rel="stylesheet" type="text/css" href="bscss.css">
      
      <!--
      .Stil1 {
          font-size: 24px;
          font-family: Verdana, Arial, Helvetica, sans-serif;
      }
      .Stil2 {font-size: 16px}
      -->
      </style>
      </head>
      
      <body>
      
       <table style="margin-left:50px;" width="970"  border="0" >
         <tr>
           <td width="96" height="53">&nbsp;</td>
           <td width="818"><div align="center"><span class="Stil1"> <h1 >Eintragen eines neuen Produktes/ einer Dienstleistung in die Datenbank </h1></span></div></td>
      
      
           <td width="10">&nbsp;</td>
           <td width="8">&nbsp;</td>
           <td width="21">&nbsp;</td>
         </tr>
      </table>
       <table width="731" border="0" style="margin-left:80px;"></td>
         <tr>
           <td width="33" height="28"></td></tr>
           <tr>
           <td>
      <?php
      $wochentage
    = array( "Sonntag" , "Montag" , "Dienstag" , "Mittwoch" , "Donnerstag" , "Freitag" , "Samstag" );
      
    $monate = array( "Januar" , "Februar" , "M&auml;rz" , "April" , "Mai" , "Juni" , "Juli" , "August" , "September" , "Oktober" , "November" , "Dezember" );
      
    $tagderwoche = date ( "w" );
      
      
    $tag = date ( "d" );
      
    $monat = date ( "n" )- 1 ;
      
    $monatsname = $monate [ $monat ];
      
    $jahr = date ( "Y" );
      
    $uhr = date  ( "H.i" );
      echo 
    "Heute ist  $wochentage [ $tagderwoche ] , der  $tag $monatsname   $jahr . Seite betreten um  $uhr  Uhr" ;
      
    ?>
           </td>
           </tr>
           <td width="688"><p class="Stil2">Bitte tragen sie die Kenndaten f&uuml;r das Produkt ein:</p>
           </td>
         </tr>
       </table>
       <table width="64%" height="350px" border="0" style="margin-left:80px">
       <tr>
       
       <td>
       <div style="width:50;height:340px;
      padding:20px;border:2px solid #00c000; float:left;" id="top_title_rechts">
       <form name="form1" method="post" action="<?  echo  $PHP_SELF ; ?>">
         <div align="left"></div>
         <table border=0 width="50" height="331" cellpadding="1px" cellspacing="1px">
           <tr>
             <td height="28"><div align="center">Produktnummer:</div></td>
             <td width="310">         <div align="center">
                     <input type="text" name="nummer">                                                  
             </div></td>
           </tr>
           <tr>
             <td width="286" height="28"><p align="center">Produktname:</p></td>
             <td width="310">          <div align="center">
               <input type="text" name="pname">       
             </div></td>
           </tr>
           <tr>
             <td height="173"><p align="center">&nbsp;</p>
               <p align="center">Produktbeschreibung:</p>
               <p align="center">&nbsp;</p></td>
             <td>
               <div align="center">
                 <textarea rows="10" name="besch"></textarea>
               </div></td>
           </tr>
           <tr>
             <td height="47"><div align="center">Preis in &euro;:</div></td>
             <td>         <div align="center">
                <input type="text" name="preis">
             &euro;</div></td>
           </tr>
           <tr>
             <td height="28">
               <div align="center">
                 <input type="submit" name="Submit" value="Speichern">
               </div></td>
             <td>         <div align="center">
               <input type="reset" name="Submit" value="L&ouml;schen">       
             </div></td>
           </tr>
         </table>
         </div>
         </td>
    <? 
      
    echo  "<td>" ;
      echo 
    "<div style='width:50;height:37; padding:20px;margin-top:0px  float:left;' id='top_title_rechts'> " ;
      echo 
    "<table cellspacing='1' border='1' cellpadding='2' align='center'>" ;
      echo 
    "<tr bgcolor='#c0ffc0' align='center'><td>Produktnummer</td><td>Produktname</td><td>Beschreibung</td><td>preis</td><td>x</td></tr>" ;
      
      foreach(
    $inhalt  as  $row )
      {
        echo 
    "<tr align='center'>
              <td>
    $row [ 0 ] </td><td> $row [ 1 ] </td><td> $row [ 2 ] </td><td> $row [ 3 ] </td><td>
              <a href='
    $PHP_SELF ' ?id= $i ';>x</a></td></tr>" ;
      }
        echo 
    "</table>" ;
        echo 
    "</td>" ;
        echo 
    "</tr>" ;
      echo 
    "</table>" ;
    ?>
        
      
                                                                                                                                                                                                                                                                                                                             <p>&nbsp;</p>
      </form>
       <p>&nbsp;</p>
      </body>
      </html>
    <?php
    }
    ?>
     
  6. 10. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    Zeilenumbruch???? cO ..

    Ich sehe keinen Zeilenumbruch in der Produktbeschreibung, aber sicher hast du recht damit das eine SQL Lösung wesentlich besser ist. (Konnte aber keine ausm stehgreif schreibn ^^)
     
  7. 10. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    Probier doch mal sein Formular aus und gebe folgende Produktbeschreibung ein:
    "1. Zeile
    2.Zeile"

    Dann wirst du sicherlich merken was ich meine.
     
  8. 11. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    also auf jeden fall danke für die (sau)schnelle hilfe ... das is für euch leute wohl kinderkram ^^
    sry noch für den post ins falschee forum, und mir bleibt nur eis zu sagen :
    bw sind raus , danke, und wenn ich wieder hilfe brauch hoff ich , kann ich auf euch zählen =D
     
  9. 11. Juni 2008
    AW: PHP $_POST-Array werte löschen und sortieren

    sieht so aus als ob das unternehmen ned all zu hohe anforderungen stellt

    Erledigt::geschlossen();
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.