Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme beim Array schreiben

Einklappen

Neue Werbung 2019

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

  • Probleme beim Array schreiben

    Hi,

    ich habe hier grad den Hänger. Derzeit verwende ich ein "hardcoded" Array:
    Beispiel:
    PHP-Code:
    $ids = array(    =>  array('descr' => 1336'sleepingrooms' => 1306'livingarea' => 1305'internalref' => 1295'price' => 1301'location' => 1298'title' => 1292),
                    
    =>  array('descr' => 1285'sleepingrooms' => 1255'livingarea' => 1254'internalref' => 1244'price' => 1250'location' => 1247'title' => 1241),
                    
    =>  array('descr' => 921'sleepingrooms' => 892'livingarea' => 893'internalref' => 903'price' => 897'location' => 900'title' => 906),
                    
    =>  array('descr' => 972'sleepingrooms' => 943'livingarea' => 944'internalref' => 954'price' => 948'location' => 951'title' => 957),
                    
    =>  array('descr' => 1023'sleepingrooms' => 994'livingarea' => 995'internalref' => 1005'price' => 999'location' => 1002'title' => 1008),
                    
    =>  array('descr' => 1074'sleepingrooms' => 1045'livingarea' => 1046'internalref' => 1056'price' => 1050'location' => 1053'title' => 1059),
                    
    =>  array('descr' => 1125'sleepingrooms' => 1096'livingarea' => 1097'internalref' => 1107'price' => 1101'location' => 1104'title' => 1110),
                    
    10 => array('descr' => 1176'sleepingrooms' => 1147'livingarea' => 1148'internalref' => 1158'price' => 1152'location' => 1155'title' => 1161),
                    
    11 => array('descr' => 1227'sleepingrooms' => 1198'livingarea' => 1199'internalref' => 1209'price' => 1205'location' => 1206'title' => 1212)
                    ); 
    Jetzt heb ich diese Daten aber alle in die Datenbank gepackt und möchte das jetzt so wieder auslesen, damit ich es wieder in so ein Array packen kann, denn ich rufe an vielen Stellen die einzelnen Werte so auf:

    $ids[$_REQUEST['category']]['price']

    Irgendwie schnalle ich es aber nicht, wie ich bei meiner SQL Abfrage, die so aussieht:

    $sql = "SELECT category, name, value FROM ".$FEATURESCONFIG."";

    Das alles wieder so in ein passendes Array zu packen.

    $data[] = array($category=> array($name => $value));
    innerhalb einer while ist schon nah dran aber eben nur nah...

    Kann mir jemand kurz einen Tipp geben, wie ich mein Array richtig mit den daten aus der DB schreibe?


    Tausend Dank!!

  • #2
    In deinem Beispiel sehe ich keinen Zusammenhang zwischen category, name, value und deinem Array $ids.

    Kommentar


    • #3
      Also das:

      $ids = array( 3 => array('descr' => 1336,

      entspricht
      3=category
      name=descr
      value=1336

      $ids[3]['descr'] = 1336

      Beantwortet das Deine Frage?

      Kommentar


      • #4
        Dann müsste es wohl so aussehen:
        PHP-Code:
        <?php
            $data 
        = array();
            while(
        $row mysql_fetch_assoc($result)) {
                
        $data[$row['category']] = array(
                                                                
        $row['name'] => $row['value']
                                                            );
            }
        ?>

        Kommentar


        • #5
          Zeig mal deine DB Struktur .. Ich glaub die hast du einfach nur falsch aufgebaut !!!

          weil mit xabbuh's Code bekommst du nicht das Array was du oben gepostet hast ...

          Kommentar


          • #6
            CREATE TABLE `mi_features_config` (
            `id` int(11) NOT NULL auto_increment,
            `projectId` int(11) default NULL,
            `CID` int(11) NOT NULL default '0',
            `name` varchar(50) NOT NULL default '',
            `value` int(11) NOT NULL default '0',
            `lastwritedate` timestamp NULL default '0000-00-00 00:00:00',
            PRIMARY KEY (`id`,`CID`,`name`,`value`)
            )

            CID ist die category

            Kommentar


            • #7
              Noch ein Beispiel für 2 Kategorien ID 3 und ID 4:

              316;1;3;"descr";1336;"2006-06-20 16:46:25"
              317;1;3;"sleepingrooms";1306;"2006-06-20 16:46:25"
              318;1;3;"livingarea";1305;"2006-06-20 16:46:25"
              319;1;3;"internalref";1295;"2006-06-20 16:46:25"
              320;1;3;"price";1301;"2006-06-20 16:46:25"
              321;1;3;"location";1298;"2006-06-20 16:46:25"
              322;1;3;"title";1292;"2006-06-20 16:46:26"
              323;1;4;"descr";1285;"2006-06-20 16:46:26"
              324;1;4;"sleepingrooms";1255;"2006-06-20 16:46:26"
              325;1;4;"livingarea";1254;"2006-06-20 16:46:26"
              326;1;4;"internalref";1244;"2006-06-20 16:46:26"
              327;1;4;"price";1250;"2006-06-20 16:46:26"
              328;1;4;"location";1247;"2006-06-20 16:46:26"
              329;1;4;"title";1241;"2006-06-20 16:46:26"

              Kommentar


              • #8
                *hm* Na toll .. das ja vllt doof .. aber naja ..

                "descr" & "sleepingrooms" & "..." Könnte man in ne externe Tabelle auslagern .. und diese dann per Fremdschlüssel verknüpfen ..

                NORMALISIERUNG...

                Du müsstest dir also zunächst einmal ein Array bauen das die Struktur hat :

                PHP-Code:
                <?

                $id['3'] =  array('descr' => 1336, 'sleepingrooms' => 1306, 'livingarea' => 1305, 'internalref' => 1295, 'price' => 1301, 'location' => 1298, 'title' => 1292);

                // ...

                ?>
                Oder so ähnlich ! das schaffst du mit einer While Schleife. Und durch eine If-Klausel kannst du dann den wechsel zu "$id['4']" tätigen ..

                array_push() sollte dir helfen ..

                Kommentar


                • #9
                  Ok, hier die Lösung:

                  $temp[$CID][$name] = $value;

                  Kommentar

                  Lädt...
                  X