Seite 1 von 1

Tabelleninhalt auf mehrere Variablen aufteilen?

Verfasst: Fr 16. Dez 2005, 17:45
von lux
Hallo Leute!

Steh mal wieder gewaltig auf der Seife...

Sollte wissen wie man von einer Tabellenzelle folgen Inhalt in mehrere Variablen aufteilt...

505=Testbude&500=Tesstrasse+1a&501=6900&502=Bregenz&506=05577-77777&507=05577-77777&508=0664-4844273&509=office%40luxmedia.at&510=www.luxmedia.at&

und haben sollte ich aber

$505 = Testbude
$500 = Tesstrasse 1a
$501 = 6900
...

Diese werte sollten durch ein Artikelliste ausgelesen und ausgegben werden!

Danke Euch schon jetzt für die rasche Hilfe...!

Greets
LUX

Verfasst: Fr 16. Dez 2005, 18:41
von emergence
mittels explode -> http://at.php.net/manual/en/function.explode.php
und foreach -> http://at.php.net/manual/en/control-str ... oreach.php

sieht in etwa so aus.. (nicht getestet...)

Code: Alles auswählen

<?php
$string = "505=Testbude&500=Tesstrasse+1a&501=6900&502=Bregenz&506=05577-77777&507=05577-77777&508=0664-4844273&509=office%40luxmedia.at&510=www.luxmedia.at&";

$values = explode("&", $string); // trennzeichen &
foreach ($values as $value) {
    $part = explode("=", $value); // trennzeichen =

    $key = $part[0];

    $value = urldecode($part[1]); // urlencodierung entfernen -> verwandelt %40 in @ um...

    echo "\$$key = \"$value\" <br>";

}

?>

THX

Verfasst: Fr 16. Dez 2005, 18:58
von lux
Hallo!

Danke für deine Rasche stütze...

Hab das nun mal eingebaut und er bringt mir auch die Daten nur nicht dort wo sie hin sollten...

darum die Frage wie muss ich das umbauen...

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* REFERENZ MODUL / ARTIKELLISTE
*
* Artikelliste mit Img 1, Head 1, Head 2
*
* Erstellt eine Liste mit allen Artikel bis
* auf den Startartikel.
*
* Author      :     Jan Lengowski
* Copyright   :     four for business AG
* Created     :     15-08-2002
* Modified    :     16-08-2002
************************************************/

// second db class instance
$db2 = new DB_Contenido;

// selected category
$selcat = "CMS_VALUE[0]";

 if($selcat!="0" && $selcat!=""){

// select all articles in category widthout start article
$query = "SELECT ARTLANG.idtplcfg, ARTLANG.idart, ARTLANG.idartlang FROM ".$cfg["tab"]["cat_art"]." AS CATART, ".
         $cfg["tab"]["art_lang"]." AS ARTLANG ". 
         "WHERE CATART.idcat = '$selcat' AND ARTLANG.idart = CATART.idart AND ARTLANG.idlang = '$lang' ORDER BY ARTLANG.artsort";

// execute query
$db->query($query);

unset($articleID);
unset($linkID);
unset($tplID);

// get id's of sub articles
while ($db->next_record()) {
  $articleID[] = $db->f("idartlang");
  $linkID[] = $db->f("idart");
  $tplID[] = $db->f("idtplcfg");


} // end while



// loop through subarticles

echo '
<table width="410" border="0" cellspacing="0" cellpadding="0"><tr>
<td style="border: 1px; border-left:0px; border-right:0px; border-color: #FF9933; border-style: solid; background-color: #FCF2D5; padding-bottom:10px; padding-top:10px" class="punkte">CMS_VALUE[2]</td></tr>
';

if (is_array($articleID)) {

    foreach ($articleID as $key => $value) {


          // select all CMS variables of the article
          $sql = "SELECT * FROM ".$cfg["tab"]["content"]." WHERE idartlang = '$value' AND idtype = '1' AND typeid = '1'";
          $db->query($sql);
          $db->next_record();
          $head = $db->f("value");
          
          if ( strlen($head) > "CMS_VALUE[3]") {
            $head = substr($head, 0, "CMS_VALUE[3]");
            $head .= '..'; 
         
}

if (is_array($tplID)) {

    foreach ($tplID as $key => $value1) {

          $sql2 = "SELECT * FROM ".$cfg["tab"]["container_conf"]." WHERE idtplcfg = '$value1' AND number = '5'";
          $db2->query($sql2);
          $db2->next_record();
          $inhalt = $db2->f("container"); }
        
          $values = explode("&", $inhalt); 
          foreach ($values as $value) { 
          $part = explode("=", $value); 

          $key = $part[0]; 

          $value = urldecode($part[1]); // urlencodierung entfernen -> verwandelt %40 in @ um... 

          echo "\$$key = \"$value\" <br>"; }


         // link
          $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$selcat&idart=$linkID[$key]&m=$m&s=$s");

       

echo '<tr><td colspan="2" class="punkte"  style="border: 1px; border-top:0px; border-left: 0px; border-right: 0px; border-bottom: 1px; border-color: #FF9933; border-style: solid; background-color: #FCF2D5; padding-left:0px; padding-bottom:10px; padding-top:10px">
<a class="headline2" href="'.$link.'">'.urldecode($db->f("value")).'</BR>'.$505.'</BR>'.$500.', '.$Plz.' '.$Ort.'</BR>Tel.: '.$Telnr.', Fax: '.$Faxnr.', M.: '.$Mnr.'</a></td></tr>';

    } // end while }


          unset($headline);
        unset($text);
        
    } // end foreach
    
} }// end if (is_array)

