Justus: SQL Ausgabe mit Funktionsfeldern!!!

Hallo

ich habe ein kleineres Problem, ich schreibe zurzeit in PHP ein Programm, dass auf eine Datenbank zugreifen soll, so weit so gut.

Mein Problem ist, die Ausgabe der Datensätze soll mit funktionsfeldern versehen werden, die auf eine andere Seite verweisen. Jedoch ist zu beachten, dass wenn ich auf diesen Button klicke, der Primaerschluessel (in dem Fall index) mit übergeben werden soll.

hier die Abfrage

$abfrage =

'SELECT hardware.Name , kostenstelle , bezeichnung , abteilung , inventurnummer , hardware_erweiterung.index, hardware_erweiterung.id

FROM hardware_erweiterung INNER JOIN hardware ON hardware_erweiterung.ID = hardware.id LIMIT 0, 30 ';

$ergebnis=mysql_query($abfrage,$db);

und hier mal die Ausgabe, sprich in HTML

while ($datenarray = mysql_fetch_array($ergebnis, MYSQL_ASSOC))
                         {

printf ("
<tr>
<td width="250" align="center" valign="middle"> %s </td>
<td width="90" align="center" valign="middle"> %s </td>
<td width="180" align="center" valign="middle"> %s </td>
<td width="90" align="center" valign="middle"> %s</td>
<td width="130" align="center" valign="middle"> %s </td>
<td width="50" align="center" valign="middle">
<form><input type="text" readonly name="index" value="  %s  " size="3"> </form>
</td>
<td width="40" align="center" valign="middle"> %s </td>
</tr>
",

Oben sieht man die Formation, Tabelle halt...

$datenarray["Name"], $datenarray["kostenstelle"], $datenarray["bezeichnung"],
$datenarray["abteilung"], $datenarray["inventurnummer"],
$datenarray["index"], $datenarray["id"]);

}

also ich brauche das Attribut index für die nächste seite,

da diese Ausgabe in einer Tabelle ausgegeben wird, möchte ich zwei schaltfelchen in jeder Zeile einbauen. Einmal ändern und loeschen, um zu loeschen bzw. aendern brauche ich "index". Aber wie kann ich es umsetzen, das wenn ich auf den Button in der Zeile klicke, ich genau den WErt aus der Zeile ins andere Php script bekomme.

