Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus MySQL korrekt anzeigen

Einklappen

Neue Werbung 2019

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

  • Daten aus MySQL korrekt anzeigen

    Hi!
    Wahrscheinlich ist dieses Thema kein Thema für Euch Profis Doch ich komme auch nach guter Suche nicht ganz weiter.

    Ich habe eine MySQL-DB mit drei Tabellen. Eine Tabelle übergeordnet mit Obergruppen. Die kann ich auch sauber in html anzeigen lassen.

    Ich möchte nun auf eine Obergruppe klicken können und mir die dazugehörigen Daten aus den anderen Tabellen mir anzeigen lassen.

    Ich kann ja den Link einbauen, doch wie schaffe ich es, dass er mir genau die Daten liefert zur vorherigen Auswahl.

    Wie gehe ich da grundsätzlich vor? Könnt Ihr mir einen ersten Hinweis gehen, bevor ich mich verenne.

    Danke euch!

    Sams


  • #2
    Du solltest Dir ein ausführliches (My-)SQL Tutorial suchen.
    Bei einem SELECT kannst Du mittels WHERE die Datensaätze eingrenzen.
    Code:
    SELECT x,y,z FROM tbl WHERE x>y
    Code:
    SELECT x,y,z FROM tbl WHERE id=6
    Code:
    SELECT x,y,z FROM tbl WHERE group_id=6
    usw usw

    Kommentar


    • #3
      Und dem Link musst du halt den entsprechenden Parameter mitgeben. Aber so ohne Angaben von Code und Datenstruktur wird das schwierig.
      Gruss
      L

      Kommentar


      • #4
        Danke schon mal für die fixe Antwort. Mir wird es klarer...

        Habt Ihr ein gutes Tutorial an der Hand?

        Hier mal meine Beispiel-Angaben:
        Tabelle Auswahl:
        Gruppen-Nr Bezeichnung
        11 Edel5-Messerklein
        21 Edel5-Messergross
        13 Edel3-Gabel
        14 Matt2-Messer
        25 Matt3-Gabel

        Tabelle Edel
        Bestellnummer Gruppen-Nr Bezeichnung Laenge
        12345 11 Edel5-Messerklein 18
        45678 21 Edel3-Gabel 12
        23456 13 Edel5-Messergross 11

        Tabelle Matt
        Bestellnummer Gruppen-Nr Bezeichnung Laenge
        12345 14 Matt2-Messer 18
        45678 25 Matt3-Gabel 12

        Es soll nun z.B. in der Navi Edel5 ausgewählt werden und er zeigt mir nun alle (Messerklein, Messergross).

        Wenn ich nun auf Messerklein klicke, soll er mir auf einer neuen Seite die Details also Bestellnummer und Länge anzeigen.

        Hier mein Code in der index.php:
        mysql_select_db(...);
        $query_auswahl = "SELECT * FROM auswahl";
        $auswahl = mysql_query($query_auswahl, $db_anbindung) or die(mysql_error());
        $row_auswahl = mysql_fetch_assoc($auswahl);
        $totalRows_auswahl = mysql_num_rows($auswahl);

        anzeige html mit:
        PHP-Code:
        <body>
        <?php do { ?>

        <div>
            <table >
                <tr >
                    <td ><?php echo $row_auswahl['Bezeichnung']; ?><br /></td>
                </tr>
                <tr>
                       <td><a href="http://localhost/test/daten.php"></a></td>
                </tr>
            </table>
        </div>
        <?php } while ($row_auswahl mysql_fetch_assoc($auswahl)); ?>
        </body>

        Meine daten.php:
        mysql_select_db(...);
        $query_edel = "SELECT * FROM edel";
        $edel = mysql_query($query_edel, $db) or die(mysql_error());
        $row_edel = mysql_fetch_assoc($edel);
        $totalRows_aedel = mysql_num_rows($edel);

        anzeige html:
        <div>
            <table>
                <tr>
                    <td width="180">Bestellnummer</td><td width="50">Laenge</td>
                </tr>
                <?php do { ?>
                <tr height="20">
                    <td width="180"><?php echo $row_edel['Bestellnummer']; ?></td>
                    <td width="50"><?php echo $row_edel['Laenge']; ?></td>
            </table>
        </div>
        Wird es klar?

        Danke!!!

        Kommentar


        • #5
          mal nebenbei. bitte beutze den php-tag um es leserlicher u gestalten
          Under Construktion

          Kommentar


          • #6
            yep, gelernt...wird nie wieder vorkommen!!!

            Kommentar


            • #7
              <a href="http://localhost/test/daten.php"></a>
              Da muss erstens was zum Anklicken rein und zweitens musst Du an den Link die Gruppennummer anhängen. In etwa so
              PHP-Code:
              <a href="http://localhost/test/daten.php?<?php echo $row_auswahl['Gruppen_Nr']; ?>"><?php echo $row_auswahl['Bezeichnung']; ?></a>
              Und dann schau Dir mal an, was
              PHP-Code:
              var_dump($_GET); 
              in daten.php ausgibt.

              Kommentar


              • #8
                Ein paar Anmerkungen:Der Code sähe dann, fragmentweise, etwa so aus:
                indes.php:
                PHP-Code:
                $query_auswahl "
                    SELECT
                        gruppen_nr,
                        bezeichnung
                    FROM 
                        auswahl"
                ;                  // Select ausschreiben (und formatieren)
                $auswahl mysql_query($query_auswahl) or die(mysql_error());
                ...
                while (
                $row_auswahl mysql_fetch_assoc($auswahl)){          // while-Schleife
                    
                echo "
                        <table >
                        <tr>
                        <td><a href='http://localhost/test/daten.php?auswahl=" 
                .
                            
                $row_auswahl['gruppen_nr'] . "'>" 
                            
                $row_auswahl['bezeichnung'] . "</a></td>
                        </tr>
                        </table>\n"
                ;

                daten.php:
                PHP-Code:
                $gruppe int_val($_GET['auswahl']);         // Gültigkeit prüfen
                $query_edel "
                    SELECT
                        bestellnummer,
                        bezeichnung
                    FROM 
                        edel
                    WHERE
                        gruppen_nr = 
                $gruppe";
                $edel mysql_query($query_edel) or die(mysql_error());
                // Rest analog
                ... 
                Gruss
                L

                Kommentar


                • #9
                  Hat geklappt

                  Danke für die ersten Schritte. Hat soweit geklappt.

                  Gruß an Alle.

                  Kommentar


                  • #10
                    Hallo,
                    ich habe mir dieses Beispiel angesehen und bin irgendwie bei einem ähnlichen Projekt am verzweifeln, vielleicht kann mir hier wer helfen.

                    Ich habe eine Datenbank, in der Tauchplätze beschrieben sind.

                    Mit der Datei "uebersicht.php" Rufe ich das Inhaltsverzeichnis auf, und gebe dann über das anklicken des Tauchplatzes die ID weiter. Die Datei Uebersicht.php sieht wie folgt aus und funktioniert auch:

                    PHP-Code:
                    <?php
                    include "/opt/lampp/htdocs/forum/cms/config.php";


                    $tpaustria "
                        SELECT
                        id,
                        subject
                        FROM 
                            smf_tp_articles WHERE category = '29' ORDER BY subject"
                    ;

                    #$tpaustria = "SELECT * FROM smf_tp_articles WHERE category = '29' ORDER BY subject";
                    #$tpaustria = mysql_query($tpaustria);




                    $tpaustria mysql_query($tpaustria) or die(mysql_error());
                    while(
                    $row mysql_fetch_object($tpaustria))
                        {
                     echo 
                    "
                            <table >
                            <tr>
                        <a href='http://localhost/forum/cms/tauchplatz.php?tpaustria=" 
                    .$row->id "'>" .$row->subject "</a>";
                        }
                    ?>
                    Das ganze geht dann in die Datei tauchplatz.php, die dann die Beschreibung des Tauchplatzes ausgeben sollte, jedoch weis sich nicht, wie ich zur Ausgabe komme.

                    Zur überprüfung habe ich noch

                    PHP-Code:
                    var_dump($_GET); 
                    eingefügt, was mir folgende Ausgabe liefert:

                    array(1) { ["tpaustria"]=> string(2) "66" }

                    Meine tauchplatz.php sieht wie folgt aus, nun bin ich selbst aber mit meinem Latein am Ende, wie ich die Daten nun ausgeben kann, die ich ausgewählt habe:

                    PHP-Code:
                    <?php
                    include "/opt/lampp/htdocs/forum/cms/config.php";
                    error_reporting(E_ALL);
                    echo 
                    "Tauchpl&auml;tze in &Ouml;sterreich";
                    echo 
                    "<br /><br />";
                    var_dump($_GET);
                    echo 
                    "<br /><br />";


                    $tauchplatz = ($_GET['tpaustria']);         // Gültigkeit prüfen

                    $query_tauchplatz "
                        SELECT
                            subject,
                        intro,
                        body
                        FROM 
                            smf_tp_articles
                        WHERE
                            id = 
                    $tauchplatz";
                    $tauchplatz mysql_query($query_tauchplatz) or die(mysql_error());

                    ?>
                    Was muss ich hier noch anfügen, damit mir subject, intro und body angezeigt werden. Wahrscheinlich ist es sowas von einfach, sodass ihr mich auslachen werdet, ich bin aber leider blutiger PHP-Anfänger, möchte aber noch sehr viel dazulernen.

                    Vielen Dank schon im voraus für Eure Hilfe.

                    Kommentar


                    • #11
                      gucks dir doch einfach bei nem anderen Thread an, das ist schließlich etwas das jeder braucht, aber bitte:

                      PHP-Code:
                      $query_tauchplatz "
                          SELECT
                              subject,
                          intro,
                          body
                          FROM 
                              smf_tp_articles
                          WHERE
                              id = 
                      $tauchplatz";
                      $tauchplatz mysql_query($query_tauchplatz) or die(mysql_error());
                      while(
                      $aktuell mysql_fetch_assoc($tauchplatz))
                      {
                        echo 
                      $aktuell["subject"];
                        echo 
                      $aktuell["intro"];

                      Wobei man hier die while-schleife auch weglassen könnte, weil du ja eh nur 1 Datensatz haben willst, aber schaden tuts auch nicht...

                      Kommentar


                      • #12
                        Vielen Dank!
                        Wieder etwas dazugelernt. Habe zwar auch solche Echo-Ausgaben probiert, aber eben nicht mit einer weiteren Varialbe - also so wie Du das mit "aktuell" gemacht hast.

                        Hm, ich vergass noch zu fragen - dachte ja auch nicht daran weil ich noch keine ausgabe hatte - wie ich das ganze dann noch codieren muss, damit das ganze in schönem html rauskommt. Die Eingaben sind mit einem Texteditor passiert, bzw. hat da jemand vielleicht ein nettes Tutorial für mich, wo ich mich in solche Dinge tiefer einlesen kann?

                        Vielen Dank nochmal für Eure Hilfe.

                        Kommentar


                        • #13
                          Hmm du solltest genauer den IST- und SOLL-Zustand definieren, also was steht genau in der DB und wie soll es später aussehen? Vielleicht auch nen eigenen Thread aufmachen, das kommt drauf an wie speziell deine Frage ist.

                          Kommentar


                          • #14
                            Hm, am besten ist es so erklärt, das in der DB im in der Spalte "intro" und "body" Daten stehen, die mit dem FCK-Editor eingegeben wurden, dh diese sind mit kompletten HTML-Tags gespeichert.

                            Wenn ich die Ausgabe von Deinem Beispiel nehme, werden mir zwar die Daten komplett ausgegeben, aber nicht formatiert, d.h. mir werden die HTML-Tags als Text ausgegeben.

                            Solche Fragen hat es hier sicherlich schon gegeben, nur ich weiss leider nicht wonach ich genau suchen soll, damit ich euch nicht zu sehr in Anspruch nehmen muss.

                            Ich hoffe, ich habe das halbwegs gut beschrieben, sollte ein eigenes Thema sinnvoll sein, so würde ich Dich ersuchen, das Thema zu trennen.

                            Dankeschön nochmals!

                            Kommentar


                            • #15
                              Servus Taucher!

                              Normale HTML-Tags werden ausgeführt solange Du kein htmlspecialchars(); oder htmlentries(); benutzt hast...
                              Eigentlich solltest Du dann unformatierten HTML-Quelltext bekommen der gleichzeigtig in deinem Browser ausgeführt wird...

                              Benutzt Du sonstige Funktionen?

                              Kommentar

                              Lädt...
                              X