Array in Script integrieren

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array in Script integrieren

    Hallo zusammen,

    ich habe ein kleines PHp / Mysql-Problem.
    In die Datenbank werden Termine eingetragen. Das Feld hat dann folgenden Wert:

    09.06||10.06||11.06||12.06||13.06||14.06||15.06
    (die einzelnen Daten sind also mit Pipes getrennt)

    In einem Kalender-Script sollen diese Daten nun ausgewertet werden. Um zum Beispiel den Juni anzuzeigen, wird dieser per
    PHP-Code:
    $juni = array(
    6=>array(NULL,'rent'),
    7=>array(NULL,'rent'),
    8=>array(NULL,'rent'),
    12=>array(NULL,'rent'),
    13=>array(NULL,'rent'),
    25=>array(NULL,'rent'),
    ); 
    terminlich gesteuert.

    Wenn ich jetzt die Datenbank auslese, dann erhalte ich zwar einen Array, der (per echo-Befehl) auch exakt das ausliefert, was ich gerne hätte, aber ich bekomme die Inhalte nicht direkt in das Script integegiert.

    So sieht der Befehl bis jetzt aus:
    PHP-Code:
    $ausgabe str_replace("||""""$ausgabe");
    $ausgabe str_replace("09.06""9=>array(NULL,'rent'),<br>""$ausgabe");
    $ausgabe str_replace("10.06""10=>array(NULL,'rent'),<br>""$ausgabe");
    $ausgabe str_replace("11.06""11=>array(NULL,'rent'),<br>""$ausgabe");
    $ausgabe str_replace("12.06""12=>array(NULL,'rent'),<br>""$ausgabe");
    $ausgabe str_replace("13.06""13=>array(NULL,'rent'),<br>""$ausgabe");
    $ausgabe str_replace("14.06""14=>array(NULL,'rent'),<br>""$ausgabe");
    //usw. und so fort 
    Ich entferne also alle Pipes, und wandle die Daten in das um, was ich später benötige.

    Wenn ich nun "print $ausgabe;" eingebe, dann erscheint es exakt so, wie es im späteren Teil des Scripts erscheinen soll (z.B. 9=>array(NULL,'rent'),)
    PHP-Code:
    $juni = array(
    print 
    $ausgabe;
    ); 
    funktioniert natürlich nicht, aber ich habe nichts gefunden, wie es denn nun funktioniert. Irgendwie stehe ich da auf dem Schlauch...

  • #2
    suchst du eval?

    Auch wenns vielleicht hilft, solltest du dir trotzdem mal generelle Gedanken über deine Programmierung machen. Ich hab zwar keine Ahnung, was dein Ziel ist, aber geht mit sicherheit einfacher und sauberer.

    Kommentar


    • #3
      Ich hab zwar keine Ahnung, was dein Ziel ist, aber geht mit sicherheit einfacher und sauberer
      Das kann ich mir gut vorstellen

      Es ist so, dass ich verschiedene Plattformen unter einen Hut bringen muss, und - wie man sieht - eher der Handwerker in der PHP-"Programmierung" bin.

      Das Problem ist, dass mir der echo-Befehl nicht weiterhilft, da die Zeichenketten ja direkt ins Script integiert werden müssen.

      Falls jemand eine Ahnung hat, wie den Code "verschönern" kann, dann habe ich dafür immer ein offenes Ohr!!

      Kommentar


      • #4
        Versuch mal

        PHP-Code:
        $juni explode('||'$ausgabe);

        echo 
        "<pre>";
        print_r($juni); 
        Somit hast du schon mal ein Array aus deinen Daten, die allerdings keinen Key haben. (Anhand dieser Daten könntest du allerdings ein zweites explode() laufen lassen und als Trenner den punkt aus dem Datum nehmen und das ganze wieder zusammenstricken.

        Mit einem preg_match_all und nem regex wurde das bestimmt auch irgendwie gehen.
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          Irgendwie komme ich nicht weiter. Vielleicht habe ich ein bißchen undeutlich ausgedrückt, deswegen nochmal in aller Kürze:

          In der Datenbank steht: 09.06||10.06||14.06||15.06||16.06||17.06
          (dies sind Datumsangaben).

          Dieses soll automatisch innerhalb des Scripts generiert werden in
          PHP-Code:
          $juli = array(
          9=>array(NULL,'rent'),
          10=>array(NULL,'rent'),
          14=>array(NULL,'rent'),
          15=>array(NULL,'rent'),
          16=>array(NULL,'rent'),
          17=>array(NULL,'rent'),
          ); 
          Eine Darstellung von 9=>array(NULL,'rent') per echon ist kein Problem, aber das ganze soll ja direkt im Script verarbeitet werden.

          Danke für die Mühen aber schon einmal im Vorfeld!!

          Kommentar


          • #6
            jo, deswegen hatte ich von eval() gesprochen..

            Alles in allem ist das aber absolut überflüssig und geht mit sicherheit einfacher.

            Kommentar


            • #7
              Hm, okay - Danke erstmal.

              Ich muss leider erkennen, dass diese Aufgabe meine Fertigkeiten etwas überschreitet, also muss ich das wohl in Auftrag geben. Ärgerlich, aber ich bin mal wieder um einige Erfahrungswerte reicher - und um einige Stunden Freizeit ärmer :-)

              Kommentar


              • #8
                Ich finde es immer ärgerlich, wenn ein Thread mit den Worten "Hab's hinbekommen" endet, ohne den finalen Lösungsweg anzugeben, deswegen hier mein Code
                PHP-Code:
                $juni     = array();
                $strings  explode('||'$ausgabe);

                foreach (
                $strings as $key => $value) {
                  
                $str_item             explode('.'$value);
                  
                $juni$str_item[0] ] = array(NULL,'rent');

                wobei $ausgabe zum Beispiel folgenden Wert hat: "09.06||10.06||11.06||12.06||13.06||14.06||15.06"

                Kommentar

                Lädt...
                X