[PHP5] ID übergeben

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

  • [PHP5] ID übergeben

    ich habe ein kleines problem mit meiner adress verwaltung..

    also mal zur idee.. ich hab eine suchfunktion nach name/ort/usw.. und begriff.
    dann die ausgabe in einer tabelle(nur Name,Ort,Tel)... ganz hinten steht das kleine wörtchen "details"... in der soll die "Zeilen ID" enthalten sein...
    wenn ich jetzt auf details klicke, sollte sich die ganze adresse mit name,plz,ort,tel,fax usw... öffnen
    aber nun meine frage, wie bekomm ich in mein link "detail" die ID rein
    und kann sie dann noch per GET in eine andere seite übergeben...
    ich hoffe ich habt's gut erklärt..
    hier mein bisheriger code..


    Das Formular "form_search.php":
    Code:
    <form method="POST" action="result.php" target="suche">
        <select name="spalte_id" size="1">
          <option value="Name">Name</option>
          <option value="str">Straße</option>
          <option value="plz">PLZ</option>
          <option value="ort">Ort</option>
          <option value="land">Land</option>
          <option value="tel">Telefon</option>
          <option value="fax">Telefax</option>
    	  <option value="mobil">Mobiltelefon</option>
          <option value="email">Email</option>
          <option value="kommentar">Kommentar</option>
          <option value="kathegorie">Kathegorie</option>  
        </select>
    <input class= formular name=suche type=text maxlenght=255 size=20>
    <input class= formular type=submit name=Submit value='Senden'>
    <input class= formular type=reset name=Submit value=Reset></form>

    Die Suchausgabe "result.php":
    Code:
    <?php
    error_reporting(E_ALL);
    include("db_connect.php");
    
    $sql = "SELECT * FROM daten WHERE $_POST[spalte_id] LIKE '%$_POST[suche]%'";
    
    $result = mysql_query($sql);
    
    
    echo "<table>";
    while($row = mysql_fetch_assoc($result))
    {
    echo "<tr><td><b>Name: </b>$row[name]</td><td><b>Plz: </b>$row[plz]</td>
    <td><b>Telefon: </b>$row[tel]<td ><b><a href=details.php>$row[id].details</a></b>
    </td></tr></td>";
    }
    echo "</table>";
    
    ?>

    Details der Suche "details.php":
    Code:
    <? 
    error_reporting(E_ALL);
    include("db_connect.php");
    
    $sql = "SELECT * FROM daten WHERE $_GET[id]";
    $result = mysql_query($sql);
    
    while($row = mysql_fetch_assoc($result))
    {
      	echo "<br><b>Name:</b> $row[name] <br>
    	<b>Straße:</b> $row[str] $row[hnummer] <br>
    	<b>Ort:</b> $row[plz] $row[ort] <br>
    	<b>Land:</b> $row[land]<br>
    	<b>Telefon:</b> $row[tel]<br> 
    	<b>Telefax:</b> $row[fax] <br>
    	<b>Mobil:</b> $row[mobil] <br>
    	<b>Email:</b> $row[email] <br>
    	<b>Kommentar:</b> $row[kommentar] <br>
    	<b>Kathegorie:</b> $row[kathegorie] <br>
    	<b>Sonstiges:</b> $row[sonstiges]
    	<br><br>";
    }
    
    ?>

    danke schonmal an alle im vorraus

  • #2
    Also wie ich das sehe hast Du ja schon einen Link auf die details.php gesetzt, diesen musst Du nur leicht abändern, da Dein Skript die Übergabe der Variable id als $_GET erwartet

    PHP-Code:
    echo "<tr><td><b>Name: </b>$row[name]</td><td><b>Plz: </b>$row[plz]</td>
    <td><b>Telefon: </b>
    $row[tel]<td ><b><a href=details.php?id=$row[id]>$row[id].details</a></b>
    </td></tr></td>"


    Mit der Verlinkung details.php?id=$row[id] übergibst du die Variable id per GET an das aufzurufende Skript. Ich hoffe ich habe Dich jetzt richtig verstanden, musste 3x nachlesen

    Kommentar


    • #3
      alles klar danke für deine schnelle antwort, es funktioniert...
      es gibt nurnoch ein problem wenn ich auf details klicke gibt er mir ALLES aus was in der datenbank steht... ich will aber nur meine ID also nur eine Zeile...???? ich selectiere aber nur die id mit


      $sql = "SELECT * FROM daten WHERE $_GET[id]";

      Kommentar


      • #4
        Ähm du solltest $_GET noch mit einem Feld vergleichen. Und du baust die GET Var direkt in die Query ein, ohne Prüfung --> nur ne Frage der Zeit bis deine DB geschrottet ist (Stichwort SQL Injections)

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          ok ok klar,
          und wie soll ich das get dann nochmahl kontrolieren???

          sry ich starte erst meine anfänge
          Zuletzt geändert von cronex; 04.08.2006, 09:43.

          Kommentar


          • #6
            Lies doch einfach den ersten Google Treffer den ich dir verlinkt habe bei Wikipedia. Dort steht etwas darüber wie das mittels php verhindert werden kann.

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              auf blöd bau ich es ins post um.. mir wurst... außerdem kommt da noch ne login script drüber... also nur für vertrauenswürdige user.
              mein eigendliches problem ist aber das der ALLES ausgibt... wenn ich eine ID in meiner "result.php" anklicke.. obwohl er nur genau DIESE ID ausgeben sollte.. gibt es alles aus...
              das mit mysql_real_escape_string() kann ich im nachhinein noch einbauen... primär will ich einfach das es jetzt funktioniert...
              wär nett wenn mir einer helfen könnte.

              Kommentar


              • #8
                Sag mal, liest du Posts auch ?
                Ähm du solltest $_GET noch mit einem Feld vergleichen
                Wo machst du das ?
                Deine Query lautet
                Code:
                SELECT from tabelle WHERE 1
                fehlt da nicht was ?? Das obige WHERE trifft auf alle Datensaätze zu. Also verlgleich das mit einem Feld

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  okok,wär sehr nett von dir, wenn du ein beispiel bringen würdest.. daran kann ich mich bestimmt am besten orientieren...

                  Kommentar


                  • #10
                    Operatoren und wie dein Feld heisst weisst nur du !
                    Du hast ja auch in result.php einen Vergleich gemacht. Genau so geht's.

                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      danke ich habe meine lösung mit

                      "SELECT * FROM daten WHERE id like $_GET[id]";

                      bekommen

                      leichtsinnsfehler...

                      Kommentar


                      • #12
                        Diese Abfrage ist auch Schrott. Da könnten dir ggf auch mehrere Datensätze ausgegeben werden.
                        Wo unter dem von mir gegebenen Link steht bei der Operatoren was von LIKE für Vergleiche. Das bringt nur was wenn du nach einem Teil von etwas suchst. Du willst aber den genauen Datensatzbezeichner.
                        Also drum
                        Code:
                        "SELECT * FROM daten WHERE id='$_GET[id]'";
                        Grundlagen mein Lieber

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          hehehe
                          peinlich peinlich


                          aber jeder hatt mal klein angefangen

                          Kommentar

                          Lädt...
                          X