» Bräuchte da mal hilfe - DB-Abfrage

preg_replace / preg_match BenchmarkNeuen Thread eröffnenNeue Antwort erstellenFirst-Click-Free Script - 1. Besucher & Google sieht Seite
AutorNachricht
Junior 

Name: Ronny
Geschlecht:
Fahrzeug: FK2
Anmeldedatum: 25.03.2006
Beiträge: 67
Wohnort: Hofheim am Taunus


Meine eBay-Auktionen:
25.02.2009, 20:53
zitieren

Hi leuz. Ich bin grad dabei nen Browsergame zu coden. Es geht im groben um Autorennen.
Nun hab ich ein Problem mit der einberechnung der Tuningteile.

Er berechnet die Teile einfach nicht mit zu den standardwerten dazu.

Der Code sieht wiefolgt aus:

Zitat
# Berechnung Wagen 1
# PS

$ps_tuning = $wagen1["ps"];

$query2 =
mysql_query("SELECT * FROM tuning_gekauft WHERE userid = '$user1'");

while ($array2 = mysql_fetch_array($query2))
{
$ps_tuning2 =
mysql_fetch_array(mysql_query("SELECT * FROM tuning WHERE id = '$array2[teileid]' AND wagenid = '$w1id'"));
$ps_tuning = $ps_tuning + $ps_tuning*$ps_tuning2
['ps']/100;
}

echo $ps_tuning."<br>".$wagen1["ps"]."<br><br>"; # Ausgabe zum testen

$w1ps = $ps_tuning;


Kann mir da jemand helfen?


pn email aim yim
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52434
Wohnort: Lohmar


Meine eBay-Auktionen:
25.02.2009, 21:05
zitieren

mach mal das:
# Berechnung Wagen 1
# PS
$ps_tuning = $wagen1["ps"];

$query2 = mysql_query("SELECT * FROM tuning_gekauft WHERE userid = '$user1'");

while ($array2 = mysql_fetch_array($query2))
{
echo("SELECT * FROM tuning WHERE id = '$array2[teileid]' AND wagenid = '$w1id'");
$ps_tuning2 = mysql_fetch_array(mysql_query("SELECT * FROM tuning WHERE id = '$array2[teileid]' AND wagenid = '$w1id'"));
$ps_tuning = $ps_tuning + $ps_tuning*$ps_tuning2['ps']/100;
}

echo $ps_tuning."<br>".$wagen1["ps"]."<br><br>"; # Ausgabe zum testen

$w1ps = $ps_tuning;

Du schreibst, dass er die Werte nicht addiert. Ich gehe daher davon aus, dass die while()-Bedingung nicht zutrifft.

Dann eine sicherheitsrelevante Frage. Woher nimmst Du $user1? Kommt die aus der URL per $_GET? Dann solltest Du auf den Wert in der DB-Abfrage intval() anwenden, damit man nicht über die URL andere Sachen mit Deiner DB-Abfrage machen kann, die Du nicht so gerne hättest ;)


pn email
Junior 

Name: Ronny
Geschlecht:
Fahrzeug: FK2
Anmeldedatum: 25.03.2006
Beiträge: 67
Wohnort: Hofheim am Taunus


Meine eBay-Auktionen:
25.02.2009, 21:18
zitieren

Hier noch alles zu user1

Zitat# User 1
$user1 = $_GET["user1"];
$w1id = $_GET["auto1"];
$user1 = mysql_fetch_array(mysql_query("SELECT * FROM benutzerdaten WHERE id = '$user1'"));
$wagen1 = mysql_fetch_array(mysql_query("SELECT * FROM wagen WHERE id = '$w1id'"));


Und das mit dem Echo geht net :( Ich verzweifel grad voll :(


pn email aim yim
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52434
Wohnort: Lohmar


Meine eBay-Auktionen:
25.02.2009, 21:32
zitieren

Das ist nicht gut ;)

Also erstmal eine Grundregel in Sachen Sicherheit:
Verlasse Dich nie auf das was per $_GET, $_POST, $_COOKIE und Co. kommt!

Wenn Du DB-Abfragen hast, solltest Du IMMER die Werte wie folgt sichern:
Zahlen: intval($var)
Zeichenketten: mysql_real_escape_string($string)

D.h. für Dein genanntes Beispiel:
# User 1
$user1 = $_GET["user1"];
$w1id = $_GET["auto1"];
$user1 = mysql_fetch_array(mysql_query("SELECT * FROM benutzerdaten WHERE id = " . intval($user1)));
$wagen1 = mysql_fetch_array(mysql_query("SELECT * FROM wagen WHERE id = " . intval($w1id)));

Du könntest natürlich auch vorher auf die Variablen intval() anwenden, aber es ist wichtiger, dass man es sich bei den DB-Abfragen einprägt. Wie Du siehst, habe ich übrigens die Anführungszeichen weggelassen. Diese brauchst Du nicht, wenn Du mit Zahlen vergleichst z.B.:

Vergleich mit Zahl:
SELECT * FROM table WHERE id = 1

Vergleich mit Zeichenkette:
SELECT * FROM table WHERE name = 'mustermann'

Da Du kein Ergebnis für mein Echo bekommen hast heißt das, das die Bedingung für while() nicht erfüllt wird.

Daher teste die 1. Abfrage, in dem Du sie per echo() ausgibst (in die Zeile vor "$query2 ="):
echo("SELECT * FROM tuning_gekauft WHERE userid = '$user1'");

Du solltest übrigens so arbeiten:
mysql_fetch_array($query, MYSQL_ASSOC)

MYSQL_ASSOC sorgt dafür, dass nur die Spaltennamen ausgegeben werden. Siehe:
http://de2.php.net/mysql_fetch_array

Gruß


pn email
Junior 

Name: Ronny
Geschlecht:
Fahrzeug: FK2
Anmeldedatum: 25.03.2006
Beiträge: 67
Wohnort: Hofheim am Taunus


Meine eBay-Auktionen:
27.02.2009, 11:34
zitieren

aha

Wieder was gelernt :D Ich danke dir. Man lernt in PHP halt nie aus :hrhr:


Werd ich dann gleich mal ausprobieren, wenn ich dazu komme :)


