explode() - Problem, count? Schleife?
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abbrechen
art
code
einheit
einzelnes feld
element
funktion
liste
menge
problematik
ressource
safe
schleife
setzen
trennung
typ
url
wert berechnen
werte auslesen
zeichen
-
Guten Abend,
ich bin gerade dabei ein Skript zu erstellen welches im ungefähren folgendes tut:
1. Aus der DB wird ein Wert abgefragt der ungefähr so aussieht: 1,5;2,10;
Hier ist 1 die ID einer Einheit und 5 die Menge, dann die Trennung; dann ID 2 und Menge 10
2. Erstes explode() mit dem Zeichen ; damit ich 1,5 und 2,10 als einzelne Strings habe
3. Zweites explode() mit dem Zeichen , damit ich A die ID habe und B die Menge
Nun die Problematik, da es zwei Einheiten sind, muss ich eine Art Schleife nutzen um für jede ID und Menge den "Wert" in Ressourcen zu berechnen.
Leider habe ich nur beschränkte PHP Kentnisse und das hier übersteigt es schon ein wenig.
Ich hoffe mir kann hier einer helfen, derjenige mit den besseren PHP-Wissen im Team ist derzeit im Urlaub :S
Grüße GlowSoft
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Google einfach mal nach foreach()!
PS: Warum machst du nicht einfach mehrere Tabellenspalten?
LG cookies -
In welcher Form willst du die Ergebnisse denn haben?
(Mal ganz davon abgesehen, dass das hier ein mittelschwerer Fall von Datenbankmissbrauch ist ) -
Da du das ganze ja sowieso aus der DB holst: Warum machst du nicht einfach den Aufbau der Datenbanktabelle wie folgt:
ID | Menge -----+---------- 1 | 5 2 | 10 3 | xxx 4 | xxx
dann liest du es einfach aus der DB aus, und hast alles schön getrennt.
falls du die datenbank nicht umbauen willst:
$array1 = explode(";", $suchstring); foreach($array1 as $element) { $array2 = explode(",", $element); echo $array2[0]; //gibt die IDs aus echo $array2[1]; //gibt die mengen aus }
mfg
ps: der code ist ungetestet, sollte aber gehen
edit: Rechtschreibfehler ausgebessert!!
Beitrag zuletzt geändert: 28.3.2010 18:42:59 von syberpsace -
Danke schonmal für die schnelle Hilfe, ich werde es mir mal anschauen und auch die Funktion der foreach-Schleife genauer betrachten.
Edit: Ich glaube es wurde auch ein wenig falsch verstanden, jede ID hat ihr einzelnes Feld, aber worum es jetzt geht ist eine Art Bauschleife wie in Ogame z.B.
Beitrag zuletzt geändert: 28.3.2010 18:45:47 von glowsoft -
Dann halt:
ID | Typ | Menge -----+-----+---------- 1 | 1 | 5 1 | 2 | 10 1 | 3 | xxx 1 | 4 | xxx 2 | 1 | 5 2 | 2 | 10 2 | 3 | xxx 2 | 4 | xxx x | 1 | 5 x | 2 | 10 x | 3 | xxx x | 4 | xxx
Beitrag zuletzt geändert: 28.3.2010 18:50:49 von theseven -
Ich denke, dass er will, dass wenn 2 mal die selbe ID vorkommt, die beiden Werte addiert werden. Das geht mit diesem Code:
$wert = '1,5;2,10;'; $finish_array = array(); $first_array = explode(';', $wert); foreach($first_array as $a) { $second_array = explode(',', $a); if(!isset($finish_array[$second_array[0]])) { $finish_array[$second_array[0]] = $second_array[1]; } else { $finish_array[$second_array[0]] += $second_array[1]; } } echo '<pre>'; print_r($finish_array); echo '</pre>';
Beitrag zuletzt geändert: 28.3.2010 18:54:43 von drafed-map -
Vielen Dank!
Ich habe das Problem gelöst!
Nur zur Erklärung:
Vielleicht kennen einige von euch Ogame, dort konnte man Flotten in eine Bauliste packen aber nicht mehr abbrechen.
Bei Halo-Galaxy befindet sich die Funktion zum abbrechen aus der Bauliste in Entwicklung, anfangs hatte ich geplant alle auf einmal zu löschen was recht unpraktisch ist, daher alle Werte auslesen, Wert berechnen, Liste auf 0 setzen.
Ich habe es jetzt so gelöst das der Nutzer auswählt was entfernt wird, er die Ressourcen zurückerhält und die ID aus Bauliste entfernt wird. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage