lordpom
Goto Top

Komme mit einer SQL abfrage nicht klar.

Hallo

Ich möchte unsere Händlerliste (wir sind Importeur) im Internet veröffentlichen so das Endkunden sehen in welchem Sportgeschäft sie unsere Artikel bekommen. Unsere Buchhaltungssoftware schreibt alle erforderlichen Daten in eine MySQL Datenbank. Ich habe jetzt das Problem das ich die Abfrage nicht zustande bekomme um die Daten richtig darzustellen. Inetwa so wie hier: Axosport

Ich habe 2 Tabellen:

Adress_ID NName Beruf Strasse Adresse3 Plz Ort Telefon Telefax E_Mail

Adress_ID Marke Status

Die beiden Adress_ID sind natürlich gleich.

Ich habe schon etwas "gebastelt" in PHP und VB. Die VB Abfrage sollte eigentlich funktionieren. Meine Idee war den VB-Code nach PHP zu schreiben, funktioniert aber leider nicht.

VB:

Public Function eAusgabeVetretung(eVetretung As String)
  Dim AdrR As Recordset 'Adressen  
  Dim VerR As Recordset 'Vertretung  
  Set AdrR = Openrec("Select * from Adressen order by PLZ")  
  While Not AdrR.EOF
    Set VerR = Openrec("Select * from eAdressen_Vertretung where Adress_ID = " & AdrR!Adresse_ID & " and Marke ='" & eVetretung & "' order by Marke")  
    If Not VerR.EOF Then
      'Ausgabe Adresse !  
      While Not VerR.EOF
        'Ausgabe Marke  
        VerR.MoveNext
      Wend
      AdrR.MoveNext
    End If
  Wend
End Function


PHP (funktioniert nicht)

/* Erstellt Connect zur Datenbank her */
  $db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);
  mysql_select_db("andeer1",$db);   
  $result1 = mysql_query("SELECT  eIntadressen.* FROM  eIntadressen");   
   while($row1 = mysql_fetch_array($result != feof)) {
    $result2 = mysql_query("SELECT * FROM eIvertretung WHERE Adress_ID = $result1[Adress_ID]");  
     if ($result2 != feof)
      echo $row['NName'],$row['Beruf'],$row['Strasse'],$row['Adresse3'],$row['Plz'],$row['Ort'],$row['Telefon'],$row['Telefax'],$row['E_Mail'];  
  while($row2 = mysql_fetch_array($result2 != feof)) {
   echo $row['Marke'];  
  }}
?>

Ich hoffe jemand kann mir ein bischen weiterhelfen.

Gruss

Pom

Content-ID: 4733

Url: https://administrator.de/contentid/4733

Ausgedruckt am: 25.11.2024 um 21:11 Uhr

7217
7217 10.12.2004 um 15:44:50 Uhr
Goto Top
Ich würde mal den Code im PHP nochmal genau anschauen. Hier hast du einige Variablennamen durcheinander, $result, $result1, $result2...

Dann wäre eine Fehlermeldung, die PHP bringt, auch nicht übel.

Gruß, Mupfel
lordpom
lordpom 10.12.2004 um 16:00:33 Uhr
Goto Top
/* Erstellt Connect zur Datenbank her */
$db = @mysql_connect($db_server,$db_user,$db_passwort);
mysql_select_db("andeer1",$db);
$result1 = mysql_query("SELECT eIntadressen.* FROM eIntadressen");
*while($row1 = mysql_fetch_array($result1 != feof)) {*
$result2 = mysql_query("SELECT * FROM eIvertretung WHERE Adress_ID = $result2[Adress_ID]");
if ($result2 != feof)
echo $row['NName'],$row['Beruf'],$row['Strasse'],$row['Adresse3'],$row['Plz'],$row['Ort'],$row['Telefon'],$row['Telefax'],$row['E_Mail'];
while($row2 = mysql_fetch_array($result2 != feof)) {
echo $row['Marke'];
}}
?>

ich hoffe so stimmt es

Fehlermeldung:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web514/html/handler/marken.php on line 18

Linie 18 habe ich mit Sternen (*) gekennzeichnet
7217
7217 10.12.2004 um 21:39:27 Uhr
Goto Top
*while($row1 = mysql_fetch_array($result1 != feof)) {*

Warning: mysql_fetch_array(): supplied
argument is not a valid MySQL result
resource in
/home/www/web514/html/handler/marken.php on
line 18

Ist ja auch logisch, denn: $result1 != feof liefert einen boolean zurück und mysql_fetch_array erwartet jedoch als Argument ein Resource gemäß den Headerangaben:

array mysql_fetch_array ( resource Ergebnis-Kennung [, int Ergebnistyp])

Also du müsstest da schon das $result1 alleine drin stehen haben.

Schau dir einfach mal die Beispiele an, wie du sie auf http://de2.php.net/mysql_fetch_array findest.

Gruß, Mupfel
Guenni
Guenni 17.03.2005 um 20:32:01 Uhr
Goto Top
Ich vermute, die Anweisung mysql_select_db("andeer1",$db); führt schon zu
einer Fehlermeldung, da die Funktion nur den Namen der Datenbank erwartet.

Die Anweisung $result1 = mysql_query("SELECT eIntadressen.* FROM eIntadressen");
dürfte ebenfalls eine Fehlermeldung verursachen, da die Funktion zwei Parameter erwartet,
zum einen die SELECT-Anweisung, zum anderen das Verbindungshandle.
$result1 = mysql_query("SELECT eIntadressen.* FROM eIntadressen",$db); wäre richtig.
$result != feof ist ebenfalls falsch, da in der Variablen $result die Ergebnisliste als ARRAY
gespeichert wird.Richtig wäre z.B. while($row1 = mysql_fetch_array($result,MYSQL_ASSOC)),
MYSQL_ASSOC ist eine vordefinierte Konstante die bewirkt, das die Ergebnisliste als assoziatives
Array abgespeichert wird, das heißt, das heißt, du kannst dir die Spalten mit
echo "$row[Spaltenname]"; anzeigen lassen.Spaltenname nicht in Anführungszeichen.

Last not least:@MYSQL_CONNECT($db_server,$db_user,$db_passwort);
ist auch nicht richtig, da PHP wie z.B. C/C++ Groß-und Kleinschreibung unter-
scheidet, das heißt, die Funktion MYSQL_CONNECT gibt es für PHP nicht.