SQL/PHP: Beliebigen Datensatz aus Liste in neuem Fenster öffnen mit allen Einträgen?

  • Hallo,


    ich weiß, momentan scheine ich das Board hier mit SQL Beiträgen zu zu müllen ;) Aber ich mache eben meine ersten Schritte und bin über jede Hilfe dankbar.


    Ich habe hier nun also eine Datenbank mit relativ vielen Feldern pro Datensatz. Auch habe ich eine HTML Seite, die mir per PHP eine Liste der Datensätze ausgibt, aufgrund des mangelnden Platzes aber nicht alle Felder anzeigen kann. Ist es nun möglich, dass ich durch einen Klick auf einen bestimmten Datensatz in dieser Liste ein neues Fenster öffnen kann, in dem dann alle Felder (oder zumindest alle gewünschten) zu diesem Datensatz mit ihren entsprechenden Einträgen aufgelistet sind??

  • Hast Du denn diese Übersichtsseite schon selebr gebaut? Wenn ja sollte das ja kein Problem sein. Du kannst bei "select" die Felder angeben, die Du aus der SQL-DB bekommen möchtest. Also beschränkst du in der Übersichtsseite die Felder und stellst sie als Link dar. Wenn man auf den Link klickt übergibst du irgend einen Wert (vielleicht Primary Key?) an ein anderes Script, dass den Inhalt dieses Links darstellen soll und dieses Script sucht sich halt alle Felder der Tablle raus und stellt sie dar...


    Oder verstehe ich das falsch?

  • ich habe auch eine größere php/sql anwendung geschrieben, und es auch so wie topfblume gemacht.


    ist deine liste zu breit, oder sind zu viele einträge drin?
    wenn zweiteres, ich habs so gemacht:
    meine liste ist beschränkt im sql befehl mit " ... LIMIT $vor, 30" und es gibt den knopf vor und zurück, der immer die variable anpasst. default ist $vor=0; und das ende wird mit mxsql_num_rows abgefangen, etwas basteln war nötig.


    zu deiner frage mit details zur liste:
    deine tabelle müsste doch eine laufende numerierung haben, oder?
    dann kannst du nämlich in der html darstellung z.b. den ersten eintrag mit einem link versehen wie z.b.


    <a href="bearbeiten.php?vor=$vor&datensatz_nr=$db_index" target="_blank">$feldinhalt</a>


    $db_index wäre die aus der sql datenbank ausgelesene indexvariable, bearbeiten.php wäre dann deine bearbeitungsseite, die sich dank der target angabe wie gewünscht in einem neuen fenster öffnet. mit etwas javascript sind die möglicheiten noch vielfältiger...

    c ya

  • Danke erstmal für Eure Tipps. Versuche das gerade noch alles zu verstehen ;) Ich habe momentan noch Probleme damit, eine Variable an eine andere php-datei zu übergeben. Dass ich einen Link aus einem Eintrag mache, das ist ja kein Problem. Aber wie sieht dann die php-seite aus, die geöffnet wird, und dann alle Variablen anzeigt?

  • variablenübergabe an andere php dateien :


    GET mehtode


    <a href="blabla.php?erste_v=$erste_v&zweite_v=$zweite_v">linktext</a>


    alles was fett ist, sind trennzeichen zwischen den variablen, beachte, das erste ist imemr ein fragezeichen, der rest und's . was kursiv ist ersetzt der PHP parser automaisch mit dem inhalt der variable.
    du übergibst also bei GET name=inhalt. kannst auch mit etwas javascript knöpfe draus basteln (<input type="button" onklick= usw usw>), oder weiterleitungen mit reload im header machen.


    beachte aber, die länge ist begrenzt, weiß jetzt nicht genau wieviel, und GET ist leicht manipulierbar, da die variabeln in der adresszeile des browsers zu sehen sind.


    POST methode


    wird quasi in formularen (<form blabla method="POST">) verwendet, mit den verschiedenen input types; da schau bitte bei http://de.selfhtml.org rein, gibts massig beispiele.
    POST ist "etwas" sicherer, und die variablenlänge ist nicht so beschränkt wie bei GET.


    bei übergabe mittels GET hast du noch das problem, das manche router mit dem DNS cache anfangen zu "husten" wenn die linkzeile zu lang ist ...

    c ya

  • Habs jetzt mit POST gemacht. Und die Variablen vorher einfach einem input type=hidden hinterlegt. Ist ja einfacher als ich dachte ;)

  • sehr gut! :)


    wenn du mal die POST oder GET in einer form wiederholen willst, dann nimm diese funktion, hab sie mal im php manual gefunden:


    c ya

  • Ja, danke für die Hinweise ;)


    Ich dachte in die neue PHP Datei müsste dann wunders viel code. Dabei ist das dann ja nur noch ein einfaches echo $variable. Sehr praktisch ;)

  • Der Code oben ist übrigens anfällig für XSS-Attacken, da der User-Input (POST/GET) nicht validiert wird, und "roh" im HTML-Code ausgegeben wird. Dadurch läßt sich z.B. Javascript ausführen, und Cookies von der Domain klauen oder schlimmeres (bspw. in Zusammenhang mit Browser-Bugs Schadsoftware installieren).

    "That's not a hair question. I'm sorry." - 01/31/07 - Never forget!


  • Hallo,


    ich habe noch Erklärungsbedarf wegen dem, was du angesprochen hast. Und zwar habe ich natürlich garnicht daran gedacht, dass die Liste irgendwann einfach mal zu lang für eine ordentliche Darstellung im Browser wird. Also wären Buttons in der Form "Seite vor / Seite zurück" bzw. auch das direkte Springen zu einer Seite sehr nützlich. Nur wie? Kann man das erklären (oder auf eine gute Erklärung verweisen), so dass ich als Anfänger das verstehen kann?


    Und nochwas: Wie kann ich später eine Volltextsuche integrieren?


    Sorry wenn ich eure Nerven zu sehr strapaziere. Aber sind eben meine ersten Gehversuche ;)


    Edit: Ich habe bislang einfach eine for Schleife:


    for ($i=0; $i<$num; $i++)


    Die gibt einfach solange Zeilen aus bis sie bei der letzten ist (also dann $num -> anzahl aller Einträge).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!