Avatar billede klaoklao Nybegynder
05. december 2010 - 14:48 Der er 4 kommentarer og
2 løsninger

Execude php fra database

Hej

Jeg har noget data i en databasen, som fx:
array('dualshock 3', '!white', '!hvid', '!red', '!rød', '!blue', '!blå', '!silver', '!sølv')

eller

'dualshock 3', array('red', 'rød')

Dette vil jeg gerne have lavet om til php og indsat i funktionen getTableImages(); - Defineret som function getTableImages($keyword, $keyword2 = '') {

Jeg har prøvet lidt med eval, men den kræver på en eller anden måde at den phpkode, som den ska sætte ind skal være fuldendt og de et ikke muligt at have getTableImages med i databasen, da indholdet af databasen også skal kunne køres i funktionen getProductImage.

Bemærk i først datasæt er det kun $keyword definere hvor i mod i andet datasæt også er $keyword2.

Kan nogen give mig et hint til hvilken retning jeg skal gå i?
Avatar billede limemedia Nybegynder
05. december 2010 - 15:10 #1
Hermed eksempel som jeg er sikker paa du kan arbejde ud fra

<?php
    $subject = "array('dualshock 3', '!white', '!hvid', '!red', '!rød', '!blue', '!blå', '!silver', '!sølv')";

    $pattern = '/array\(\'([^\']+)\', \'([^\)]+)\'\)/';
    preg_match_all($pattern, $subject, $matches);
   
    $product = $matches[1][0];
    $options = explode("', '", $matches[2][0]);

    echo '<pre>';
    echo '<b>'.$product.'</b><br />';
    print_r($options);
    echo '</pre>';

    // ---

    $subject = "'dualshock 3', array('red', 'rød')";

    $pattern = '/\'([^\']+)\', array\(\'([^\)]+)\'\)/';
    preg_match_all($pattern, $subject, $matches);
   
    $product = $matches[1][0];
    $options = explode("', '", $matches[2][0]);

    echo '<pre>';
    echo '<b>'.$product.'</b><br />';
    print_r($options);
    echo '</pre>';
?>

http://www.tokyoidealab.com/e2.php
Avatar billede klaoklao Nybegynder
05. december 2010 - 15:58 #2
Dvs. du mener ikke at eval kan løse mit problem?

Nu er jeg ikke den hårdeste til regex, men mit problem er at $subject kan være både datasæt 1 og 2, det er ikke defineret på nogen måde hvilket det er og jeg kan se at der bliver brugt to forskellige regex-patterns.

Hvordan vil jeg kunne lave en løsning der godtog begge data sæt?
Avatar billede repox Seniormester
05. december 2010 - 19:26 #3
Er der en særlig årsag til at serialize() og unserialize() ikke kan bruges?
Nej, eval() er en dum idé - tænk hvis du nu har noget indhold i databasen du ikke lige havde forventet...
Avatar billede klaoklao Nybegynder
05. december 2010 - 19:49 #4
Jeg kigger lige på de to funktioner :)
Avatar billede klaoklao Nybegynder
05. december 2010 - 20:11 #5
Jeg tror faktisk det var det jeg skulle bruge kombineret med noget af limemedias kode.

Vil du smide et svar repox, så deler i points.
Avatar billede repox Seniormester
05. december 2010 - 20:47 #6
Der kom et svar fra mig...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester