Select Befehl ungültig
Boubou
- php
Hi alle zusammen ich hab folgendes Problem. Ich habe ein Hauptfenster welches die Id des Ordners ans Edit Fenster übergibt:
/************************************************************
while ($row = mysql_fetch_row($query)) {
for ($i = 0; $i < mysql_num_fields($query); $i++) {
echo ($row[$i]);
}
$ID= $row[0];
echo("<a href="folderedit.php?ID=$ID"onclick= "oeffnen(this.href);return false;">
<img class="image"src="stift.gif" width="50" height="30" alt="Bild_1"></a>");
der code oben ist vom Hauptfenster das klappt auch die ID kommt bei folderedit richtig an.
Hier nimmt das formular in folderedit die ID:
/************************************************************
$select = "SELECT ordner_id,ordner_name,ordner_inhalt FROM ordner WHERE ordner_id = $ID" ;
$result= mysql_query($select);
$assoc=mysql_fetch_assoc($result);
/******************************************************
Füllt dann die Daten in input Felder alles ok klappt auch richtig.
Ich hab es objektoriniertiert gemacht das ist mein konstruktor von Ordner
/**********************************************************
public function __construct($ID) {
$selectregister_ordner = "SELECT register_id FROM ordner_register WHERE ordner_id = $ID";
$res= mysql_query($selectregister_ordner);
if(mysql_num_rows($res) > 0){
while($data = mysql_fetch_assoc($res)){
$register=new Register($data['register_id']);
array_push($this->__ordner_register,$register);/
}
}
Da oben ist der Fehler ich kriege die meldung mysql_num_rows hat einen ungültigen Wert aus dem Select Befehl. Uns zwar da bei select...where ordner_id=$ID. Die $ID bekommt er nicht wenn ich das wegmache beim select befehl klappts aber wenn ich wieder schreibe where ... zeigt er select als ungültig. Der Konstruktor bekommt doch die $ID übergeben und ich hab auch ein $ordner = new Ordner($ID) gemacht das ein neues Objekt mit der ID gemacht wird nur er bekommt es nicht. Wo ist das Problem?
Der Konstruktor bekommt doch die $ID übergeben
Hast du das überprüft?
Meine Glaskugel sagt, du hast register_globals=off und kein $_GET benutzt.
Aus deinen Codefragmenten kann ich nicht viel Rauslesen, da der Zusammenhang mit dem aufrufenden Script fehlt.
Der Konstruktor bekommt doch die $ID übergeben
Hast du das überprüft?
Meine Glaskugel sagt, du hast register_globals=off und kein $_GET benutzt.Aus deinen Codefragmenten kann ich nicht viel Rauslesen, da der Zusammenhang mit dem aufrufenden Script fehlt.
/********************************************************
Ja ich hab nirgendswo $_GET benutzt.
Was das überprüfen angeht ich hab erst als ich ein neues Objekt erstellt habe
$ordner - new Ordner (); geschrieben und er sagte mir Konstruktor missingargument dann hab ich in die klammern von new Ordner ($ID) eingesetzt und der fehler war weg denke ma das er die dann bekommen hat weil beim aufruf von ordner wird als erstes der Konstruktor aufgerufen. Wo müsste denn das GET hin und und wo setz ich die register globals auf on?
Wo müsste denn das GET hin und und wo setz ich die register globals auf on?
Dir ist bekannt, dass dieses Forum eine Suchfunktion hat und das es unter http://php.net eine ausführliche Doku inkl. Suchfunktion gibt?
echo $begrüßung;
Wo ist das Problem?
Grenze es ein, indem du das error_reporting auf E_ALL stellst (und display_errors auf on), was zum Entwickeln immer eine gute Idee ist, werden doch damit Notice-Meldungen nicht mehr unterdrückt, die Hinweise bei Zugriffen auf nicht vorhandene Variablen geben. Desweiteren verwende Kontrollausgaben, um Wunsch und Wirklichkeit miteinander zu vergleichen. Ein einfaches echo ist oft ausreichend, genauer wird es mit var_dump().
echo "$verabschiedung $name";
Mahlzeit Boubou,
der code oben ist vom Hauptfenster das klappt auch die ID kommt bei folderedit richtig an.
Im Rahmen von $_GET, richtig.
Hier nimmt das formular in folderedit die ID:
/************************************************************
$select = "SELECT ordner_id,ordner_name,ordner_inhalt FROM ordner WHERE ordner_id = $ID" ;
Aha. Wetten nicht?
$result= mysql_query($select);
$assoc=mysql_fetch_assoc($result);
Es ist KEINE gute Idee, den Rückgabewert einer (Datenbank-)Funktion einfach ungeprüft weiterzuverarbeiten, ohne ihn auf Gültigkeit zu prüfen. Wetten, dass dort kein gültiges Abfrageergebnis drin steht?
Da oben ist der Fehler ich kriege die meldung mysql_num_rows hat einen ungültigen Wert aus dem Select Befehl. Uns zwar da bei select...where ordner_id=$ID.
Hast Du mal überprüft, was in $ID enthalten ist?
Die $ID bekommt er nicht wenn ich das wegmache beim select befehl klappts aber wenn ich wieder schreibe where ... zeigt er select als ungültig.
Könntest Du das nochmal in einer handelsüblichen Umgangssprache wiederholen?
Der Konstruktor bekommt doch die $ID übergeben
Sicher? Und was steht da drin?
und ich hab auch ein $ordner = new Ordner($ID) gemacht das ein neues Objekt mit der ID gemacht wird nur er bekommt es nicht.
Sicher. Es kommt nur darauf an, was dort drin enthalten ist ...
Wo ist das Problem?
Die mangelnde Problembeschreibung ist das Problem.
MfG,
EKKi