Hat jemand ne idee. wäre nett wenn mir jemand helfen könnte

  1. Mahlzeit Justus,

    hier die Abfrage

    $abfrage =

    'SELECT hardware.Name , kostenstelle , bezeichnung , abteilung , inventurnummer , hardware_erweiterung.index, hardware_erweiterung.id

    FROM hardware_erweiterung INNER JOIN hardware ON hardware_erweiterung.ID = hardware.id LIMIT 0, 30 ';

    $ergebnis=mysql_query($abfrage,$db);

    Das ist keine (SQL-)Abfrage - das ist PHP-Code, der eine solche Abfrage ausführt.

    und hier mal die Ausgabe, sprich in HTML

    Das ist kein HTML - das ist PHP-Code, der HTML erzeugt.

    Aber nun zum eigentlichen Problem:

    also ich brauche das Attribut index für die nächste seite,

    Dann frage die entsprechende Spalte in Deiner SQL-Abfrage mit ab.

    da diese Ausgabe in einer Tabelle ausgegeben wird, möchte ich zwei schaltfelchen in jeder Zeile einbauen. Einmal ändern und loeschen, um zu loeschen bzw. aendern brauche ich "index".

    Dann hole Dir den entsprechenden Index aus der Datenbank und füge z.B. noch zwei weitere Spalten vor oder nach Deinen Datenspalten ein, in denen Du jeweils einen Link zum Ändern- bzw. Löschen-Skript unterbringst.

    Aber wie kann ich es umsetzen, das wenn ich auf den Button in der Zeile klicke, ich genau den WErt aus der Zeile ins andere Php script bekomme.

    Z.B. indem Du den entsprechenden Wert als GET-Parameter an die aufzurufende URL anhängst.

    Beispiel - erzeuge diesen HTML-Code mittels PHP:

    <tr>  
      <th><a href="edit.php?ID=4711">Ändern</a></th>  
      <th><a href="delete.php?ID=4711">Löschen</a></th>  
      <td>Foo</td>  
      <td>Bar</td>  
    </tr>
    

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Mahlzeit Justus,

      hier die Abfrage

      $abfrage =

      'SELECT hardware.Name , kostenstelle , bezeichnung , abteilung , inventurnummer , hardware_erweiterung.index, hardware_erweiterung.id

      FROM hardware_erweiterung INNER JOIN hardware ON hardware_erweiterung.ID = hardware.id LIMIT 0, 30 ';

      $ergebnis=mysql_query($abfrage,$db);

      Das ist keine (SQL-)Abfrage - das ist PHP-Code, der eine solche Abfrage ausführt.

      und hier mal die Ausgabe, sprich in HTML

      Das ist kein HTML - das ist PHP-Code, der HTML erzeugt.

      Aber nun zum eigentlichen Problem:

      also ich brauche das Attribut index für die nächste seite,

      Dann frage die entsprechende Spalte in Deiner SQL-Abfrage mit ab.

      da diese Ausgabe in einer Tabelle ausgegeben wird, möchte ich zwei schaltfelchen in jeder Zeile einbauen. Einmal ändern und loeschen, um zu loeschen bzw. aendern brauche ich "index".

      Dann hole Dir den entsprechenden Index aus der Datenbank und füge z.B. noch zwei weitere Spalten vor oder nach Deinen Datenspalten ein, in denen Du jeweils einen Link zum Ändern- bzw. Löschen-Skript unterbringst.

      Aber wie kann ich es umsetzen, das wenn ich auf den Button in der Zeile klicke, ich genau den WErt aus der Zeile ins andere Php script bekomme.

      Z.B. indem Du den entsprechenden Wert als GET-Parameter an die aufzurufende URL anhängst.

      Beispiel - erzeuge diesen HTML-Code mittels PHP:

      <tr>

      <th><a href="edit.php?ID=4711">Ändern</a></th>
        <th><a href="delete.php?ID=4711">Löschen</a></th>
        <td>Foo</td>
        <td>Bar</td>
      </tr>

      
      >   
      >   
      > MfG,  
      > EKKi  
        
        
        
      Danke Ekki  
        
      aber des ist nicht ganz so verständlich, also für mich. Das einzigste wo grad nicht funktioniert und was ich eigentlich auch nicht wirklich verstehe, wie ich den Primaerschluessel versenden soll.  
        
      Meine überlegung war,  
        
      das ich ein Textfeld in die Tabelle mache mit dem value Wert index, das ich dann diese per einem Button an das nächste Script verschicke, würde das funtionieren. Aber ich würde halt gerne, das dass löschen und aendern per Bilddatei also nicht per button ausgelöst wird, dann wäre es besser mit <a> </a> aber wie ich des dann verschicken soll bleibt mir ein rätsel.  
        
        
      Wäre nett wenn du mir helfen könntst  
      
      > 
      
      1. Moin

        Zuersteinmal zitiere nur relevante Teile und unterlasse TOFU

        nun zuzm Problem. Dies war dein geposteter Code

          
         printf ("  
        <tr>  
        <td width=\"250\" align=\"center\" valign=\"middle\"> %s </td>  
        <td width=\"90\" align=\"center\" valign=\"middle\"> %s </td>  
        <td width=\"180\" align=\"center\" valign=\"middle\"> %s </td>  
        <td width=\"90\" align=\"center\" valign=\"middle\"> %s</td>  
        <td width=\"130\" align=\"center\" valign=\"middle\"> %s </td>  
        <td width=\"50\" align=\"center\" valign=\"middle\">  
        <form><input type=\"text\" readonly name=\"index\" value=\"  %s  \" size=\"3\"> </form>  
        </td>  
        <td width=\"40\" align=\"center\" valign=\"middle\"> %s </td>  
        </tr>  
        ",  
          
        Oben sieht man die Formation, Tabelle halt...  
          
        $datenarray["Name"], $datenarray["kostenstelle"], $datenarray["bezeichnung"],  
        $datenarray["abteilung"], $datenarray["inventurnummer"],  
        $datenarray["index"], $datenarray["id"]);  
          
          
                                 }  
        
        

        So nun nimm den Tipp von EKKI. Nimm das Form raus und setze statt dessen einen Link auf die ausführende Datei und setze den Index als variable nach einenm "?" dran. Dann kannst du im Empfangsscript $_GET[] auswerten. Dort enthalten ist der Index der übergeben wurde.

        Bsp: <a href="meinedatei.php?index=<?php echo $datenarray["index"]?>">irgendwas</a>

        Im Empfangsscript steht nun $_GET['index'] mit dem Wert des übergebenen Index zur Verfügung.

        Gruß Bobby

        --
        -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
        ### Henry L. Mencken ###
        -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
        ## Viktor Frankl ###
        ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
        1. Moin

          Zuersteinmal zitiere nur relevante Teile und unterlasse TOFU

          nun zuzm Problem. Dies war dein geposteter Code

          printf ("
          <tr>
          <td width="250" align="center" valign="middle"> %s </td>
          <td width="90" align="center" valign="middle"> %s </td>
          <td width="180" align="center" valign="middle"> %s </td>
          <td width="90" align="center" valign="middle"> %s</td>
          <td width="130" align="center" valign="middle"> %s </td>
          <td width="50" align="center" valign="middle">
          <form><input type="text" readonly name="index" value="  %s  " size="3"> </form>
          </td>
          <td width="40" align="center" valign="middle"> %s </td>
          </tr>
          ",

          Oben sieht man die Formation, Tabelle halt...

          $datenarray["Name"], $datenarray["kostenstelle"], $datenarray["bezeichnung"],
          $datenarray["abteilung"], $datenarray["inventurnummer"],
          $datenarray["index"], $datenarray["id"]);

          }

          
          >   
          > So nun nimm den Tipp von EKKI. Nimm das Form raus und setze statt dessen einen Link auf die ausführende Datei und setze den Index als variable nach einenm "?" dran. Dann kannst du im Empfangsscript $\_GET[] auswerten. Dort enthalten ist der Index der übergeben wurde.  
          >   
          > Bsp: <a href="meinedatei.php?index=<?php echo $datenarray["index"]?>">irgendwas</a>  
          >   
          > Im Empfangsscript steht nun $\_GET['index'] mit dem Wert des übergebenen Index zur Verfügung.  
          >   
          > Gruß Bobby  
          >   
            
            
            
            
          Ja so hört sich des alles plausibel an, aber wie setze ich am besten index in einer variablen ein
          
          1. Mahlzeit Justus,

            was genau hst Du an

            Zuersteinmal zitiere nur relevante Teile und unterlasse TOFU

            nicht verstanden?

            Ja so hört sich des alles plausibel an, aber wie setze ich am besten index in einer variablen ein

            Was genau meinst Du? Wie Du den Index in Dein Array $datenarray bekommst? Na - genau so, wie Du all' die anderen Daten dort hinein bekommst ...

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Mahlzeit Justus,

              was genau hst Du an

              Zuersteinmal zitiere nur relevante Teile und unterlasse TOFU

              nicht verstanden?

              Ja so hört sich des alles plausibel an, aber wie setze ich am besten index in einer variablen ein

              Was genau meinst Du? Wie Du den Index in Dein Array $datenarray bekommst? Na - genau so, wie Du all' die anderen Daten dort hinein bekommst ...

              MfG,
              EKKi

              nein ich meine, dass ich index(den primärschlüssel in der Tabelle ausgeben will, mit %s wie soll ich den dann noch in den Link reintun.

              1. Mahlzeit Justus,

                da Du Dich hartnäckig weigerst, Dich an die hiesigen Gepflogenheiten zu halten (dazu gehört nicht nur die Vermeidung von TOFU, sondern auch die Respektierung anderer Benutzer), wird dies der letzte Beitrag von mir in diesem Thread, sollte sich nichts ändern.

                Ja so hört sich des alles plausibel an, aber wie setze ich am besten index in einer variablen ein

                Was genau meinst Du? Wie Du den Index in Dein Array $datenarray bekommst? Na - genau so, wie Du all' die anderen Daten dort hinein bekommst ...

                nein ich meine, dass ich index(den primärschlüssel in der Tabelle ausgeben will, mit %s wie soll ich den dann noch in den Link reintun.

                Du nutzt die Funktion printf() ... ich schätze mal, Du musst die Parameter, die Du der Funktion übergibst, einfach nur entsprechend ändern bzw. ergänzen.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Hallo EKKi,

                  Mahlzeit Justus,

                  da Du Dich hartnäckig weigerst, Dich an die hiesigen Gepflogenheiten zu halten (dazu gehört nicht nur die Vermeidung von TOFU, sondern auch die Respektierung anderer Benutzer), wird dies der letzte Beitrag von mir in diesem Thread, sollte sich nichts ändern.

                  ich bezweifle, das Justus, Rudofl, Angela [1], Horst, ... das tun wird.
                  Es ist immer noch das alte Problem. Wie war's, 11-fach-Posting, rekordverdächtig :-(

                  Freundliche Grüße

                  Vinzenz

                  [1] wird nicht archiviert

          2. Moin

            NOCHMAL ZUM MITMEISELN: Zitiere bitte nur relevante Teile und unterlasse TOFU

            Was meinst du mit "index".

            Gruß Bobby

            --
            -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
            ### Henry L. Mencken ###
            -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
            ## Viktor Frankl ###
            ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
            1. Mahlzeit Bobby,

              NOCHMAL ZUM MITMEISELN:

              "Tschilp, tschilp, türülüüü ..."

              MfG,
              EKKi

              PS: SCNR

              --
              sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
              1. Moin

                NOCHMAL ZUM MITMEISELN:

                "Tschilp, tschilp, türülüüü ..."

                Ach ja, Wer rechtschreibfehler fiindet darf diese behalten... Ich vergas zu erwähnen.

                Gruß Bobby

                --
                -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
                ### Henry L. Mencken ###
                -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
                ## Viktor Frankl ###
                ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
                1. Hallo,

                  NOCHMAL ZUM MITMEISELN:
                  Ach ja, Wer rechtschreibfehler fiindet darf diese behalten... Ich vergas zu erwähnen.

                  prima, da habe ich ja schon fünf Stück auf einmal! Vielleicht kann ich sie demnächst auf irgendeinem Flohmarkt verkaufen. :-)

                  Ciao,
                   Martin

                  --
                  "Wie geht eigentlich dein neues Auto?"
                  "Es geht nicht, es fährt!"
                  "Äh, ja. Und wie fährt es?"
                  "Och, es geht."
                  1. Moin

                    NOCHMAL ZUM MITMEISELN:
                    Ach ja, Wer rechtschreibfehler fiindet darf diese behalten... Ich vergas zu erwähnen.

                    prima, da habe ich ja schon fünf Stück auf einmal! Vielleicht kann ich sie demnächst auf irgendeinem Flohmarkt verkaufen. :-)

                    5 ? ich zähl nur 4

                    Gruß Bobby

                    --
                    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
                    ### Henry L. Mencken ###
                    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
                    ## Viktor Frankl ###
                    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
                    1. Hallo,

                      NOCHMAL ZUM MITMEISELN:
                      Ach ja, Wer rechtschreibfehler fiindet darf diese behalten... Ich vergas zu erwähnen.
                      prima, da habe ich ja schon fünf Stück auf einmal! Vielleicht kann ich sie demnächst auf irgendeinem Flohmarkt verkaufen. :-)
                      5 ? ich zähl nur 4

                      dann hast du wahrscheinlich den aus dem ersten mitzitierten Posting (den in Großbuchstaben) vergessen.

                      Ciao,
                       Martin

                      --
                      Zwischen Leber und Milz
                      passt immer noch'n Pils.
          3. Hi,

            Zuersteinmal zitiere nur relevante Teile und unterlasse TOFU

            [wieder seitenlanges Fullquote]

            Ja so hört sich des alles plausibel an,

            Sag mal, verstehst du unsere Sprache?

            aber wie setze ich am besten index in einer variablen ein

            Am besten lässt du es ganz bleiben, so lange du nicht wenigstens ein bisschen grundlegendes Verständnis von Programmierung in PHP hast, und auch endlich einsiehst, dass es die Hilfsbereitschaft anderer nicht erhöht, wenn du dich wie ein Depp aufführst, der a) zigfach den gleichen Murks unter wechselnden Nicknames postet, und b) alle Hinweise darauf, dass er seinen Posting-Stil bitte den üblichen Geflogenheiten anpassen möchte, gekonnt ignoriert.

            MfG ChrisB

            --
            Light travels faster than sound - that's why most people appear bright until you hear them speak.
    2. Hi!

      <th><a href="delete.php?ID=4711">Löschen</a></th>

      Das ist in der Form unter Umständen ungünstig. Der nächste Spider, der den Links folgt, löscht den Datenbestand, wenn nicht noch eine Sicherheitsabfrage mit POST nachgeschaltet ist.

      Lo!

      1. Hello,

        <th><a href="delete.php?ID=4711">Löschen</a></th>

        Das ist in der Form unter Umständen ungünstig. Der nächste Spider, der den Links folgt, löscht den Datenbestand, wenn nicht noch eine Sicherheitsabfrage mit POST nachgeschaltet ist.

        Das wird er zwar vermutlich nicht können, weil keine Session besteht, aus der die Berechtigung abgeleitet werden kann (die sollte aber Voraussetzung sein!), aber solange sich alle namhaften Suchmaschinen an das ungeschriebene Gesetz halten, dass Postrequests nicht indiziert werden, sollte man hierfür besser Post nehmen, also einen Button in einem Formular, dessen Methode POST ist.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. Hello,

    es ist am einfachsten, wenn Du Dir ein anderes Denkmodell zuerechtlegst.

    Alle Daten stehen immer in der Session. Der Browser enthält nur das momentan für die Anzeige aufbereitete Abbild dieser Daten und zusätzlich ein paar (ebenfalls in der Session zu vermerkende) Bedienelemente.

    Wenn nun ein Request kommt, der den Parameter eines solchen Bedienelementes enthält, weißt Du anhand der Session immer, was zu geschehen hat...

    So ist es dann auch möglich, den Vorgängen Stati zuzuordnen, um z.B. zu verhindern, dass ein "Fenster" aus einer ganzen Kette von Fenstern plötzlich noch Requests erzeugt, obwohl doch die Kette schon abgearbeitet war oder schon ebi einem ganz anderen "Fenster" angekommen ist.

    Was letztlich hintger den Buttons als Parameter/Parametername steht, ist so vollkommen irrelevant, wenn es nur eineindeutig ist. Anhand der Session kannst Du dies ja kontrollieren und zuordnen.

    Trivial gesagt heißt das: was nicht rausgegangen ist, darf/kann auch nicht wieder reinkommen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de