SQL Count problem

Tags:    databaser

Jeg har en problem med at lave en count funktion som indeholder en WHERE fra en værdi som indtastes i en "form". Hvad gør jeg forkert.
PS. jeg er nybegynder.

Se kode;

<?php include("standard.php"); ?>
<html>
<head>
<title>DPD Dagsrapport</title>
</head>
<body>
<form method="post" action="<?php echo $PHP_SELF;?>">

</select>
<b>DPD Kvittering:</b><br><br>
Date.: <input type="text" size="8" maxlength="8" name="wplfdud">

<input type="submit" value="OK" name="submit"><br />
<BR><BR><BR>
---------------------------------------<BR>
Underskrift
<BR><BR><BR>
</tr>
<?php

//Establish connection to database
$host = "";
$conn = db2_connect ($host,"", "");
$sql = 'SELECT COUNT(*) FROM EGDTA.WMAPLFP1 WHERE PLFDUD=$wplfdud and PLFKFK='DPD'

GROUP BY PLFDUD, PLFKFK';
$stmt = db2_prepare($conn, $sql);
db2_execute($stmt);
while (db2_fetch_row($stmt)) {
$colli = db2_result($stmt, 0);
print "<br> Antal Colli: $colli ";
}
?>



5 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Wow...det var da godt nok den mest frygtelige navngivning jeg længe har set :)

Men det er nok et problem at du både bruger singlequotes omkring DPD og hele SQL strengen.



ja altså ovenstående er jo da som et minimum korrekt. Derudover fanger mit øje nu hurtigt brugen af register_globals (hvilket let kan lede til sikkerhedsfejl) samt en meget mulig SQL injections... Du bør huske at kalde mysql_real_escape_string på $wplfdud inden du benytter den midt i queryen, og dette gælder i øvrigt for al bruger indtastet data der nogensinde rører en query. Medmindre du ved at disse bør være tal, i dette tilfælde kan det løses ved simpelthen at type-caste dataen til den ønskede type:
Fold kodeboks ind/udKode 


Håber det hjalp



Wow...det var da godt nok den mest frygtelige navngivning jeg længe har set :)

Men det er nok et problem at du både bruger singlequotes omkring DPD og hele SQL strengen.


Sql stringen virker OK hvis jeg laver en almindelig SELECT - svar på "singelquotes".
Jeg forsøgt også at undlade singelqoutes omkring DPD, men med samme resultat.
Iøvrigt tak for svar.



ja altså ovenstående er jo da som et minimum korrekt. Derudover fanger mit øje nu hurtigt brugen af register_globals (hvilket let kan lede til sikkerhedsfejl) samt en meget mulig SQL injections... Du bør huske at kalde mysql_real_escape_string på $wplfdud inden du benytter den midt i queryen, og dette gælder i øvrigt for al bruger indtastet data der nogensinde rører en query. Medmindre du ved at disse bør være tal, i dette tilfælde kan det løses ved simpelthen at type-caste dataen til den ønskede type:
Fold kodeboks ind/udKode 


Håber det hjalp


ok, Jeg bruger ZENDCORE men ikke mod en MYSQL, men directe på en DB2 database i en AS400.
Har du en eksempel på en real_escape_string ?
(tak for svar)



Wow...det var da godt nok den mest frygtelige navngivning jeg længe har set :)

Men det er nok et problem at du både bruger singlequotes omkring DPD og hele SQL strengen.

:D
Så fandt jeg ud af hvad der var galt og en SQL sætning skal omklammers af "" og singleqoutes omkring felter og værdier.
Tak for hjælpen!



t