Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus Datenbank sinnvoll speichern

Einklappen

Neue Werbung 2019

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

  • Daten aus Datenbank sinnvoll speichern

    Hallo,

    ich habe in einer Datenbank News gespeichert. Diese haben einen Titel, einen Aufhänger und die Nachricht.
    Jetzt möchte ich auf einer Homepage die 5 neusten News anzeigen.
    Ich habe mir gedacht, dass es am sinnvollsten wäre, wenn ich die Daten in einem Array speichere, um sie an der passenden Stelle auf der Homepage einzubinden.
    Ich bin neu auf diesem Gebiet. Mein erster Anssatz ist eigentlich doppelt gemoppelt, da ich es nicht geschafft habe die Daten direkt in ein Array zu speichern.
    Stattdessen speichere ich die Daten vorher in Variablen, was das Array dann eigentlich überflüssig macht.
    Mit welcher Methode kann man am einfachsten Solche Daten aus der Datenbank handhaben, um sie schnell und einfach in eine php-Datei (Homepage) einzubinden?

    Hier meine erster Ansatz:
    PHP-Code:
    <?php
    $abfrage 
    "SELECT titel, nachricht_preview, nachricht FROM news WHERE kategorie_id=29 ORDER BY id desc LIMIT 5";
    $ergebnis mysql_query($abfrage);
    $i 1;
    while(
    $row mysql_fetch_object($ergebnis))
      {
        switch(
    $i){
          case 
    "1":
              
    $rf_titel1 $row->titel;
              
    $rf_aufhaenger1 $row->nachricht_preview;
              
    $rf_nachricht1 $row->nachricht;
              break;
          case 
    "2":
              
    $rf_titel2 $row->titel;
              
    $rf_aufhaenger2 $row->nachricht_preview;
              
    $rf_nachricht2 $row->nachricht;
              break;
          case 
    "3":
              
    $rf_titel3 $row->titel;
              
    $rf_aufhaenger3 $row->nachricht_preview;
              
    $rf_nachricht3 $row->nachricht;
              break;
          case 
    "4":
              
    $rf_titel4 $row->titel;
              
    $rf_aufhaenger4 $row->nachricht_preview;
              
    $rf_nachricht4 $row->nachricht;
              break;
          case 
    "5":
              
    $rf_titel5 $row->titel;
              
    $rf_aufhaenger5 $row->nachricht_preview;
              
    $rf_nachricht5 $row->nachricht;
              break;
        }
        
    $i++;
      }
    $rf_news = array("titel" => array($rf_titel1,
                                      
    $rf_titel2,
                                      
    $rf_titel3,
                                      
    $rf_titel4,
                                      
    $rf_titel5
                                      
    ),
                     
    "aufhaenger" => array($rf_aufhaenger1,
                                      
    $rf_aufhaenger2,
                                      
    $rf_aufhaenger3,
                                      
    $rf_aufhaenger4,
                                      
    $rf_aufhaenger5
                                      
    ),
                     
    "nachricht" => array($rf_nachricht1,
                                      
    $rf_nachricht2,
                                      
    $rf_nachricht3,
                                      
    $rf_nachricht4,
                                      
    $rf_nachricht5
                                      
    )
                     );
    ?>

    Gruß

  • #2
    Also ich mache es sofort in einem Array geht ohne Probleme und ist ist natürlich etwas weniger arbeit

    Kommentar


    • #3
      Das möchte ich ja, weiß aber nicht, wie es geht. Kannst du mir ein Beispiel Code geben?

      Kommentar


      • #4
        PHP-Code:
        <?php
        $abfrage 
        "SELECT titel, nachricht_preview, nachricht FROM news WHERE kategorie_id=29 ORDER BY id desc LIMIT 5";
        $ergebnis mysql_query($abfrage);
        $news = array()
        while(
        $row=mysql_fetch_array($ergebnis)) {
            
        $news[] = $row;
        }
        // ...
        foreach($news as $eintrag) {
            echo 
        $eintrag['titel'], "
        \n"
        ;
        }
        ?>
        Aber wenn Du es in der Form hast (also hinterher einfach den Inhalt des Feldes ausgeben) ist das Zwischenspeichern eh überflüssig.

        Kommentar


        • #5
          Ich verstehe das noch nicht. Was passiert bei "$news[] = $row;"? Wie werden welche Daten in $news gespeichert? Was kommt noch in den Bereich, den du auskommentiert hast?

          Kommentar


          • #6
            Also es werden die Spalten namen gespeichert nehmen wir an du speicherst den Text in deiner Tabelle als Message dann musst du ihn nacher über

            PHP-Code:
            <?php
            <?
            echo 
            $news['message'];
            ?>?>
            ausgeben.

            Kommentar


            • #7
              Das Problem ist doch, dass es mehrere Titel, Aufhänger und Nachrichten gibt. Sind die alle im $news Array? Wenn ich das Beispiel von Bruchpilot ausführe, werden nur die
              ausgegeben, keine Titel.

              Kommentar


              • #8
                PHP-Code:
                <?php
                $abfrage 
                "SELECT titel, nachricht_preview, nachricht FROM news WHERE kategorie_id=29 ORDER BY id desc LIMIT 5";
                $ergebnis mysql_query($abfrage);
                $news = array();
                while(
                $row mysql_fetch_object($ergebnis))
                {
                    
                $news[] = $row;
                }
                ?>
                Macht das soweit Sinn? Wie kann ich jetzt z.B. den zweiten Titel ausgeben?

                Kommentar


                • #9
                  print $news[1]['titel']; // Index beginnt bei 0

                  Kommentar


                  • #10
                    Danke! Muss natürlich mysql_fetch_array bei mir heißen.

                    Kommentar


                    • #11
                      Oder bei mir $news[1]->titel

                      Kommentar


                      • #12
                        Das funktioniert bei mir aber nicht?!

                        Kommentar


                        • #13
                          Hast du mysql_fetch_object() noch in Benutzung?
                          Natürlich muss die Tabelle auch mindestens 2 Einträge haben..

                          Kommentar


                          • #14
                            Das war's. Ich hatte array statt object. Gibt es eine bessere Variante oder sind beide Wege gleichwertig?

                            Kommentar


                            • #15
                              Ich bevorzuge mysql_fetch_assoc()
                              Bleibt aber ganz bei dir, die Funktionen nehmen sich nichts.

                              Kommentar

                              Lädt...
                              X