Mit ADODB/PHP genau einen datensatz lesen
am 16.08.2006 16:49:09 von Gerd Schuckar
Hallo,das folgende Code Teil liest genau einen Datensatz aus der
datenbanktabelle tbl_carpool
----- snipp ----------------------
$sql= "SELECT " .
CP_CAR_ID . ", " . CP_CAR_ART . ", " . CP_CAR_PLATENUMBER . ", " .
CP_CAR_TYP . ", " . CP_CAR_MANUFACTURER . ", " . CP_CAR_NUMBER . ", " .
CP_CAR_POWER . ", " . CP_CAR_DISPLACEMENT . ", " . CP_CAR_TIRE_FRONT1 .
"," . CP_CAR_TIRE_REAR1 . ", " . CP_CAR_TIRE_FRONT2 . ", " .
CP_CAR_TIRE_REAR2 . ", " . CP_CAR_FIRSTREGISTRATION_DATE . ", " .
CP_CAR_NEWREGISTRATION_DATE . ", " . CP_CAR_CHECKOUT . " FROM " .
TBL_CARPOOL .
" WHERE " . CP_CAR_ID . " = " . ($args[CP_CAR_ID]) . " AND " .
CP_CAR_DELETED . " = 0 ;";
list($dbconn) = pnDBGetConn();
$dbconn->SetFetchMode(ADODB_FETCH_ASSOC);
$result = $dbconn->Execute($sql);
$dbconn->SetFetchMode(ADODB_FETCH_DEFAULT);
if ($dbconn->ErrorNo() !=0) {
pnSessionSetVar('errormsg',pnVarPrepForDisplay(_CP_ERR_GETCA RDATAFAILED));
return false;
}else{
$statusmsg = pnSessionSetVar('statusmsg',pnVarPrepForDisplay(_CP_CAR_OKAY ));
} // end if ($dbconn->ErrorNo() !=0)
---- snap ----
Der Datensatz wird auch gelesen. ich habe das mittels
echo $result->fields[CP_CAR_ART]; getestet.
jetzt möchte ich diesen Datensatz einem array übergeben.
---- snipp ----
$cardata = array();
while (!$result->EOF) {
$cardata[] = $result->fields;
$result->MoveNext();
} // end while
---- snapp ----
Die function wird dann per
---- snipp
return $cardata;
--- snapp ---
verlassen.
$cardata bleibt jedoch leer. Warum?
Eigentlich funzt das so. Was habe ich übersehen?
Gruß Gerd
Re: Mit ADODB/PHP genau einen datensatz lesen
am 16.08.2006 17:01:24 von Josi
Gerd Schuckar schrieb:
> Hallo,das folgende Code Teil liest genau einen Datensatz aus der
> datenbanktabelle tbl_carpool
> ----- snipp ----------------------
> $sql= "SELECT " .
> CP_CAR_ID . ", " . CP_CAR_ART . ", " . CP_CAR_PLATENUMBER . ", " .
> CP_CAR_TYP . ", " . CP_CAR_MANUFACTURER . ", " . CP_CAR_NUMBER . ", " .
> CP_CAR_POWER . ", " . CP_CAR_DISPLACEMENT . ", " . CP_CAR_TIRE_FRONT1 .
> "," . CP_CAR_TIRE_REAR1 . ", " . CP_CAR_TIRE_FRONT2 . ", " .
> CP_CAR_TIRE_REAR2 . ", " . CP_CAR_FIRSTREGISTRATION_DATE . ", " .
> CP_CAR_NEWREGISTRATION_DATE . ", " . CP_CAR_CHECKOUT . " FROM " .
> TBL_CARPOOL .
> " WHERE " . CP_CAR_ID . " = " . ($args[CP_CAR_ID]) . " AND " .
> CP_CAR_DELETED . " = 0 ;";
>
> list($dbconn) = pnDBGetConn();
> $dbconn->SetFetchMode(ADODB_FETCH_ASSOC);
> $result = $dbconn->Execute($sql);
> $dbconn->SetFetchMode(ADODB_FETCH_DEFAULT);
>
> if ($dbconn->ErrorNo() !=0) {
> pnSessionSetVar('errormsg',pnVarPrepForDisplay(_CP_ERR_GETCA RDATAFAILED));
> return false;
> }else{
> $statusmsg = pnSessionSetVar('statusmsg',pnVarPrepForDisplay(_CP_CAR_OKAY ));
> } // end if ($dbconn->ErrorNo() !=0)
> ---- snap ----
> Der Datensatz wird auch gelesen. ich habe das mittels
> echo $result->fields[CP_CAR_ART]; getestet.
> jetzt möchte ich diesen Datensatz einem array übergeben.
> ---- snipp ----
> $cardata = array();
>
> while (!$result->EOF) {
> $cardata[] = $result->fields;
> $result->MoveNext();
> } // end while
> ---- snapp ----
> Die function wird dann per
> ---- snipp
> return $cardata;
> --- snapp ---
> verlassen.
> $cardata bleibt jedoch leer. Warum?
> Eigentlich funzt das so. Was habe ich übersehen?
> Gruß Gerd
$arrResult = $result->GetArray();
$arrResult = $arrResult[0];
(Wenn ich dich richtig verstanden habe)
Gruss Josi
Re: Mit ADODB/PHP genau einen datensatz lesen
am 16.08.2006 17:11:11 von Gerd Schuckar
Am Wed, 16 Aug 2006 17:01:24 +0200 schrieb Josi:
> Gerd Schuckar schrieb:
>> Hallo,das folgende Code Teil liest genau einen Datensatz aus der
>>
>> $cardata bleibt jedoch leer. Warum?
>> Eigentlich funzt das so. Was habe ich übersehen?
>> Gruß Gerd
> $arrResult = $result->GetArray();
> $arrResult = $arrResult[0];
>
> (Wenn ich dich richtig verstanden habe)
>
> Gruss Josi
Jow, so hatte ich es auch schon mal, aber ohne $arrResult = $arrResult[0];.
Jetzt geht's
Danke für die schnelle Hilfe
Gruß
Gerd