anfängerfrage zur abfrage eines feldes aus einer datenbank

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

  • anfängerfrage zur abfrage eines feldes aus einer datenbank

    hallo

    ich hab da mal eine glaub ich ziemlich einfache frage:

    also ich hab hier die datenbank xyz mit der tabelle
    "links" von welcher die felder "titel" und "datum"
    abgefragt werden sollen (das ist schon alles vorhanden)
    nun soll z.b. auf der hautpseite oder sonstwo immer der aktuellste eintrag aus der tabelle "links" dargestellt werden. wie ist die grundsätztliche vorgehensweise?

    ich haette mal so angefangen:

    <?php

    $verbindung = @MYSQL_PCONNECT("xyz.datenbankserver.de", "benutzer", "passwort") OR DIE("Keine verbindung zur Datenbank!");
    @mysql_select_db("datenbankname") or die( "Die Datenbank konnte nicht ausgewählt werden");

    so wie geht es dann weiter? ich dachte an sowas in der art:
    (nicht lachen bin anfänger)

    $query = mysql_query("SELECT titel FROM links ORDER BY datum DESC");


    so falls das noch stimmt, wie bekomme ich dann diese abfrage angezeigt..wie heisst der befehl dafür?

    vielen dank für die hilfe!

    tm

    p.s: und wie bekomme ich ihn dann dazu dass er nur den ersten datensatz anzeigt?




    [Editiert von Typomaniac am 18-05-2001 um 17:09]

  • #2
    ei, du bist schon ganz dicht dran:

    $ausgabe=mysql_result($query,0,"titel");

    der erste Wert verweist auf das gelieferte Resultset deiner Abfrage, der zweite ist der Zeiger auf dem Resultset (also welchen Eintrag des Resultsets) und letzter Wert ist das Feld, welches ausgelesen werden soll.

    Kommentar


    • #3
      hi brainbug,

      erstmal vielen dank ich dachte schon mich erhört niemand mehr habs gleich ausprobiert und es funktioniert so wunderbar; allerdings hab ich da noch ein paar fragen wenn du zeit dafür hast ;-)

      1. auf was bezieht sich die 0, das hab ich nicht so ganz verstanden...auf den ersten record? ich habe mal testweise 2 eingetragen um (wenn dem so ist) die ersten 2 werte zu erhalten aber das hat so nicht funktioniert..habe ich da einen denkfehler? was müsste ich dann angeben um eben die ersten 5, 10 oder alle sätze anzeigen zu lassen?

      2. wenn jetzt zu dem ergebnis titel noch die felder (spalten?) beschreibung, preis, wasweissich gehören würden, wie sage ich php nd mysql dass er die dazugehörigen werte
      mitauslesen soll und anschliessend halt irgendwie darstellen soll?

      ok, ich hab zwar noch viel viel viel mehr fragen, aber ich will fürs erste nicht übertreiben

      viele grüße,

      tm

      Kommentar


      • #4
        zu 1. :

        du mußt dir dein Abfrage-Ergebnis wiederum als Tabelle vorstellen. Wenn du von dieser Ergebnistabelle (resultset) nun den ersten Eintrag möchtest, dann bekommst du den über die 0, da bei Programmiersprachen eigentlich fast überall immer mit der Null, also 0 begonnen wird. Interessiert dich der 10. Eintrag, dann wäre es eben die 9.

        für die Ausgabe von mehreren Treffern brauchst du dann eine Schleife, die das für dich macht.
        Code:
        $wieviele=mysql_numrows($query);  // wieviele Treffer habe ich
        if ($wieviele<5) $z=$wieviele;
        else $z=5
        
        for ($i=0;$i<$z;$i++) {
        $ausgabe=mysql_result($query,$i,"titel");
        echo $ausgabe;
        }
        durch die kleine Abfrage vor der Schleife wird geschaut, wieviele Treffer da sind und max. 5 ausgegeben werden. Falls weniger da sind, geht die Schleife auch nur bis dahin.

        alle Treffer kannst du so ausgeben:
        Code:
        $i=0;
        while($ausgabe=mysql_result($query,$i,"titel")) {
        echo $ausgabe;
        $i++;
        }
        zu 2:

        du kannst jedes Feld/Spalte des Results ansprechen. Dafür mußt du den Query ändern in: $query = mysql_query("SELECT * FROM links ORDER BY datum DESC");
        durch den * wird der gesamte Datensatz im Resultset abgelegt. Und der Zugriff erfolgt wie oben, aber anstatt mysql_result($query,0,"titel") schreibst du bei titel eben den anderen Spaltennamen.
        Sind es viele Felder, dann geht es einfacher:

        $ausgabe=mysql_fetch_array($query);

        dann steht der gesamte Datensatz in einem Array $ausgabe -> Zugriff erfolgt dann über die Spaltennamen im Array -> $ausgabe[titel] (also ein assoziatives Array)

        Kommentar


        • #5
          ok ich sag mal tausend dank..werd mir das heute nach der arbeit zu gemüte führen , ich hoffe ich komm dann zurecht...

          thanks a lot

          tm

          Kommentar


          • #6
            ok, super das hat schonmal geklappt...nur dass er bei 1.
            alle abgefragten daten hintereinander ohne punkt und ohne komma und ohne leerzeichen hinschreibt wie sag ich dem denn jetzt dass er das ein bisschen menschenlesbarer gestalten soll? (hoffentlich kommt bald mein php buch...)

            viele gruesse & thanks

            tm

            Kommentar


            • #7
              du mußt einfach einen HTML-Befehl hinter die Ausgabe hängen:

              echo $ausgabe."<br>";

              und schon wird hinter der Ausgabe ein break eingefügt.

              Bin jetzt weg, morgen mehr falls du noch Fragen schickst...

              Kommentar


              • #8
                danke das hat soweit gut geklappt...wie kann ich denn die variable $ausgabe selbst formatieren (also z.b. font face) muss ich dies über dokumentübergreifende stylesheets machen oder kann ich die variable auch selbst formatieren?

                thanks & viele gruesse

                tm

                Kommentar


                • #9
                  moment, du darfst da nix falsch verstehen. Du brauchst nicht die Variable formatieren. Wenn du sowas machen willst, mußt du das im HTML machen oder im PHP explizit HTML ausgeben.

                  Bsp.: in $ausgabe steht "Hallo" drin
                  Code:
                  <html><body><? echo $ausgabe; ?></body></html>
                  
                  Ausgabe (Ergebnis an Browser):
                  <html><body>Hallo</body></html>
                  
                  
                  <html><body><font face="Arial" size="3"><b><? echo $ausgabe; ?></b></font></body></html>
                  
                  Ausgabe (Ergebnis an Browser):
                  <html><body><font face="Arial" size="3"><b>Hallo</b></font></body></html>
                  
                  
                  <html><body><? echo "<font face=\"Arial\" size=\"3\"><b>".$ausgabe."</b></font>"; ?></body></html>
                  
                  Ausgabe (Ergebnis an Browser):
                  <html><body><font face="Arial" size="3"><b>Hallo</b></font></body></html>
                  ich hoffe, dir wird so klar, wie das mit PHP funktioniert. Falls nicht, frag ruhig weiter...

                  Kommentar


                  • #10
                    jajajaj ich glaub ich versteh das so langsam...mensch du bist mir echt ne riesenhilfe, ich hoffe ich nerv langsam nicht...ich hab bestimmt noch mehr fragen!
                    ist es im sinne des forums diesen thread noch ewig fortzuführen oder ist das per pm besser?


                    vielen vielen dank nochmal & gruesse

                    tm

                    Kommentar

                    Lädt...
                    X