MySQL Problem

Evilmachine

Manaheld
Mitglied seit
14.11.2003
Beiträge
1.170
So Leutz. Ich habe ein MySQL Problem. Ich habe ja wie einige wissen das SUS Server Projekt auf der Arbeit. Jetzt gibt es ein Tool dazu das sich SUS Reports nennt. Ich habe das Ding installiert und bekomme nach den aufrufen der dazugehörigen Seiten folgende Fehlermeldungen:

WARNING: A database ERROR occured. The application will be terminated. QUERY : SELECT DISTINCT Client_ID from Clients SQL ERROR : Table 'sus.clients' doesn't exist FILE : D:\inetpub\wwwroot\susreport\index.php LINE: 58

Das kommt in den weiteren 5 .php files auch, jedoch mit anderen Query´s wie sie unten stehen.Ich habe mal die Fehlerzeilen rausgesucht und poste sie mal hier rein und hoffe das mir irgen jemand helfen kann.

index.php
$result = SqlQuery("SELECT DISTINCT Client_ID from Clients", __FILE__, __LINE__);

clients.php
$result = SqlQuery($newquery, __FILE__, __LINE__);

patches.php
$result = SqlQuery("SELECT Patch_ID, Patch_Name, Downloaded, Installed FROM Patches ORDER BY " . $orderby, __FILE__, __LINE__);

errors.php
$result = SqlQuery("SELECT * from Log WHERE Status='f' ORDER BY Date DESC", __FILE__, __LINE__);

logfiles.php
$filesresult = SqlQuery("SELECT FileName, Rows from Log_Files ORDER BY FileName desc", __FILE__, __LINE__);

fulldetails.php
$result = SqlQuery("SELECT Patch_ID, Patch_Name FROM Patches", __FILE__, __LINE__);

So das sind sie. Ich habe das in nem SUSserver Forum auch schon angesprochen aber da wusste keiner was.
 

Syne

Halbgott
Mitglied seit
26.08.2001
Beiträge
303
Laut der Fehlerausgabe existiert die Tabelle in der Datenbank nicht. Schau mal nach ob du zum richtigen Datenbankserver verbindest. Oder ob die Tabelle wirklich existiert.

Ich kann mir auch vorstellen, daß es mit der Groß- bzw. Kleinschreibung von Clients zu tun haben könnte.

Noch n kleiner Hinweis: Es läßt sich besser lesen, wenn SQL Befehle immer GROSS geschrieben sind.
 
OP
OP
E

Evilmachine

Manaheld
Mitglied seit
14.11.2003
Beiträge
1.170
Dieses Prob hat sich erledigt. Doch jetzt habe ich ein neues Problem.
Ich bekomme die Fehlermeldung:

Warning: asort() expects parameter 1 to be array, null given in D:\Inetpub\wwwroot\susreport\fulldetails.php on line 65

Der Inhalt von Line 65 ist der folgende:

asort($patches);

Das gehört übrigens alles zu Microsofts Software Update Service bzw dem Tool SUS Reports.
 

Randar

Mächtiger Krieger
Mitglied seit
04.02.2003
Beiträge
149
Naja nach der Fehlermeldung her ist $patches nicht definiert, weil es NULL ist. Es müsste aber nen array sein, damit asort funktioniert ( Was soller sonst sortieren ;-)).
Guck mal wo $patches definiert wird und schrieb den abschnitt mal hier hin
 
OP
OP
E

Evilmachine

Manaheld
Mitglied seit
14.11.2003
Beiträge
1.170
Ich habe jetzt mal die Variablen aus der Php Datei rausgeschrieben.

$id = MYSQL_RESULT($result, $n, "Patch_ID");
$name = MYSQL_RESULT($result, $n, "Patch_Name");
$Parts = preg_split("/\./", str_replace("%20", "_", trim($name)));
$short = $Parts[13];
$shortparts = preg_split("/_/", $short);
# $patches[$Parts[13]] = $Parts[13];
$patches[$shortparts[0]] = $shortparts[0];
$n++;

Ich hoffe das hilft.
 

Randar

Mächtiger Krieger
Mitglied seit
04.02.2003
Beiträge
149
So ich hab gerade mal uf php.net nachgeguckt und da müsste prg_split nen multidemensionaler array sein.
Des halb versuch mal folgendes: (Kann völlig falsch sein, da ich den code an sich nicht kenne, aber aus diesem Code stück heraus würde ich es so versuchen)

$id = MYSQL_RESULT($result, $n, "Patch_ID");
$name = MYSQL_RESULT($result, $n, "Patch_Name");
$Parts = preg_split("/\./", str_replace("%20", "_", trim($name)));
$short = $Parts[13][0];
$shortparts = preg_split("/_/", $short);
# $patches[$Parts[13][0]] = $Parts[13][0];
$patches[$shortparts[0][0]] = $shortparts[0][0];
$n++;
 
OP
OP
E

Evilmachine

Manaheld
Mitglied seit
14.11.2003
Beiträge
1.170
Funktioniert leider immer noch nicht.
Ich bekomme immer noch dieselbe Meldung.
 

Randar

Mächtiger Krieger
Mitglied seit
04.02.2003
Beiträge
149
K, hätte ja funktionieren können ;-)
Weisst du welchen Wert $patches enthalten soll?
Ansonsten mach ma um das asort
if (isset($patches))
{
asort($patsches);
}

Das müsste eigtnclich die Fehlerausgabe verhindern, aber ich galueb nicht das es so gewollt ist das $patches nicht definiert ist
 
OP
OP
E

Evilmachine

Manaheld
Mitglied seit
14.11.2003
Beiträge
1.170
Naja so ist auch in Ordnung.
Hauptsache die Meldung ist nicht da.
Diese Seite ist eigentlich dafür da um einzelne Patches auszuwählen und zu sehen welche Clients diesen Patch bekommen haben.
 
Oben