Ankündigung

Einklappen
Keine Ankündigung bisher.

Variable aus Auflistung auslesen

Einklappen

Neue Werbung 2019

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

  • Variable aus Auflistung auslesen

    Guten Morgen,
    ich grübel seit einiger Zeit an einem kleinen Problem.
    Ich habe Abwesenheiten in einer SQL Tabelle gespeichert. Diese möchte ich für den Benutzer auflisten. Neben dieser Auflistung soll ein Button stehen, mit welchem ich den Eintrag dann editieren kann (Bspw. Datum oder Grund der Abwesenheit ändern).
    Der Benutzer soll beim Klick auf den Button auf eine andere Seite geleitet werden, dabei soll die id in der Datenbank über $_SESSION[] übermittelt werden.
    Nun die Frage, wie lese ich die id des Eintrages beim Druck auf den Button aus?

    Hier mal mein Script:
    PHP-Code:
    <?php
                        $sql_quer 
    "SELECT * FROM vacation WHERE uid = '$username'";
                        
    $result $mysqli->query($sql_quer);
                        
    $num_rows mysqli_num_rows($result);

                        echo 
    '<p>Du hast '.$num_rows.' Abwesenheiten:<br><br>---------------------<br></p>';

                        while(
    $row $result->fetch_assoc())
                        {
                            
    $sDateConv convertDate($row['startdate']);
                            
    $eDateConv convertDate($row['enddate']);
                            echo 
    '<p>Abwesenheit AW'.$row['id'].' vom '.$sDateConv.' bis zum '.$eDateConv.' ('.$row['diff'].' Tage) aus folgendem Grund: '.$treason.'.<form action="?edit=1" method="post"><input type="submit" value="Bearbeiten" name="edit"/></form><br><br>';
                        }
                    
    ?>
                </div>
            </article>
        </div>
        <?php
            
    if(isset($_GET['edit']))
            {
                echo 
    'Selektierte AW: AW'.$row['id'].'<br>';
            }
    Leider wird mir auch nur das "Selektierte AW: AW" ausgegeben, ohne die id.
    Hat einer von euch eine Idee, wie ich die ID vom ausgewählten Eintrag bekomme (in diesem Beispiel gibt es 3 Einträge in der Tabelle der Datenbank, also auch 3 Einträge auf der Seite).

    Vielen Lieben Dank und Liebe Grüße,

    Jonas

  • #2
    Zunächst mal kommt $row aus deiner Schleife. Sollten Einträge vorhanden sein, wird das unten immer der letzte sein. Was das mit der URL-Variable zu tun hat erschliesst sich mir nicht.

    Wenn du ein ID übergeben willst, mach das doch einfach per Link, dann kannst du später einfach per GET - wie bei $_GET['edit'] - darauf zugreifen und sparst dir die ganzen Formulare (bei denen du auch gesagt hast dass sie POST sind).

    Und zum Schluss lies dir mal SQL-Injection und Prepared Statements durch (einfach googlen), denn so kann ja jeder deine Datenbank löschen.
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Okay, danke, werde ich mir durchlesen.

      Wie genau meinst du das, per Link? Ich hätte die jetzt einfach in $_SESSION['AWid'] geschrieben und auf der Seite, wo ich diese bearbeiten kann, ausgelesen.
      Das "Selektierte AW: AW" ist ja nur zum Testen, ob das mit dem Button funktioniert.
      Aber genau da hängt es ja. Jetzt habe ich halt das Problem, dass, wie du gesagt hast, immer die ID des letzten Eintrages ausgelsen wird. Wie kann ich das abändern?

      Kommentar


      • #4
        Häng die ID einfach an nen Link an

        HTML-Code:
        href="foo.php?bar=123"
        Dann brauchst du auch nicht mit Sessions rumhampeln. Und wenn du GENAU DEN Eintrag irgendwo anders wieder brauchst, dann such dir genau den anhand der ID aus der URL wieder raus.
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Ah cool, super, danke
          Jetzt muss ich es nurnoch hinbekommen, dass er mir halt genau die ID ausliest, von dem Eintrag, hinter welchem ich den Button drücke. Hast du dazu vielleicht eine Idee? Das war ja eigentlich mein Hauptanliegen^^
          Nichts desto trotz, danke, für die Verbesserungsvorschläge^^ Bin noch relativ neu und unerfahren in PHP^^

          Kommentar


          • #6
            recherchier einfach mal nach "php tutorial sql get" das ist so ein 08/15 Thema
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              Danke noch für deine Hilfe chorn^-^ Hab es jetzt so gemacht:
              PHP-Code:
              echo '<tr><td>'.$row['id'].'</td><td>'.$sDateConv.'</td><td>'.$eDateConv.'</td><td>'.$treason.'</td><td><a href="rvac.php?edit&id='.$row['id'].'" style="color: blue;">Bearbeiten</a></td></tr>'
              Und dann wird eben bei öffnen der Seite über $_REQUEST abgefragt, wie denn die URL aussieht. Und dementsprechend kann ich den Eintrag dann bearbeiten oder löschen^^

              Kommentar


              • #8
                $_REQUEST solltest du nicht verwenden. Nimm $_GET oder $_POST. GET dient um Daten abzufragen. POST um Daten zu schreiben/löschen.

                Kommentar


                • #9
                  hab auf $_GET['']; umgestellt. Danke

                  Kommentar

                  Lädt...
                  X