Datenbank auslesen

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

  • Datenbank auslesen

    Hallo,

    ich versuche schon seit einigen Tagen eine Lösung für mein Problem zu finden, und zwar ...

    Ich will eine Gallerie erstellen, und das ganze natürlich in einer MySQL Datenbank speichern.

    Auf der ersten Seite will ich eine Kategorieübersicht machen, was mir jedoch nicht gelingen will, da ich zu jeder kategorie ein Beispiel Bild zeigen will.

    Meine Datenbank sieht so aus:
    id|titel|rubrik|bild_thumb|bild_gross|beschreibung|.......

    Ich scheitere schon daran die Rubriken auszulesen, da sich in der Datenbank die selbe Rubrik bei mehreren Bildern existiert.

    Das ganze hab ich mir dann ungefähr so vorgestellt:
    ----------
    Rubrik1
    Bild aus Rubrik1
    ---------
    ----------
    Rubrik2
    Bild aus Rubrik2
    ---------
    ...

    Ich bin für jede Hilfe dankbar ...
    Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

  • #2
    Re: Datenbank auslesen

    Original geschrieben von theone
    Ich scheitere schon daran die Rubriken auszulesen, da sich in der Datenbank die selbe Rubrik bei mehreren Bildern existiert.
    ich glaube, dein datenbankdesign ist nicht so das wahre.

    mach es mit zwei tabellen.

    1. tabelle: felder rubrik_id, rubrik_name.
    2. tabelle: felder bild_id, bild_name, rubrik_id

    damit kannst du jedes bild aus tabelle 2 eindeutig einer rubrik aus der ersten tabelle zuordnen.

    die bilder selbst würde ich nicht in der db ablegen, dafür ist das filesystem einfach besser geeignet. in die db kommt deshalb nur der name des bildes (evtl. + pfad).
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Das hab ich auch versucht, aber ich bekomm das Verknüpfen der beiden Datenbanken nicht auf die reihe, und wenn ich auf der Admin-Seite die Kategorien aus der 2. db auslese liest er keine Daten aus der ersten mehr aus ...

      Warning: Supplied argument is not a valid MySQL result resource in C:\Programme\PHP Home Edition 2\www\SHOP\admin\admin_produkte.php on line 94

      ....
      Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

      Kommentar


      • #4
        dann hilft vielleicht das posten der query...

        wahsaga's variante ist eh die beste lösung. ich würde es auch nur so machen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Original geschrieben von theone
          und wenn ich auf der Admin-Seite die Kategorien aus der 2. db auslese liest er keine Daten aus der ersten mehr aus ...
          du bist aber nicht schon wieder einer von den experten, die zwei verschiedene mysql_querys der selben variablen zuweisen, oder...?
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Also, der Fehler ist mittlerweile in Zeile 58 ...

            PHP-Code:
            56| include("../includes/mysql.php");
            57$result=MYSQL_QUERY("SELECT * FROM galerie ORDER BY id DESC");
            58| WHILE ($row MYSQL_FETCH_ARRAY($resultMYSQL_ASSOC))
            59| {
            60|  $message nl2br("" $row["inhalt"] . "");
            ...
            71|   }
            72MYSQL_CLOSE(); 

            Der Query zuvor (um die Kategorien auszulesen) sieht so aus:
            PHP-Code:
            21| include("../includes/mysql.php");
            22| echo "<SELECT NAME=\"gruppe\" SIZE=\"1\">\n";
            23 |$result1=MYSQL_QUERY("SELECT * FROM galerie_kategorien ORDER BY id DESC");
            24| WHILE ($row1 MYSQL_FETCH_ARRAY($result1MYSQL_ASSOC))
            25|  {
            26$gruppe_var $row1["rubrik"];
            27$gruppe_id $row1["id"];
            28| echo "<OPTION VALUE=\"$gruppe_id\">$rubrik</OPTION>";
            29|  }
            30MYSQL_CLOSE(); 
            Dies ist die Administrations Seite, auf der man im oberen Teil neue Bilder hinzufügen (also auch Gruppe auswählen), und im unteren Teil bisherige Bilder sehen / löschen kann.
            Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

            Kommentar


            • #7
              @wahsaga

              Sagen wa mal so, ich traue mir alles zu ... bin anfänger ...
              Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

              Kommentar


              • #8
                zeile 56 kannst du dir sparen.

                und der fehler in zeile 58 kommt daher, dass du einen fehler in der query (zeile 57) hast. gibt es die tabelle 'galerie' überhaupt?

                und dann ist mysql_error() dein freund und helfer.

                modifizieren bitte diese zeile so ....
                PHP-Code:
                $result=MYSQL_QUERY("SELECT * FROM galerie ORDER BY id DESC") or die(mysql_error()); 
                ... und du sieht, wo der fehler ist.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Okay, klasse, nun gehts.

                  Aber den Eintrag "include("../includes/mysql.php");" konnt ich mir nicht schenken, da ich "MYSQL_CLOSE();" zuvor gemacht habe.

                  wie kann ich aber jetzt nur ein Bild aus jeder Kategorie (am besten zufälliges, aber dafür müßte ich ja zuerst ermitteln wieviele in der Kategorie sind) anzeigen lassen?
                  Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

                  Kommentar


                  • #10
                    such mal nach RAND() im forum. da gibt es zufällig jede menge zufälligkeiten.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      Jetzt funktioniert das soweit, auch mit 2 Datenbanken ...

                      Aber ich hab noch ein Denk-, oder ein Tippfehler ...

                      PHP-Code:
                      include("includes/mysql.php");
                      $result MYSQL_QUERY("SELECT * FROM galerie_kategorien ORDER BY rubrik DESC");
                      WHILE (
                      $row MYSQL_FETCH_ARRAY($resultMYSQL_ASSOC))
                      {
                      $idrub $row["id"];
                      // Galerietitel ausspucken
                      $rubr_titel $row["rubrik"];
                      // galerie_inhalt öffnen, Einträge zählen, $count --> Anzahl der Einträge
                      $anz MYSQL_QUERY("SELECT COUNT(*) FROM galerie_inhalt WHERE rubrik = $idrub");
                      $count mysql_result($anz,0);
                      // Falls keine Einträge vorhanden sind wird diese Rubrik ausgelassen
                      if ($count == "0") { }
                      else { 
                      // Zufallszahl zwischen 1 und $count
                      $zufall rand (1,$count);
                      // Zufälliger Eintrag wird ausgelesen
                      $artikel MYSQL_QUERY("SELECT * FROM galerie_inhalt WHERE id = $zufall");
                      WHILE (
                      $rowa MYSQL_FETCH_ARRAY($artikelMYSQL_ASSOC))
                      {
                            echo 
                      "<TR>\n";
                            echo 
                      "<TD WIDTH=\"10\"></TD>\n";
                            echo 
                      "<TD COLSPAN=\"2\" CLASS=\"ueberschrift2\">\n";
                            echo 
                      "<TABLE WIDTH=\"100%\" CELLPADDING=\"0\" CELLSPACING=\"0\">\n";
                            echo 
                      "<TR>\n";
                            echo 
                      "<TD COLSPAN=\"2\" CLASS=\"ueberschrift2\">$rubr_titel - " $rowa["titel"] . "</A></TD>\n";
                            echo 
                      "</TR>\n";
                            echo 
                      "<TR>\n";
                            echo 
                      "<TD WIDTH=\"10\"></TD>\n";
                            echo 
                      "<TD><IMG SRC=\"" $rowa["bild_thumb"] . "\"></TD>\n";
                            echo 
                      "</TR>\n";
                            echo 
                      "</TABLE></TD>\n";
                            echo 
                      "</TR>\n";
                      }      
                      }
                      }
                      MYSQL_CLOSE(); 
                      In der MySQL Datenbank sind Einträge vorhanden aber er spuckt mir nichts aus, eine Fehlermeldung kommt auch leider nicht.
                      Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

                      Kommentar


                      • #12
                        wie soll ne fehlermeldung kommen, wenn du keine ausgibst?

                        mach mal an deine queries or die(mysql_error()) hinten dran.
                        PHP-Code:
                        $artikel MYSQL_QUERY("SELECT * FROM galerie_inhalt WHERE id = $zufall") or die(mysql_error()); 
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Hab ich schon probiert, aber es kamen keine Fehlermeldungen ...
                          Einpacken & Mitnehmen - SEO und CMS/Shop-Lösungen

                          Kommentar


                          • #14
                            PHP-Code:
                            $rubr_titel $row["rubrik"];
                            $artikel MYSQL_QUERY("SELECT * FROM galerie_inhalt WHERE rubrik = $idrub ORDER BY RAND() LIMIT 1");
                            if (
                            $rowa MYSQL_FETCH_ARRAY($artikelMYSQL_ASSOC))
                            {
                                  echo 
                            "<TR>\n";
                                  echo 
                            "<TD WIDTH=\"10\"></TD>\n"
                            und so weiter
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar

                            Lädt...
                            X