Hi
ich bin gerade an einer
SQL abfrage in Delphi 2005
PE mit der libmysql.dll und
mysql.pas. Allerdings bekomme ich ständig eine fehlermeldung das etwas mit der Abfrage nicht stimmt ich hab eine vergleichbare abfrage bereits in PHP geschrieben und dort funzt sie ohne Probleme.
Alos hier mal der entsprechende Delphi code.
Delphi-Quellcode:
var
_myRes: PMySQL_Res;
_myRow: PMySQL_Row;
mengeneu: integer;
begin
query:=PChar('
SELECT * FROM warenkorb WHERE userid ="'+inttostr(Form3.userid)+'
" AND artikelnr ="'+edit1.Text+'
"');
mysql_real_query(_myCon,
query, Length(
query));
_myRes := mysql_store_result(_myCon);
_myRow := mysql_fetch_row(_myRes);
{$Region 'if _myRow[2] > 0'}
if strtoint(_myRow[2]) > 0
then
begin
mengeneu:= strtoint(_myRow[2])+strtoint(edit4.Text);
query:=PChar('
UPDATE warenkorb SET menge ="'+inttostr(mengeneu)+'
" WHERE userid ="'+inttostr(Form3.userid)+'
" AND artikelnr ="'+edit1.Text+'
"');
mysql_real_query(_myCon,
query, Length(
query));
end
und hier nun das vergleichbare PHP element
Code:
$abfrageadd = "SELECT * FROM warenkorb WHERE userid = '$user' && artikelnr = '$_POST[artikelnr]'";
$ergebnisadd = mysql_query($abfrageadd);
while($prodadd = mysql_fetch_object($ergebnisadd)){
$mengeold=$prodadd->menge;}
if($mengeold>0){
$mengenew=$mengeold+$_POST['menge'];
$aendern1 = "UPDATE warenkorb Set menge = '$mengenew' WHERE userid = '$user' && artikelnr = '$_POST[artikelnr]'";
$update1 = mysql_query($aendern1);}
Bei der Abfrage besteht die möglichkeit, dass durch die einscränkung mit WHERE nach Datensätzen gesucht wird die nicht existen sind. Doch mit PHP mach dies ja keine Problem und ich dacht das es auch in Delphi dann kein Problem sein dürfte.
Ich hoffe ihr könnt mir folgen und helfen
MfG
BastardOp