kostenloser Webspace werbefrei: lima-city


explode() - Problem, count? Schleife?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    g******t

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Google einfach mal nach foreach()!

    PS: Warum machst du nicht einfach mehrere Tabellenspalten?

    LG cookies
  4. In welcher Form willst du die Ergebnisse denn haben?
    (Mal ganz davon abgesehen, dass das hier ein mittelschwerer Fall von Datenbankmissbrauch ist :-P )
  5. 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
  6. Autor dieses Themas

    g******t

    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
  7. 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
  8. 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
  9. Autor dieses Themas

    g******t

    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.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!