Datensatz selektieren und bearbeiten

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

  • Datensatz selektieren und bearbeiten

    Datensatz selektieren und bearbeiten!

    Hallo, ich bins und komme mal wieder nicht weiter! Ich hoffe, Ihr helft mir ein wenig!

    Also, Ich habe nun eine dynamische Tabelle, die Daten aus MySQL enthält. Ich habe es auch schon geschaftt, jedem Datensatz einen Radiobutton in einer extra Spalte beizufügen.

    PHP-Code:

        printf
    "<tr align=\"left\" valign=\"middle\" bgcolor=\"#CCCCCC\" class=\"Stil1\">\n");
                    
    printf"<td align=\"center\" valign=\"middle\"><form name=\"choice\" method=\"post\" action=\"$PHP_SELF\"><input name=\"choice\" type=\"radio\" value=\"$UserID\" checked></td>\n");
                    
    printf"<td>%s</td>\n"$UserID);
                    
    printf"<td>%s</td>\n"$Name);
                    
    printf"<td>%s</td>\n"$Vorname);
                    
    printf"<td>%s</td>\n"$UserName);
                    
    printf"<td>%s</td>\n"$url);
                
    printf"</tr>"); 
    Ich möchte nun zwei Buttons anlegen, mit dem einen soll der mit dem Radiobutton selektierte Datensatz gelöscht werden und mit dem anderen editiert, also geändert werden können.

    Erst mal die Löschen-Geschichte:

    Ich dachte mir, der Value-Wert sollte gleich dem Wert der $UserID sein.

    Und jetzt weiss ich nicht weiter!

    Freue mich auf Unterstützung!

    MfG Piumer

  • #2
    ne andere idee,
    warum machst du das mit radiobutten und nicht z.b. mit einem link für das löschscript? ala
    <a href=\"löschen.php?id=iddeszulöschendendatensatzes\">klicke hier um mich zu löschen</a>

    find diese mehtode wesentlich einfacher, wenn "nur" ein datensatz ausgewählt wird.

    Kommentar


    • #3
      Löscht falschen Datensatz

      Jo, das ist wirkich besser! Ich habe es jetzt so gemacht:

      PHP-Code:
              // printf( "<div align=center>\n");
              
      printf"<table border=0>\n");
              
      printf"<tr align=\"center\" valign=\"middle\" bgcolor=\"#006699\" class=\"Stil2\">\n");
                  
      printf"<th></th>\n");
                  
      printf"<th></th>\n");
                  
      printf"<th align=\"center\">UserID</th>\n");
                  
      printf"<th align=\"center\">Name</th>\n");
                  
      printf"<th align=\"center\">Vorname</th>\n");
                  
      printf"<th align=\"center\">UserName</th>\n");
                  
      printf"<th align=\"center\">Url</th>\n");
              
      printf"</tr>\n");
          
          
      $i 0;
          while (
      $i mysql_NumRows($query))
          {
              
      // Auslesen der Daten aus der User-Tabelle:
              
      $UserID       mysql_Result($query$i"UserId");
              
      $Name         mysql_Result($query$i"Name");
              
      $Vorname      mysql_Result($query$i"Vorname");
              
      $UserName     mysql_Result($query$i"UserName");
              
      $url          mysql_Result($query$i"url");
           
              
      printf"<tr align=\"left\" valign=\"middle\" bgcolor=\"#CCCCCC\" class=\"Stil1\">\n");
                  
      printf"<td align=\"center\" valign=\"middle\"><a href=\"admin/del_user.php?mode=delete&id=$UserID\">Löschen</a></td>\n");
                  
      printf"<td align=\"center\" valign=\"middle\"><a href=\"admin/edit_user.php?mode=update&id=$UserID\">Edit</a></td>\n");
                  
      printf"<td align=\"center\">%s</td>\n"$UserID);
                  
      printf"<td>%s</td>\n"$Name);
                  
      printf"<td>%s</td>\n"$Vorname);
                  
      printf"<td>%s</td>\n"$UserName);
                  
      printf"<td>%s</td>\n"$url);
              
      printf"</tr>");
              
      $i++;
          } 
      In der del_user.php steht folgendes:

      PHP-Code:
      <?PHP
          session_start
      ();
          include(
      "../connect2db.inc.php");
          
          if(
      $_GET['mode'] == "update") {
              
      $strSQL "SELECT * FROM AdminUser WHERE id = ".$_GET['id']."";
              
      $data   mysql_query($strSQL);
              
      // datensatz anzeigen lassen

          
      } elseif ($_GET['mode'] == "delete") {
              
      /* datensatz löschen */
              
      $strSQL "DELETE FROM AdminUser WHERE UserId = ".$_GET['id']."";
              
      mysql_query($strSQL);
          }
      ?>
      Jetzt weiss ich bloß nicht, wie ich der jeweiligen id in dem Link die dazu passende ID aus der $UserID zuweise! Denn so wie es jetzt ist, wird immer der letzte Datensatz aus der Tabelle gelöscht, auch wenn ich eigentlich einen ganz anderen Datensatz löschen möchte!

      Gruß Piumer

      Kommentar


      • #4
        du übergibst sowohl bei update als auch bei delete die userid, doch dein
        sql-string fragst du mal nach der id mal nach userid wie ist denn
        die beziehung zwischen id und userid in der tabelle

        Kommentar


        • #5
          Löschen funzt schon mal!

          Nee, das löschen funktioniert jetzt!

          Bei der Updatesache war ich noch nicht und deshalb hatte ich es noch nicht angepasst, wie es beim Löschen der Fall ist! Also UserId ist richtig und dass steht nun so auch bei Update.

          Ich möchte es so, dass bei Edit (also update) auf die seite edit_user gelinkt wird. Darin habe ich schon mal das Formular gestrickt, in das nun der entsprechende Datensatz angezeigt werden soll. Also die Daten in den entsprechenden Textfeldern! Und per Link dann die geänderten Daten in der Tabelle "updatet"

          Wie stelle ich das nun an?

          Ach ja, wie stelle ich es an, dass die erste Spalte in der SQL-Tabelle automatisch gerneriert wird?
          In der ersten Spalte ist ja die UserID. Wenn ich nun 5 User gespeichert habe und den zweiten User, die den Wert 2 in der Spalte stehen hat, lösche, dann fehlt halt die 2! Nun soll aber der nächste user automatisch die 2 bekommen usw. Ich denke, Ihr versteht schon was ich meine.

          Und wenn ich nachher einen neuen User einfüge, soll der automatisch die nächste freie ID bekommen, also die 5, wenn 4 User vorhanden sind!!!!

          Oh mann, soviele Fragen aufeinmal! Aber erstmal ist das Editieren (Update) am wichtigsten!

          Hubbs, es ist ja schon Karfreitag
          So, jetzt wünsche ich euch allen erstmal FROHE OSTERN!!!! und gaaanz gaaanz DICKE (oster)-EIER

          Und noch mal VIELEN VIELEN DANK allen Leuten, die sich mit uns Nervigen Anfängern herumschlagen und uns so nett helfen!
          DANKE AN DAS FORUM! bzw. den Machern, die das Forum betreiben!

          Puh....so..genug geschleimt!

          Gute Nacht!

          MfG Piumer

          php-resource.de RULEZ!!!

          Kommentar


          • #6
            kannst du bitte die überlangen Text- und Codezeilen umbrechen, hab'
            keine Lust zu scrollen, ist ja noch früh , ich schaue dann nachher wieder rein.

            Kommentar


            • #7
              servus

              durch den link kannst du ja mit $_GET['name_der_variable_aus_url'] den wert auslesen und weiter verarbeiten z.b. in einer WHERE bedingung aus deinem SQL statement.

              deine id spalte sollte normalerweise etwas eindeutiges sein (autoincrement) wenn du jetzt die angesprochenen reihenfolge erreichen willst geht das meiner meinung nach nur mit einem workaround:

              id des gelöschten dartensatzen in die tabelle "pool" schreiben
              bei neuem datensatz prüfen, ob in der tabelle pool ein wert steht.
              falls ja, wert entnehmen un dort löschen und dem neuen datensatz zuweisen. ansonsten per autoincrement vergeben lassen. (meiner meinung nach zu aufwendig -> aber du hast gefragt )

              so hoffe das ich jetzt alle fragen abgehandelt habe. auch dir frohe ostern und falls was fehlen sollte -> bitte nochmlas fragen

              Kommentar


              • #8
                Wie übergebe ich an das Formular?

                Hi!

                So, habs soweit, dass ich bei klick auf den Link Edit auf das Formular gelinkt wird und die entsprechende Id des Datensatzes mit gepostet wird.

                So habe ich nun die MySQL Query gemacht:

                PHP-Code:
                // SQL-Abfrage
                    
                include("connect2db.inc.php");
                    
                $query mysql_query("SELECT UserId, Name, Vorname,
                 UserName, UserPasswd, url FROM AdminUser WHERE UserId = '"
                .$_GET['id']."' ");
                    
                $result mysql_fetch_array$query) or die (mysql_error()); 
                Ist die Query so richtig und wie übergebe ich nun die Werte an das Formular?

                Viele Grüße

                Piumer

                Kommentar


                • #9
                  in dein formular schreibst du wieder das gleiche

                  <form action=\"script_fuers_aendern.php?id=$_GET['id']>

                  es verbietet dir ja niemand eine variable mehrmals zu benutzen

                  in deinem array $result hast du ja alle werte drin

                  versuche mal
                  echo $result['Name'];


                  und wenn in deinem formular zufällig

                  ...value=\"".$result['name']."\"...

                  steht, was meinst du passiert?

                  Kommentar


                  • #10
                    Ich vermute etwas, was passieren könnte, aber ich bin mir noch nicht sicher!

                    Ich habe mein Formular bis jetzt in einer HTML-Tabelle stehen, muss ich das jetzt erst als PHP-echo ausgeben lassen damit es funzt? Denn die Variable in value="" wird so nicht von meinem Editor als PHP-Code erkannt?

                    PHP-Code:
                    <form action="del_user.php?mode=delete&id=$_GET['id'" method="get">
                    <
                    table width="50%"  border="0">
                      <
                    tr>
                        <
                    td width="3%">&nbsp;</td>
                        <
                    td width="36%" bgcolor="#006699" class="Stil2"><div align="right">Benutzer-ID:</div></td>
                        <
                    td colspan="2" bgcolor="#CCCCCC"><input name="textfield" type="text" size="5" maxlength="2" value=\"".$result['name']."\"></td>
                        <td width="
                    12%">&nbsp;</td>
                      </tr>
                      <tr>
                        <td>&nbsp;</td>
                        <td bgcolor="
                    #006699" class="Stil2"><div align="right">Nachname:</div></td>
                        
                    <td colspan="2" bgcolor="#CCCCCC"><input name="textfield" type="text" size="25" maxlength="25"></td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td bgcolor="#006699" class="Stil2"><div align="right">Vorname:</div></td>
                        <
                    td colspan="2" bgcolor="#CCCCCC"><input name="textfield" type="text" size="25" maxlength="25"></td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td bgcolor="#006699" class="Stil2"><div align="right">UserName:</div></td>
                        <
                    td colspan="2" bgcolor="#CCCCCC"><input name="textfield" type="text" size="25" maxlength="25"></td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td bgcolor="#006699" class="Stil2"><div align="right">Passwort:</div></td>
                        <
                    td colspan="2" bgcolor="#CCCCCC"><input name="textfield" type="text" size="35" maxlength="35"></td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td bgcolor="#006699" class="Stil2"><div align="right">Pw in MD5 generieren: </div></td>
                        <
                    td width="5%" bgcolor="#CCCCCC">&nbsp;</td>
                        <
                    td width="44%" bgcolor="#CCCCCC"><input type="submit" name="Submit" value="Generieren"></td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td bgcolor="#006699" class="Stil2"><div align="right">User-Url:</div></td>
                        <
                    td colspan="2" bgcolor="#CCCCCC"><input name="textfield" type="text" size="35" maxlength="35"></td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td colspan="3">&nbsp;</td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                      <
                    tr>
                        <
                    td>&nbsp;</td>
                        <
                    td bgcolor="#CCCCCC" class="Stil1"><div align="center"><a href="admin/edit_user.php?mode=update&id=$UserID">Daten Ändern</a></div></td>
                        <
                    td colspan="2">&nbsp;</td>
                        <
                    td>&nbsp;</td>
                      </
                    tr>
                    </
                    table>
                    </
                    form

                    Kommentar


                    • #11
                      Wenn ich es nämlich so mache, dann steht der PHP-Code in der Textbox und dass soll ja nicht so sein?!

                      PHP-Code:
                      <td colspan="2" bgcolor="#CCCCCC"><input name="ID" type="text" size="5" maxlength="2" value="<? $result['UserId'] ?>"></td>

                      Kommentar


                      • #12
                        ich hoffe mal deine datei hat die erweiterung datei.php

                        falls ja, dann teste doch mal:

                        PHP-Code:
                        <?php
                        $i 
                        1;
                        ?>

                        <html>
                        <body>
                        der wert von $i ist <?php echo $i?>
                        </body>
                        </html>
                        oder
                        PHP-Code:
                        <?php
                        $i 
                        1;
                        echo
                        " <html>
                        <body>
                        der wert von 
                        $i ist ".$i."
                        </body>
                        </html>"
                        ;


                        ob man jetzt den parser immer wieder ein und ausschalten soll oder das ganze html in ein echo packt und mit stringerweiterung ( . ) arbeitet (achtung html doppelte anführungszeichen müssen, wenn du bei echo mit doppelten anführungszeichen arbeitest escapt ( \" ) werden) darüber gibt es hier im forum etliche threads

                        Kommentar


                        • #13
                          Natürlich ist es PHP

                          Hallo Jochen, auch Dir erstmal FROHE OSTERN!!!

                          Bei mir ist alles PHP!

                          Also, der Fehler liegt daran, dass ich die Variable als echo ausgeben muss?

                          Also nicht so:

                          PHP-Code:
                          <td colspan="2" bgcolor="#CCCCCC"><input name="ID" type="text" size="5" maxlength="2" value="<? $result['UserId'] ?>"></td>
                          , sondern so:

                          PHP-Code:
                          <td colspan="2" bgcolor="#CCCCCC"><input name="ID" type="text" size="5" maxlength="2" value="<? echo "$result['UserId']" ?>"></td>
                          Probier ich mal aus!

                          Gruß Piumer

                          Kommentar


                          • #14
                            nee, so

                            Quatsch, also so?

                            PHP-Code:
                            <td colspan="2" bgcolor="#CCCCCC"><input name="ID" type="text" size="5" maxlength="2" value="<?PHP echo $result['UserId']; ?>"></td>

                            Kommentar


                            • #15
                              ja, und?

                              was steht im endefekt im quelltext, der vom browser angezeigt wird?
                              sind die variablen aufgelöst? oder gibt es noch offene fragen?

                              soweit sieht bisher alles gut aus

                              Kommentar

                              Lädt...
                              X