Variablenwert während einer While-Schleife um Wert X erhöhen
ExactControl
- php
0 ChrisB0 ExactControl0 ChrisB
Folgende Aufgabenstellung:
Es soll eine Liste ausgelesen werden, wobei jede Position eine X , Y und Z Achse hat. In erster Aufgabe soll die X Achse , ausgehend von einem festen Wert, mit jeder weiteren Position um den Wert 100 erhöht werden.
Folgenden Code habe ich bisher geschrieben, wobei ich aber an besagter Erhöhung der Intervall-Variable festhänge.
// Definition der Vaiablen
$x = '195830'; // X-Achse der Ausgangsposition
$y = '104548'; // Y-Achse der Ausgangsposition
$z = '-16357'; // Z-Achse der Ausgangsposition
// ************************************************************************************** //
mysql_select_db($dbase, $connect) or die ("Konnte die Datenbank nicht waehlen.");
$query = "SELECT * FROM spawnlist";
$result= mysql_query($query);
// Ausgabetabelle - Tabellenkopf
echo "
<table border=\"0\" width=\"100%\" colspan=\"5\">
<tr>
<td width=\"20px\"><b>id</b></td>
<td width=\"180px\"><b>location</b></td>
<td width=\"100px\"><b>locx</b></td>
<td width=\"100px\"><b>locy</b></td>
<td width=\"100px\"><b>locz</b></td>
</tr>
</table>";
// Abfrageschleife
while ($row = mysql_fetch_array($result))
{
$npcid = $row['id'];
if ($npcid == 1)
{
$npcid = $row['id'];
$loc = $row['location'];
$dblocx = $x;
$dblocy = $y;
$dblocz = $z;
}
else
{
$int = '100';
$dblocx = $x + $int;
$npcid = $row['id'];
$loc = $row['location'];
$dblocy = $y;
$dblocz = $z;
}
// Ausgabetabelle - Tabelleninhalt
echo "
<table border=\"0\" width=\"100%\" colspan=\"5\">
<tr>
<td width=\"20px\">$npcid</td>
<td width=\"180px\">$loc</td>
<td width=\"100px\">$dblocx</td>
<td width=\"100px\">$dblocy</td>
<td width=\"100px\">$dblocz</td>
</tr>
</table>";
}
Um das nochmal zu verdeutlichen. Die Schleife prüft ob es sich bei dem Eintrag um die ID 1 handelt. Falls ja, werden die Ausgangswerte
für die x, y und z Achse gesetzt. Sollte es bereits der 2te Eintrag sein,
soll der vordefinierte X Wert um 100 erhöht werden.
Ab der 3ten Position, soll somit der X Achsenwert um 200 erhöht werden... uns..
Konnte ich es soweit, verständlich erklären ?
Hier ein Link zu besagter Liste und bisherigem Ergebnis:
Positionenlisten
Hi,
$x = '195830'; // X-Achse der Ausgangsposition
$y = '104548'; // Y-Achse der Ausgangsposition
$z = '-16357'; // Z-Achse der Ausgangsposition
Warum benutzt du Strings, um nummerischer Werte zu notieren?
Um das nochmal zu verdeutlichen. Die Schleife prüft ob es sich bei dem Eintrag um die ID 1 handelt. Falls ja, werden die Ausgangswerte
für die x, y und z Achse gesetzt. Sollte es bereits der 2te Eintrag sein,
soll der vordefinierte X Wert um 100 erhöht werden.
Ab der 3ten Position, soll somit der X Achsenwert um 200 erhöht werden... uns..
D.h. also, eigentlich willst du auch den Wert, den du draufaddierst, in jedem Schleifendurchlauf um 100 erhoehen?
Ja dann tu das doch.
MfG ChrisB
Hi,
$x = '195830'; // X-Achse der Ausgangsposition
$y = '104548'; // Y-Achse der Ausgangsposition
$z = '-16357'; // Z-Achse der AusgangspositionWarum benutzt du Strings, um nummerischer Werte zu notieren?
Die Werte welche in der Datenbank hinterlegt sind, sind generell anderst.
Ich möchte neue Werte hinterlegen, als die, welche in der DB momentan vorhanden sind. Daher gebe ich hier neue Werte als Ausgangsposition an.
Um das nochmal zu verdeutlichen. Die Schleife prüft ob es sich bei dem Eintrag um die ID 1 handelt. Falls ja, werden die Ausgangswerte
für die x, y und z Achse gesetzt. Sollte es bereits der 2te Eintrag sein,
soll der vordefinierte X Wert um 100 erhöht werden.
Ab der 3ten Position, soll somit der X Achsenwert um 200 erhöht werden... uns..D.h. also, eigentlich willst du auch den Wert, den du draufaddierst, in jedem Schleifendurchlauf um 100 erhoehen?
Ja dann tu das doch.
Richtig, bei jedem Durchlauf der Schleife, soll der X Wert, jedesmal um 100 erhoeht werden. Aber ich bin mir in der Schreibweise dieser count++ funktion nicht sicher.
Hi,
Warum benutzt du Strings, um nummerischer Werte zu notieren?
Die Werte welche in der Datenbank hinterlegt sind, sind generell anderst.
Ich möchte neue Werte hinterlegen, als die, welche in der DB momentan vorhanden sind. Daher gebe ich hier neue Werte als Ausgangsposition an.
Aha ... du hast also die Frage nicht mal ansatzweise verstanden, hm?
D.h. also, eigentlich willst du auch den Wert, den du draufaddierst, in jedem Schleifendurchlauf um 100 erhoehen?
Ja dann tu das doch.Richtig, bei jedem Durchlauf der Schleife, soll der X Wert, jedesmal um 100 erhoeht werden. Aber ich bin mir in der Schreibweise dieser count++ funktion nicht sicher.
$var++ erhoeht lediglich um den Wert 1.
Also nutze doch einfach den Plus-Gleich-Operator.
Und wie's aussieht, kannst du dir auch dein if mit der (vermeintlichen) Sonderbehandlung der ID 1 sparen.
MfG ChrisB
Richtig, bei jedem Durchlauf der Schleife, soll der X Wert, jedesmal um 100 erhoeht werden. Aber ich bin mir in der Schreibweise dieser count++ funktion nicht sicher.
$var++ erhoeht lediglich um den Wert 1.
Also nutze doch einfach den Plus-Gleich-Operator.Und wie's aussieht, kannst du dir auch dein if mit der (vermeintlichen) Sonderbehandlung der ID 1 sparen.
MfG ChrisB
Wüsste ich, wie ich diesen Vorschlag anwende, würde ich dieses tun.
Aber da mein Wissen relativ begrenzt ist, benötige ich hier ein praktisches Beispiel, anstatt eines guten Vorschlag.
Sprich, wie hat es auszusehen.
Als Steigerung kommt hinzu,dass nach 100 Positionen, der Y Wert 1x um 100 erhöht werden soll und dann wieder mit dem Startwert für X wieder begonnen werden soll. Also alle 100 Positionen soll sich Y auch um 1x 100 erhöhen.
Zunächst reicht mir aber ein praktisches Beispiel für die erste Version.
Richtig, bei jedem Durchlauf der Schleife, soll der X Wert, jedesmal um 100 erhoeht werden. Aber ich bin mir in der Schreibweise dieser count++ funktion nicht sicher.
wie schon gesagt count++ erhöht den Wert um 1
man könnte es auch anders schreiben:
count+=1
das führt zu: count = count + 1
wenn ich jetzt eine Variable um 100 erhöhen will, was machen wir da wohl ... richtig:
count = count + 100
oder
count+=100
... aber das hätte dir eine vernünftige Suche bei einer Suchmaschine deiner Wahl auch sagen können
Hi,
Wüsste ich, wie ich diesen Vorschlag anwende, würde ich dieses tun.
Aber da mein Wissen relativ begrenzt ist, benötige ich hier ein praktisches Beispiel, anstatt eines guten Vorschlag.Sprich, wie hat es auszusehen.
So, wie ich es beschrieb.
Wenn du Probleme bei der Umsetzung hast, beschreibe bitte *konkret*, welche das sind.
Nur "isch nix kapieren" ist mir zu wenig.
Als Steigerung kommt hinzu,dass nach 100 Positionen, der Y Wert 1x um 100 erhöht werden soll und dann wieder mit dem Startwert für X wieder begonnen werden soll. Also alle 100 Positionen soll sich Y auch um 1x 100 erhöhen.
Schoen, dass du das jetzt schon erwaehnst ...
ABer auch kein groesseres Problem, dann laesst man halt einen Zaehler mitlaufen, fragt dessen Wert ab, und reagiert entsprechend darauf.
Zunächst reicht mir aber ein praktisches Beispiel für die erste Version.
Gut.
Liefere deinen Versuch der Umsaetzung ab, mit nachvollziehbarer Beschreibung, was nicht klappt oder unverstaendlich ist - dann koennen wir weitersehen.
MfG ChrisB