Susanne: MySQL

Hallo leute,

Ich habe eine Datenbank und möchte nun über PHP Daten ausfragen,
aber irgendwie bekomme ich das nicht hin.
Aber aus diverser Literatur habe ich folgendes entnommen aber
das klappt nicht.

<?php
 $user="root";
 $host="localhost";
 $pwd="";
 if(mysql_connect($host,$user,$pwd))
  {
    echo "Verbindung steht<br>";
  }
 else
  {
     echo "Fehler".mysql_error();
  }
 if(mysql_select_db("webshop"))
  {
   echo "Datenbank gefunden";
  }
  else
  {
    echo "Datenbank nicht gefunden!".mysql_error();
  }
 $frage=mysql_query("SELECT kundenname from kunden where kundennummer='1';");
 while($zeile = mysql_fetch_array($frage,MYSQL_ASSOC))
  {
  echo $zeile;

}

?>

Oder ist das die falsche Methode um Daten auszulesen?
Als ergebnis bekomme ich nur "Array" mehr nicht.

Danke ! ;-)

  1. Hi Susanne,

    while($zeile = mysql_fetch_array($frage,MYSQL_ASSOC))

    genau, du bekommst nur Array raus, weil du ja auch ein Array angefordert hast. Du könntest übrigens auch kürzer schreiben mysql_fetch_assoc.
    Dieses assoziative Array enthält genau die abgefragten Spalten unter ihren jeweiligen Namen (siehe var_dump($zeile)). In deinem Fall wäre der Zugriff als
    echo $zeile['kundenname'];

    MfG
    Rouven

    --
    -------------------
    Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#
    1. Hi Susanne,

      while($zeile = mysql_fetch_array($frage,MYSQL_ASSOC))
      genau, du bekommst nur Array raus, weil du ja auch ein Array angefordert hast. Du könntest übrigens auch kürzer schreiben mysql_fetch_assoc.
      Dieses assoziative Array enthält genau die abgefragten Spalten unter ihren jeweiligen Namen (siehe var_dump($zeile)). In deinem Fall wäre der Zugriff als
      echo $zeile['kundenname'];

      MfG
      Rouven

      Hallo Rouven....

      Yep Danke hat geklappt!
      Schönen Sonntag noch!

  2. echo $begrüßung;

    Hier besteht noch weiterer Verbesserungsbedarf:

    if(mysql_connect($host,$user,$pwd))
      {
        echo "Verbindung steht<br>";
      }
    else
      {
         echo "Fehler".mysql_error();
      }

    Wenn der Datenbank-Connect nicht geklappt hat, gibst du eine Meldung aus. Läufst aber munter und fröhlich mit der nicht vorhandenen Verbindung in weitere Befehle, die eine solche aber voraussetzen.

    if(mysql_select_db("webshop"))
      {
       echo "Datenbank gefunden";
      }
      else
      {
        echo "Datenbank nicht gefunden!".mysql_error();
      }
    $frage=mysql_query("SELECT kundenname from kunden where kundennummer='1';");
    while($zeile = mysql_fetch_array($frage,MYSQL_ASSOC))

    Auch bei mysql_query() können Fehler auftreten. Der Rückgabewert ist dann false, was aber kein gültiges Argument für die Fetch-Funktionen ist.
    Außerdem sollten mit mysql_query() abgesendete Statements kein abschließendes Semikolon enthalten. mysql_query() sendet immer nur ein einzelnes Statement ab. Das ist eindeutig genug, da braucht es kein abschließendes Zeichen.

    echo "$verabschiedung $name";