Neuling: Datenbankzugriff

Hallo liebes Forum,

ich habe eine sql-Datenbank, auf die ich gerne per Script zugreifen möchte.
Aus einer bestehenden Rubriken-Tabelle möchte ich einige Attribute auslesen und ausgeben. Bisher sieht das ganze  so aus:
---------------------------------------------------------------------------
$rubriken_set = mysql_query("SELECT methode, autor, aktiv FROM Rubriken ORDER BY methode");
while ($rubriken_row = mysql_fetch_assoc($rubriken_set))
      {
      $methode=$rubriken_row["methode"];
      $autor_id=$rubriken_row["autor"];
      $aktiv=$rubriken_row["aktiv"];
      echo"<tr><td><center>$methode</center></td><td><center>$autor_id</center></td><td><center>LINK</center></td><td><center>";
      if ($aktiv=="1")
         {
         echo"<input type="checkbox" name="aktiv" value="ja" checked>";
         }
      else
         {
         echo"<input type="checkbox" name="aktiv" value="ja">";
         }
      echo"</center></td></tr>";
      }
---------------------------------------------------------------------------
Das Probelm ist jetzt, dass ich keine Ahnung habe, wie und wo ich mich überhaupt in die Datenbank einlogge. Denn aktuell kommt noch die Fehlermeldung: "Access denied for user ..."

Kann mir da mal jemand auf die schnelle helfen?

Danke

  1. Hello,

    $rubriken_set = mysql_query("SELECT methode, autor, aktiv FROM Rubriken ORDER BY methode");

    das ist für einen Anfänger sehr löblich. Bitte bleibe bei diesem sauberen Stil und verfalle nicht in die SELECT * Manier.

    Das Probelm ist jetzt, dass ich keine Ahnung habe, wie und wo ich mich überhaupt in die Datenbank einlogge. Denn aktuell kommt noch die Fehlermeldung: "Access denied for user ..."

    das klingt danach, als ob du dich ohne gültige Nutzerkennung angemeldet hast. Schau mal in der PHP-FAQ nach, welche Schritte (connect, select, query) nötig sind.

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Konsens ist kein Beweis  --  John Naisbitt
    1. Hallo Rouven,

      das klingt danach, als ob du dich ohne gültige Nutzerkennung angemeldet hast. Schau mal in der PHP-FAQ nach, welche Schritte (connect, select, query) nötig sind.

      ...ich gehe mal davon aus, dass es folgender Baustein ist:

      $link = mysql_connect("localhost", "ich", "geheim");
        if (!$link)
          die("Kann den Server nicht erreichen.");
        if (!mysql_select_db("meinedatenbank", $link))
          die("Kann die Datenbank nicht anwählen.");

      Wenn ich da aber jetzt für "ich" mein Benutzername und für "geheim" mein Passwort angebe, kommt da folgende Fehlermeldung raus:

      Access denied for user '******'@'localhost' (using password: YES)

      Hast noch ne Idee?

      1. Haha !!!

        Ich habs hinbekommen...

        Allerdings muss es da noch eine andere Lädung geben.
        Denn jetzt kann doch jeder User über den Quellcode-anzeigen meine Login-Daten sehen.

        Was gibt´s denn da so für Tricks?

        Gruß

        1. reicht es vielleicht schon, wenn ich diese Datenbank-Connection schon über dem <head> mache?
          Ich habe gesehen, dass das dann nicht mit angezeigt wird, wenn man sich den Quelltext anzeigen läßt.
          Oder ist dass dann immer noch nicht sicher?

          Gruß

        2. Hi,

          in ?welchem? Quellcode soll der Benutzer deine Anmeldedaten sehen? In dem, den du geschrieben hast und welcher auf dem Server liegt? Oder in dem, welcher dem Browser geliefert wird, wenn er versucht die Seite anzuzeigen? Im Quellcode, den dir der Browser anbietet, solltest du keine Spur mehr von PHP sehen. PHP Quellcode wird vollständig auf dem Server verarbeitet.

          Die Datenbank Connection kannst du machen, wo du willst, solange sie gemacht wird, bevor du eine SQL Abfrage (z.b. SELECT ...) auf die Datenbank loslassen willst. Ich bezweifle, dass PHP die Bedeutung von <head> kennt, geschweige an dieser interessiert ist.

          Du kannst die Datenbank Connection in eine eigene winzige Datei auslagern, welche du dann immer wieder mit PHP Include Direktiven wiederverwendest.

          Gruss, Frank

          1. Du kannst die Datenbank Connection in eine eigene winzige Datei auslagern, welche du dann immer wieder mit PHP Include Direktiven wiederverwendest.

            Aha, das hört sich wesentlich vorteilhafter an, wenn ich z.B. woanders auch auf die Datenbank zugreifen möchte. Sollte sich warum auch immer mal irgendetwas ändern, muss ich dann ja nur die eine "kleine" Datei abändern und nicht jedes Script, wo ich auf die Datenbank zugreife.

            Die Frage ist natürlich jetzt ;)
            Wie mache ich denn das?
            Ist das so´ne "require_once" Geschichte?

            Gruß

            1. ähm, na das stichwort mit php includes hab ich dir gegeben ... aber mit require_once hat das eher weniger zu tun, meine ich ... aber ich hab von PHP auch nicht wirklich viel ahnung ... cheers, frank

              1. Hello,

                ähm, na das stichwort mit php includes hab ich dir gegeben ... aber mit require_once hat das eher weniger zu tun, meine ich ... aber ich hab von PHP auch nicht wirklich viel ahnung ... cheers, frank

                na ja, doch, schon irgendwie:
                include bindet eine PHP-Datei ein und produziert, sofern dies fehlschlägt, eine Warning
                require bindet eine PHP ein und produziert, sofern dies fehlschlägt, einen fatalen Fehler
                Von beiden gibt es zudem eine _once-Variante, die insbesondere dann hilfreich ist, wenn in den include/require-Kette nicht sichergestellt werden kann, dass ein und die selbe Datei mehrfach eingebunden wird (z.B. eine Funktionsbibliothek). Je nach Aufbau (Stichwort function_exists) könnte es sonst zu Fehlern durch mehrfach definierte Funktionen/Variablen kommen, die durch _once verhindert werden.

                MfG
                Rouven

                --
                -------------------
                sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
                Buy when there's blood running in the street and sell when everyone is pounding at your door, clawing to own your equities  --  Wisdom on Wallstreet
                1. Hi Rouven,

                  ich schrieb ja bereits

                  aber ich hab von PHP auch nicht wirklich viel ahnung

                  require_once war mir in Erinnerung mit der Verwendung bei selbstgebastelteten Login-Systemen .. ist aber auch schon ne Weile her.

                  Gutnacht, Frank