pn email aim yim
Gast 
27.02.2009, 11:34
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "Bräuchte da mal hilfe - DB-Abfrage" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Teilenummer abfrage wer Kennt des teil
Hallo Freunde meine Frage ist arbeitet jemand bei einem VW Autohaus und kann mir bitte sagen zu welchem Auto die Teile gehören hab nehmlich die zwei endtöpfe Geschenk bekommen und soll damit machen was ich will also dachte ich mir ich Verkauf die da ich...
von Giova
0
427
28.05.2011, 08:10
Giova
MySQL Abfrage wie in der Konsole formatiert ausgeben
Gerade wenn man in Foren Ergebnisse teilen möchte, bietet sich ein formatiertes Ergebnis einer Datenbankabfrage an: mysql> select &#x2A; from users; +-----------+------------+-------+ | firstname | city | zip | +-----------+------------+-------+ |...
[PHP]von mgutt
0
1.412
07.02.2017, 22:44
mgutt
Abfrage, ob Seite zur Zeit in Printversion vorliegt
Hi Leute :D ich möchte meiner Druckversion ein anderes Layout geben, als meiner üblichen Seite. Dazu muss ich in meiner PHP, die die Seite erstellt eine Abfrage einbauen, die kontrolliert ob printable=yes zutrifft. Dabei wollte ich vermeiden, die URL...
von tichan64
1
83
25.08.2013, 16:06
mgutt
Smartphone PIN Abfrage zu Hause (WLAN) abschalten mit Safe Areas
Ich möchte mein Smartphone absichern. Dazu nutze ich entweder die Muster- oder die PIN-Sperre. Zu Hause erscheint beides recht sinnfrei. Hier brauche ich keinen Schutz. Daher habe ich mir mit dieser App...
von mgutt
1
496
22.11.2013, 15:38
mgutt
Hilfe mein ED7 Spackt ab!!!! Hilfe Hilfe
Hi habe meine erstes großes Problem mit mein civic ED7!!! und zwar er springt manchmal sehr gut an!!! und manchmal so gut wie gar nicht und denn hält er irgendwie die ganze zeit im stand eine drehzahl von 3000 Umdrehungen!!! Und wenn ich ihn danach noch...
von Matzehh
6
855
30.05.2006, 11:15
Marouk
Brauche dringent hilfe beim Verstärker/Autospeakers !!! Bitte hilfe mich !!!
Hallo allerseits, P.s. Ich bin Hollander, wohne in Deutschland, bitte verzeih mein grammatik!! Ich bin total neu hier und bin eigentlich nur auf der suche nach hilfe/antwort auf ein frage und hoffe jemanden kan mich hilfen? Vorraus gesagt muss...
von Amsatff.Amy
2
1.256
18.04.2012, 19:33
Ralf
HILFE Civic VI Fastback 1,4 16V 66kw Bj. 97 HILFE MOTOR GEHT AUS
Hallo Civic MA MB Freunde,, Kollege hat ein Tollen Civic VI Fastback 1,4 16V 66kw Bj. 97 124Tkm. Am Dienstag ging der Civic zur Arbeit einfach aus.. Lang hin und her getestet.. Mag nimmer. ADAC kam und war überrascht.. Ein Honda bleibt auch mal stehen,...
von CRV-BERT
6
313
01.06.2019, 10:09
CRV-BERT
(Hilfe!!)Meine Honda crx ed9 Sprinkt nicht mehr an (Hilfe!)
Hallo Leute ich habe vollgendes problem mit meinen rex der sprinkt nicht mehr an. Die sachen habe ich überprüft - Er bekommt keinen zündfunken - Zündspule i.o(sagt die Werkstatt) - Zündegeber i.o(sagt die Werkstatt) - Sprit bekommt er auch -...
von cd1gls
5
721
11.05.2009, 16:06
cd1gls
Honda Accord 2,2l Diesel POWERERWEITERUNG HILFE HILFE HILF
He Jungs hoffe Ihr könnt mir ein Helfen: Habe mir vor 4 Jahren " Damals den Neuen Honda Accord CN1" gekauft!. Anfang hat mir die 140 Diesel PS gereicht aber nicht lange danach so 15.000 Km habe ich mir ein Chiptuning " software up....
von TYP R Chris
2
1.549
10.08.2010, 10:55
felline
1. Hilfe Kurs - brauche Hilfe von unseren bayrischen Forenmitgliedern
Hallo Zusammen, meine kleine Schwester in die große weite Welt hinausgezogen und studiert nun in Augsburg Wirtschaftswissenschaften... Die Kleine ist inzwischen richtig erwachsen geworden und möchte dort auch ihre Führerscheinprüfung machen oder besser...
von Jens Strieger
5
722
15.09.2012, 08:43
xen_hb
© 2004 - 2026 www.programmierer-forum.de | Communities | Impressum |