Bearbeitung vereinfachen

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

  • Bearbeitung vereinfachen

    Hallo Leute,
    Ich habe mich hier neu angemeldet und denke dass ihr mir helfen könnt.

    Ich habe mir einwehnig PHP und MySQL angeeignet. doch nun stehe ich gerade an der Grenze meines Könnens (nicht könnens).

    Also nun zu meinem Problem.

    Ich habe ein Formular, mit welchem ich in eine Datenbank schreibe, und dann lasse ich diese Datenbankeinträge oberhalb dieses Formulars anzeigen.
    ich habe es so gemacht, dass ich die einträge löschen oder bearbeiten kann.
    Auch dies funktioniert wunderbar. jetzt ist nur das Problem dass wenn ich einen Eintrag bearbeiten möchte, nicht nur dieser zur bearbeitung freikommt.

    Das heisst, wenn ich den eintrag mit der ID 248 bearbeiten möchte könnte ich danach auch all die andern bearbeiten, und ich kann dann auch bei einem anderen etwas ändern. Das ist nicht gut, denn es wird nur die Lienie bearbeitet, auf welcher ich sichern drücke.

    So dies ist mein Code:
    PHP-Code:
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
    <title>apachefriends.org cd collection</title>
    <link href="xampp.css" rel="stylesheet" type="text/css">
    </head>

    <body>

    <p>
    <h1>CD Daten</h1>

    Die einfach zu verwaltende Datenbank

    <?

    // Copyright (C) 2002/2003 Kai Seidler, [email]oswald@apachefriends.org[/email]
    //
    // This program is free software; you can redistribute it and/or modify
    // it under the terms of the GNU General Public License as published by
    // the Free Software Foundation; either version 2 of the License, or
    // (at your option) any later version.
    //
    // This program is distributed in the hope that it will be useful,
    // but WITHOUT ANY WARRANTY; without even the implied warranty of
    // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    // GNU General Public License for more details.
    //
    // You should have received a copy of the GNU General Public License
    // along with this program; if not, write to the Free Software
    // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


    if(!mysql_connect("localhost","root",""))
    {
    echo "<h2>Het nöd klappt</h2>";
    die();
    }
    mysql_select_db("cdcol");
    ?>

    <h2>Daten</h2>

    <table border=0 cellpadding=0 cellspacing=0>
    <tr bgcolor=#f87820>
    <td><img src=img/blank.gif width=10 height=25></td>
    <td class=tabhead><img src=img/blank.gif width=200 height=6><br><b>Interpret</b></td>
    <td class=tabhead><img src=img/blank.gif width=200 height=6><br><b>Titel</b></td>
    <td class=tabhead><img src=img/blank.gif width=50 height=6><br><b>Jahr</b></td>
    <td class=tabhead><img src=img/blank.gif width=50 height=6><br><b>Aktion</b></td>
    <td><img src=img/blank.gif width=10 height=25></td>
    </tr>


    <?
    if($_REQUEST['action']=="sich")
    { if($jahr=="")$jahr="NULL";
    $titel=htmlentities($_REQUEST['titelsi']);
    $interpret=htmlentities($_REQUEST['interpretsi']);
    $jahr=htmlentities($_REQUEST['jahrsi']);
    $id=htmlentities($_REQUEST['id']);
    mysql_query("UPDATE cds Set titel = '$titel', interpret = '$interpret', jahr = '$jahr' WHERE id = '$id'");
    echo $row;
    }

    if($_REQUEST['interpret']!="")
    {
    if($jahr=="")$jahr="NULL";
    $titel=htmlentities($_REQUEST['titel']);
    $interpret=htmlentities($_REQUEST['interpret']);
    $jahr=htmlentities($_REQUEST['jahr']);
    mysql_query("INSERT INTO cds (titel,interpret,jahr) VALUES('$titel','$interpret',$jahr);");
    }

    if($_REQUEST['action']=="del")
    {
    mysql_query("DELETE FROM cds WHERE id={$_REQUEST['id']};");
    }




    $result=mysql_query("SELECT id,titel,interpret,jahr FROM cds ORDER BY interpret;");

    $i=0;
    while( $row=mysql_fetch_array($result) )
    {
    if($i>0)
    {
    echo "<tr valign=bottom>";
    echo "<td bgcolor=#ffffff background='img/strichel.gif' colspan=6><img src=img/blank.gif width=1 height=1></td>";
    echo "</tr>";
    }

    if($_REQUEST['action']=="upd")
    {
    echo "<tr valign='middle'>";
    echo "<form action=cds.php method=get>";
    echo "<td class='tabval'><img src='img/blank.gif' alt='' width='10' height='20'></td>";
    echo "<input type='hidden' name='action' value='sich'><input type='hidden' name='id' value=".$row['id'].">";
    echo "<td class='tabval'><input type='text' value='".$row['interpret']."' size='20' name='interpretsi'>&nbsp;</td>";
    echo "<td class='tabval'><input type='text' value='".$row['titel']."' size='20' name='titelsi'>&nbsp;</td>";
    echo "<td class='tabval'><input type='text' value='".$row['jahr']."' size='20' name='jahrsi'>&nbsp;</td>";
    //echo "<td><a href='cds.php?action=sich&id=".$row['id']."&interpret=".$row['interpretsi']."&titel=".$row['titelsi']."&jahr=".$row['jahrsi']."'><span class=green>[sichern]</span></a></td>";
    echo "<td><input type=submit border=0 value='Sichern'></td>";
    echo "<td class='tabval'></td>";
    echo "</form>";
    echo "</tr>";



    }
    else
    {
    echo "<tr valign=center>";
    echo "<td class=tabval><img src=img/blank.gif width=10 height=20></td>";
    echo "<td class=tabval><b>".$row['interpret']."</b></td>";
    echo "<td class=tabval>".$row['titel']."&nbsp;</td>";
    echo "<td class=tabval>".$row['jahr']."&nbsp;</td>";

    echo "<td class=tabval><a onclick=\"return confirm('Sicher?');\" href=cds.php?action=del&id=".$row['id']."><span class=red>[löschen]</span></a></td>";
    echo "<td class=tabval><a href=cds.php?action=upd&id=".$row['id']."><span class=green>[bearbeiten]</span></a></td>";
    echo "<td class=tabval></td>";
    echo "</tr>";
    $i++;
    }
    }

    echo "<tr valign=bottom>";
    echo "<td bgcolor=#fb7922 colspan=6><img src=img/blank.gif width=1 height=8></td>";
    echo "</tr>";


    ?>

    </table>

    <h2>Neuer Eintrag</h2>

    <form action=cds.php method=get>
    <table border=0 cellpadding=0 cellspacing=0>
    <tr>
    <td>Interpret:</td>
    <td><input type=text size=30 name=interpret></td>
    </tr>
    <tr>
    <td>Titel:</td>
    <td> <input type=text size=30 name=titel></td>
    </tr>
    <tr>
    <td>Jahr:</td>
    <td> <input type=text size=5 name=jahr></td>
    </tr>
    <tr>
    <td></td>
    <td><input type=submit border=0 value="Neu eintragen"></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    </tr>
    <tr>
    <td></td>
    <td></td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    ist dies irgend wie möglich zu umgehen?

    Mit freundlichem Gruss
    bambid

  • #2
    Hi bambid,

    so ganz durchgestiegen bin ich noch nicht durch dein code

    ich würde aber als erstes mal deinen submit butten einen namen geben
    Code:
    <input type=submit value=sichern name=sichern>
    und dann mit
    PHP-Code:
    IF(ISSET($_POST['sichern'])) {
    //tue dies mach das

    überprüfen

    als nächstes würde ich die while schleife entfernen da du ja nur einen eintrag bearbeiten willst.
    Ich hoffe das hilft dir ein Stück weiter

    Kommentar


    • #3
      ich würde an stelle von Copyright (C) besser error_reporting(E_ALL); machen und über valide html-code die gedanken machen.
      Auch nachlesen von Forum-Regeln wäre nicht schlecht.
      Slava
      bituniverse.com

      Kommentar


      • #4
        Vyacheslav, was soll der mist?
        ich weiß auch so, mein os, browser & ip, dazu brauche ich dich nicht.

        Kommentar


        • #5
          OffTopic:
          Original geschrieben von 3DMax
          ich weiß auch so, mein os, browser & ip, dazu brauche ich dich nicht.
          Na wer weiß, ob du das noch weißt...







          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            wie war nochmal die frage ... ?

            Kommentar


            • #7
              Die zu editierende ID solltest du auch selektieren....
              PHP-Code:
              if ($_REQUEST['action']=="upd" && $_REQUEST['id'] == $row['id']) 

              Kommentar


              • #8
                bitte was ? ich check nicht mal was er will ?

                Kommentar


                • #9
                  Ich auch nicht, aber ich würd das Skript mal spontan in die Tonne werfen ... schon lange nicht mehr sowas undurchsichtiges gesehen - ich hab schon keine Lust mich durch den Quellcode zu wühlen, wenn ich diesen unformatierten farbigen Haufen sehe...

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    Also ich finde es übersichtlch, und einige andere auch, denn die lösung des Problems wurde genannt.

                    Jetzt habe ich mich an ein ganz einfaches Loginscript herangetraut, und habe es auch geschaft. nach dem einloggen, übergibt das Script einen $level,
                    welchen ich dann auch in meiner Datenbank hinter einigen Einträgen gemacht habe. und übernehme diesen mit $stufe.

                    Jetzt möchte ich natürlich dem hans müller der sich mit $level =1 eingelogt hat auch nur die einträge mit $status=1 anzeigen.

                    Wenn ich den Test mit
                    echo $level
                    echo $status
                    mache, sind beide gleich.

                    wenn ich nun meines Erachtens den Code von:

                    PHP-Code:
                    if($_REQUEST['action']=="upd" && isset($_REQUEST['id']) && $_REQUEST['id'] == $row['id']

                    in:
                    PHP-Code:
                    if($_REQUEST['action']=="upd" && isset($_REQUEST['id']) && $_REQUEST['id'] == $row['id'] && $level == $stufe)

                    ändere, zeigt er gar nichts in der Tabelle an.

                    habe ich mich da etwa vertan, oder habe ich das nicht richtig interpretiert?

                    Mit freundlichem Gruss

                    bambid

                    Kommentar


                    • #11
                      Also ich habe es hinbekommen.
                      Es war ja völlig falsch überlegt von mir!

                      also ich habe die zeile:
                      PHP-Code:
                      $result=mysql_query("SELECT id,titel,interpret,jahr,leih FROM cds ORDER BY interpret;"); 
                      wie folgt angepasst:
                      PHP-Code:
                      $result=mysql_query("SELECT id,titel,interpret,jahr,leih FROM cds WHERE stufe=$level ORDER BY interpret;"); 
                      natürlich musste ich einige Formulare noch anpassen, doch das war dann nur noch nebensache.

                      Ich danke euch für die Tipps.

                      MfG bambid

                      Kommentar


                      • #12
                        Original geschrieben von 3DMax
                        Vyacheslav, was soll der mist?
                        ich weiß auch so, mein os, browser & ip, dazu brauche ich dich nicht.
                        ich will nun auch mal deine ip und os wissen, und dabei auch meine ip wegen alzheimer nicht vergessen
                        Wo hast du rausgefunden, dass Slava und Vjacheslav die gleichen Namen sind?
                        Sage schon! sonnst puste ich deine IP weg!
                        Slava
                        bituniverse.com

                        Kommentar


                        • #13
                          Original geschrieben von Slava
                          Wo hast du rausgefunden, dass Slava und Vjacheslav die gleichen Namen sind?
                          Sage schon! sonnst puste ich deine IP weg!
                          1. du hast das bild eingebunden.
                          2. der domaininhaber hat einen ausländischen namen ...
                          3. ... und wohnt in köln.

                          o.g. punkte deuten mit hoher wahrscheinlichkeit darauf hin, dass slava und der domaininhaber ein und dieselbe person sind.
                          war doch nicht schwer, oder?

                          darf ich meine ip jetzt behalten?

                          [EDIT]achso, nochetwas, punkt 4 - grammatikfehler im bild: "Deine OS"
                          Zuletzt geändert von 3DMax; 21.09.2007, 15:36.

                          Kommentar

                          Lädt...
                          X