echo '</table><br>';


?>

Danke für deine Antwort...

Verfasst: Fr 16. Dez 2005, 19:11
von emergence
...die Daten nur nicht dort wo sie hin sollten...
darum die Frage wie muss ich das umbauen...
ähm wie ?

du wirst da ja wohl was dabei gedacht haben wie du die frage gestellt hast, wofür du das verwenden möchtest...

ich hab keine lust zu raten...

Verfasst: Fr 16. Dez 2005, 19:16
von lux
Das ist ein Artikelliste die weitere Daten aus einem Modul ausliest...

Das heist konkret das der Inhalt

"Testbude" als Variable $505 vorliegt
"Teststrasse" als Variable $500 vorliegt

etc...

Danke!

Verfasst: Fr 16. Dez 2005, 19:18
von emergence
anstelle von

Code: Alles auswählen

echo "\$$key = \"$value\" <br>"; 
folgendes verwenden

Code: Alles auswählen

$$key = $value;
ich hab aber keine ahnung ob eine variable wie $500 überhaupt funktioniert...

Verfasst: Fr 16. Dez 2005, 19:25
von lux
Ok funktioniert im grossen und ganzen ...

Doch die Variable $500 ohne Buchstabe akzeptiert das Contenido nicht ???

Also müsste zum Key noch ein fixer Buchstabe hinzugefügt werden oder liege ich da Falsch?

Danke!

Verfasst: Fr 16. Dez 2005, 19:31
von emergence
ob $500 funktioniert ist keine contenido frage sondern ne php sache...

wenn es php so schluckt ist es okay, wenn nicht na ja dann müsste ein fixer buchstabe hinzugefügt werden...

Code: Alles auswählen

${"v".$key} = $value;
obs funktioniert kann ich auf die schnelle nicht sagen..

Verfasst: Fr 16. Dez 2005, 19:38
von lux
Du bist ein Genie...! Funktioniert Danke!

Das was wir gerade gebastelt haben kannst du ansehen unter:

http://www.dashandwerk.at/cms/front_con ... p?idcat=50

Danke nochmals

Greets
Martin

Verfasst: Fr 16. Dez 2005, 19:43
von emergence
Du bist ein Genie...! Funktioniert Danke!
danke, ganz lieb....

ich würd es trotzdem nicht so machen

Code: Alles auswählen

$data[$key] = $value;
würde sicher überall laufen...
die ausgabe eines wertes würde dann via
zb

Code: Alles auswählen

echo $data[510];
funktionieren...

grund:
andererseits kann man nie wissen welche anderen variablen dadurch überschrieben werden könnten...

und wenn man die $data nicht mehr braucht kickt man es via
unset($data);