Ankündigung

Einklappen
Keine Ankündigung bisher.

ID aus Tabellenzeile auslesen

Einklappen

Neue Werbung 2019

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

  • ID aus Tabellenzeile auslesen

    Hallo,

    ich bin gerade dabei eine Verleihliste zu programmieren. Und komme an einem Punkt nicht weiter.

    Ich lasse mir eine dynamische Tabelle anzeigen. In den Zeilen habe ich jeweils einen "Zurückgeben" Button hinzugefügt. Wenn man auf den Button klickt, soll die ID der Zeile in der Tabelle ausgelesen werden und über form action übergeben werden. Leider weiß ich nicht, wie ich das machen soll, könnt ihr mir helfen?

    Hier meine Tabelle:
    PHP-Code:
    <table border=1 sqlentity="yes" rowname="autotagging"> 
    <tr> 
        <th> Produkt </th> 
        <th> Beschreibung </th>
        <th> Seriennummer </th>
        <th> Ausleiher </th> 
        <th> Verleiher </th> 
        <th> Kommentar </th> 
        <th> Verleihdatum </th> 
        <th> R&uuml;ckgabe </th>
         
    </tr> 
    <?php 
    $query 
    "SELECT `prodname`,`proddesc`,`serial`,`ausleiher`,`username`,`comment`,`outdate` FROM `asset`
    inner join products on products.id = asset.produkt
    inner join user on user.User_ID = asset.verleiher
    where indate = ''"
    ;

    $result mysql_query($query) or die(mysql_error()); 
    while(
    $row mysql_fetch_assoc($result)) { 

    echo 
    '<tr>'
    echo     
    '<th width="130" align="left">'
    echo     
    $row['prodname']; 
    echo     
    '</th>'

    echo     
    '<th width="220" align="left">'
    echo     
    $row['proddesc']; 
    echo     
    '</th>'

    echo     
    '<th width="100" align="left">'
    echo     
    $row['serial']; 
    echo     
    '</th>'

    echo     
    '<td width="100" align="center">'
    echo     
    $row['ausleiher']; 
    echo     
    '</td>'

    echo     
    '<td width="100" align="center">'
    echo     
    $row['username']; 
    echo     
    '</td>'

    echo     
    '<td width="150" align="center">'
    echo     
    $row['comment']; 
    echo     
    '</td>'

    echo     
    '<td width="50" align="center">'
    echo     
    $row['outdate']; 
    echo     
    '</td>'

    echo    
    '<td>'
    echo     
    "<form action='backindate.php' method='post'>";
    echo     
    "<input type='Submit' value='Zur&uuml;ckgeben'>";
    echo    
    "</form>";; 
    echo    
    '</td>'

    echo 
    '</tr>'


    ?> 
    </table>
    Und hier soll die ID hin:

    PHP-Code:
    <?php
    $id 
    $_REQUEST["id"];
    $timestamp time();
    $datum date("d.m.Y - H:i"$timestamp);

    $eintrag "update asset set indate = '$datum' where id = '$id'";
    $eintragen mysql_query($eintrag);

    if(
    $eintragen == true)
       {
       echo 
    "Eintrag war erfolgreich";
       }
    else
       {
       echo 
    "Fehler beim Speichern";
       }

    ?>
    Ist ja logisch, dass gerade nichts übergeben wird. Allerdings weiß ich halt auch nicht, wie ich die ID auslesen und übergeben kann. Ich hoffe, ihr könnt mir helfen.


  • #2
    Per Hidden-Field oder aber einfach per Get-Request über nen Link.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Wie sähe das dann aus? Beschäftige mich erst wenige Tage mit PHP

      Kommentar


      • #4
        Dann lerne
        Hinweis: irgendwo in diesem Bereich willst du was machen.
        PHP-Code:
        echo     "<form action='backindate.php' method='post'>";
        echo     
        "<input type='Submit' value='Zur&uuml;ckgeben'>"
        http://www.peterkropff.de/ gute Seite um Grundlagen zu lernen.
        http://www.php.de/php-einsteiger/489...nsammlung.html

        Solltest die ID vielleicht mit ins Select nehmen, damit du auch auf die zugreifen kannst.
        +
        Standardtext für die Datenbankverbindung:
        Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
        Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
        Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm
        Relax, you're doing fine.
        RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

        Kommentar


        • #5
          Zitat von Ampli Beitrag anzeigen
          Wie sähe das dann aus? Beschäftige mich erst wenige Tage mit PHP
          is ja auch html:
          hidden:
          http://de.selfhtml.org/html/formulare/versteckte.htm
          get:
          http://www.php.de/newreply.php?do=newreply&p=817854

          Kommentar


          • #6
            Also müsste es so sein?

            PHP-Code:
            echo     "<form action='backindate.php' method='post'>";
            echo     
            "<input type='hidden' name='id' value='Hier muss dann doch die ID rein oder nicht?'>"
            echo     "<input type='Submit' value='Zur&uuml;ckgeben'>";
            echo    
            "</form>";; 
            So kann ich etwas unsichtbar übergeben das ist mir schon klar, aber wie kriege ich die jetzt die ID in eine Variable?

            Kommentar


            • #7
              Jo, so gehts.
              Die ID musst du mit aus der Datenbank abfragen. Und dann greifst du darauf zu, wie auf die anderen Spalten auch.
              Relax, you're doing fine.
              RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

              Kommentar


              • #8
                Wenn ich oben im Select id hinzufüge bekomme ich diese Fehlermeldung ...

                "Column 'id' in field list is ambiguous"

                und ich muss ja erstmal im select id auswählen um die überhaupt abfragen zu können...

                Kommentar


                • #9
                  "Column 'id' in field list is ambiguous" bedeutet, dass das Feld id in mehreren der per Joins verknüpften Tabellen existiert, musst also direkt angeben von welcher Tabelle du die id brauchst.
                  Zitat von nikosch
                  Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                  Kommentar


                  • #10
                    meine tabelle heißt asset, dementsprechend müsste es ja dann asset.id heißen das klappt aber auch nicht. habe ich auch schon vorher probiert.

                    Kommentar


                    • #11
                      Zitat von Ampli Beitrag anzeigen
                      meine tabelle heißt asset, dementsprechend müsste es ja dann asset.id heißen das klappt aber auch nicht. habe ich auch schon vorher probiert.


                      Code:
                      `asset`.`id`
                      Wenn das nicht klappt, gibts dort keine Spalte 'id'.
                      Zitat von nikosch
                      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                      Kommentar


                      • #12
                        Dein Code ist anfällig für SQL Injections (@TE]
                        Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                        Kommentar


                        • #13
                          Zitat von VPh Beitrag anzeigen
                          Jo, so gehts.
                          Die ID musst du mit aus der Datenbank abfragen. Und dann greifst du darauf zu, wie auf die anderen Spalten auch.
                          Ich weiß leider nicht, wie ich das mache ...

                          ich vermute select `asset`.`id` dann iwie die id rausgreifen in eine variable und die variable in value.
                          value wird übergeben und fertig ...

                          Kommentar


                          • #14
                            Zitat von Ampli Beitrag anzeigen
                            ich vermute select `asset`.`id` dann iwie die id rausgreifen in eine variable und die variable in value.
                            value wird übergeben und fertig ...
                            Klingt ziemlich.... Ich hab keine Ahnung was du meinst.
                            Zitat von nikosch
                            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                            Kommentar


                            • #15
                              Zitat von Ampli Beitrag anzeigen
                              Ich weiß leider nicht, wie ich das mache ...
                              Poste das komplette SQL statement erneut hierhin.

                              Die Fehlermeldung kommt von der Datenbank, dh. das Query muss verbessert werden.. das hat nix mit irgendwelchen PHP Variablen zu tun.
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X