PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP/MySQL]


Gast
2006-04-12, 10:30:32
Grüßt euch!

Meine Frage ist eigentlich ganz leicht erklärt. Und zwar will ich einen eintrag den ich aus der Datenbank lese mal x (z. B.: 1000) multiplizieren. Kann mir da jemand weiterhelfen?

$id=$_GET['id'];

$sql = "SELECT * FROM tec WHERE id = '$id' ";

$result = mysql_query($sql) OR die(mysql_error());

if(mysql_num_rows($result)) { // gucken ob was im Query drinsteckt
while($row = mysql_fetch_assoc($result)) {
echo "Points: ".$row['points']." mal 1000 und dann is jut!";

Gast
2006-04-12, 11:28:31
while($row = mysql_fetch_assoc($result)) {
echo "Points: ".intval($row['points'])*1000." mal 1000 und dann is jut!";
}

Kinman
2006-04-12, 11:55:30
Afair geht das auch direkt mit dem SQL Syntax:


"SELECT (wert * " . $x . ") AS multi FROM tabelle;"
mysql_result(.... ,"multi");


mfg Kinman

/dev/NULL
2006-04-12, 12:41:26
Un bitte: ich hoffe das Du prüfst das $_GET['id'] auch ne Zahl ist und nicht ein
'; drop table tec ' o.ä.

intval, is_numeric o.ä. Bedenke: Traue niemals ungeprüften Usereingaben oder Sachen die vom Browser kommen.

Gast
2006-04-14, 10:24:03
Danke für die Antworten. Hat auch funktioniert! Doch etz hab ich was auf php.net gesehn, was ich wirklich net versteh:

<?PHP
echo intval(42, 8); // 42
echo intval('42', 8); // 34
?>

Warum zieht er beim zweiten den Wert ab? Und wie funktioniert dann? + und / ?

ich.com.sie.net
2006-04-14, 10:30:11
Kurze Frage, funktioniert es auch wenn man genauso mit dem Wert "UPDATE" in die Datenbank einliest?

$sql = "UPDATE inhalt SET points = '$points . * 1000 ';";

Kinman
2006-04-14, 10:51:11
natürlich, nur musst du eventuell noch klammern setzen.
Du hast aber 2 Möglichkeiten:
1. $sql = "UPDATE inhalt SET points = '$points * 1000';";
2. $sql = "UPDATE inhalt SET points = '" . ($points * 1000) . "';";

ich.com.sie.net
2006-04-14, 10:54:02
Dankö !!

Gast
2006-04-14, 14:05:27
'; drop table tec '

Bitte wenn man keine Ahung von SQL Injections via PHP hat auch nicht über solche sachen reden!

Gast
2006-04-14, 14:27:30
Bitte wenn man keine Ahung von SQL Injections via PHP hat auch nicht über solche sachen reden!
Dann klär du uns mal auf!

/dev/NULL
2006-04-17, 16:58:28
Keine Ahnung haben?? jo.. mehr als manch andere und wenn das Ding jetzt nicht 100% passt ist das auch kein Problem, ich mach keine Analyse für lau.

Die Idee das man Usereingabe kontrollieren sollte ist ja hoffentlich dabei rumgekommen.

Und wer sich hinter nem Gast posting versteckt sollte garnicht erst reden..

Gast
2006-04-17, 21:48:37
Und wer sich hinter nem Gast posting versteckt sollte garnicht erst reden..

Aso, Gäste haben also keine Meinung zu haben, haben sich nicht aufzuregen, haben nichts Praktisches zu sagen, und sollten gar nicht hier sein?

ich.com.sie.net
2006-04-17, 22:09:00
jap ^^ Ich mein sich anzumelden is ja keine große Sache...

/dev/NULL
2006-04-17, 23:22:49
Ich kann der Aussage des Gastes die ich zitiert habe keinen praktischen nutzen zusprechen. sry
Wollte damit das 'ich bin anonym und red stuss erstmal so nicht stehen lassen.'

MadMan2k
2006-04-17, 23:30:34
Dann klär du uns mal auf!
PHP trennt die Anweisungen nicht automatisch an ';'

/edit:
ich war nicht der Gast

/dev/NULL
2006-04-18, 00:24:22
Jep.. aber andere Probleme mit SQL Injections gibt es bei PHP denoch.
für sein PHP Beispiel mag das spezielle Beispiel vielleicht falsch gewesen sein, das Problem an sich besteht weiter, je nachdem was er damit im Endeffekt machen will sind andere Auswüchse wie
SELECT * FROM tec WHERE id = '$id' OR 'x'='x' auch nicht gewollt..
um sein Ding besser, sicherer o.ä. zu machen kommt er um validierung der Eingaben nicht rum.
ggf ist ja magic_:quotes an, aber das sind Sachen die sich hin und wieder ändern und einen nicht vom richtig machen abhalten sollten.