Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    perchè stare a perdere tempo con un sql impossibile quando con php lo risolvi in 5 minuti?

  2. #12
    io ho fatto una piccola prova su una mia tabella di prova, te la spiego e spero possa tornarti utile in qualche modo, soprattutto se ho capito bene il problema.
    La query che mi sono costruito prende dalla tabella la mia colonna1 se questa ha un valore, altrimenti prende la colonna2.
    La query è questa:
    codice:
    SELECT (
    CASE WHEN dato1 IS NOT NULL
    THEN dato1
    ELSE dato2
    END
    ) AS datoestratto
    FROM prova
    ma ripeto, non so se ho ben interpretato e capito il tuo problema

    la query, puoi provarla tranquillamente su una tabella di prova e vedere se fa quello che vuoi, anzi ti posto direttamente il dump della mia così fai prima

    codice:
    -- 
    -- Struttura della tabella `prova`
    -- 
    
    CREATE TABLE `prova` (
      `id` tinyint(3) unsigned NOT NULL auto_increment,
      `dato1` varchar(25) default NULL,
      `dato2` varchar(25) default NULL,
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=5 ;
    
    -- 
    -- Dump dei dati per la tabella `prova`
    -- 
    
    INSERT INTO `prova` (`id`, `dato1`, `dato2`) VALUES (1, 'gfdgdfg', NULL),
    (2, NULL, 'gfdgdfg'),
    (3, NULL, 'mhjkjhkjk'),
    (4, 'lopiy', NULL);


    facci sapere!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #13
    Ecco, quello che ha fatto 13manuel84 sarebbe quello che vorrei fare io (credo! Non ho approfondito bene il significato della query visto che non mi è molto chiaro).

    Anche la soluzione di daniele_dll va benissimo e ci avevo già pensato ma credevo che sarebbe stato più facile fare tutto con l'sql. Cmq adesso faccio un po' di prove e poi vi faccio sapere come va a finire! Intanto grazie mille a tutti per la pazienza e per le risposte!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #14
    in effetti la soluzione di manuel potrebbe essere buona il problema è che però il check è da fare su righe diverse e non su colonne diverse

    se fosse stato su colonne diverse sarebbe stato abbastanza facile
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #15
    Originariamente inviato da daniele_dll
    in effetti la soluzione di manuel potrebbe essere buona il problema è che però il check è da fare su righe diverse e non su colonne diverse

    se fosse stato su colonne diverse sarebbe stato abbastanza facile
    Ecco mi sono accorto ora dello stesso problema!
    Non mi resta che ciclare in php!

    Cmq grazie mille a tutti! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #16
    Originariamente inviato da daniele_dll
    in effetti la soluzione di manuel potrebbe essere buona il problema è che però il check è da fare su righe diverse e non su colonne diverse

    se fosse stato su colonne diverse sarebbe stato abbastanza facile
    lol

    allora proprio non avevo colto il problema, chiedo scusa se ho creato confusione
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #17
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    non so se sia corretta ma prova questa
    Codice PHP:
    SELECT catalog_products.name AS name 
           
    catalog_objects.obj AS obj 
           
    objectsL.obj AS objL 
           
    catalog_products.code AS code 
           
    catalog_brands.brand AS brand 
           
    brandsL.brand AS brandL ,  
           
    materialsL.material AS materialL 
           
    catalog_products.price AS price 
           
    catalog_products.discount AS discount 
           
    catalog_products.availability AS availability 
           
    catalog_targets.target AS target 
           
    targetsL.target AS targetL 
           
    catalog_products.inserted AS inserted 
           
    catalog_products.views AS views 

    FROM catalog_products
    LEFT JOIN catalog_objects 
    AS objectsL ON objectsL.ref catalog_products.obj 
    LEFT JOIN catalog_brands 
    AS brandsL ON brandsL.id catalog_products.brand 
    LEFT JOIN catalog_materials 
    AS materialsL ON materialsL.ref catalog_products.material 
    LEFT JOIN catalog_targets 
    AS targetsL ON targetsL.ref catalog_products.target 
    ,catalog_objects,
    catalog_brands,catalog_materials,catalog_targets
    WHERE catalog_objects
    .lang AND objectsL.lang 
    AND   catalog_materials.lang AND materialsL.lang 
    AND   catalog_targets.lang AND targetsL.lang 2
    AND   catalog_brands.lang AND brandsL.lang 2
    AND catalog_objects.ref catalog_products.obj 
    AND catalog_brands.id catalog_products.brand 
    AND catalog_materials.ref catalog_products.material 
    AND catalog_targets.ref catalog_products.target 

  8. #18
    Fatte le dovute modifiche (brands non è multilingua poichè contiene le marche che non sono multilingua!) funziona nel senso che estrae i dati in entrambe le lingue e quindi mi faciliterebbe il lavoro in php.

    Onestamente adesso non sto lavorando a questo problema e quindi non so dirti se sia utile o meno (sicurament lo sarà per una mia conoscenza personale visto che query del genere non ne ho veramente mai viste! VVoVe: ).

    Cmq vi farò sapere come ho risolto il problema quando l'avrò risolto! Grazie cmq per l'impegno ma a questo punto credo ci vorrà un po' prima che possa aggiornarvi visto che dovrò prima capire questa query come funziona e poi potrò dirvi come è andata!

    A presto (speriamo!)
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  9. #19
    Salve ragazzi. Eccomi di nuovo qui. Allora, a query l'ho modificata per le mie esigenze. Solo che ho aggiunto un'altra tabella che dovrebbe contenere le keywords ma la query non funziona. Vi posto il codice della query ed il dump delle tabelle così potete provare anche voi la query:

    query
    Codice PHP:
    // $id = 1 -> id prodotto pronto per provare
    $id ;
    $lang //-> italiano
    //$lang = 2 ; //-> inglese
    $query "SELECT catalog_products.id AS id ,
                                 catalog_products.name AS name ,
                                 catalog_objects.obj AS obj , 
                                 objectsL.obj AS objL ,
                                 catalog_products.code AS code , 
                                 catalog_brands.brand AS brand ,  
                                 catalog_materials.material AS material ,
                                 materialsL.material AS materialL ,
                                 catalog_products.price AS price , 
                                 catalog_products.discount AS discount , 
                                 catalog_products.avStatus AS avStatus , 
                                 catalog_targets.target AS target , 
                                 targetsL.target AS targetL ,
                                 catalog_products_description.description AS description ,
                                 descriptionL.description AS descriptionL ,
                                 catalog_products_keys.keys AS keys ,
                                 keysL.keys AS keysL ,
                                 catalog_products.inserted AS inserted , 
                                 catalog_products.views AS views 

                            FROM catalog_products
                       LEFT JOIN catalog_objects AS objectsL ON objectsL.ref = catalog_products.obj 
                       LEFT JOIN catalog_brands AS brandsL ON brandsL.id = catalog_products.brand 
                       LEFT JOIN catalog_materials AS materialsL ON materialsL.ref = catalog_products.material 
                       LEFT JOIN catalog_targets AS targetsL ON targetsL.ref = catalog_products.target 
                       LEFT JOIN catalog_products_description AS descriptionL ON descriptionL.product = catalog_products.id
                       LEFT JOIN catalog_products_keys AS keysL ON keysL.product = catalog_products.id , catalog_objects , catalog_brands , catalog_materials , catalog_targets , catalog_products_description , catalog_products_keys
                           WHERE catalog_objects.lang = '
    $lang'
                             AND objectsL.lang = 1
                             AND catalog_materials.lang = '
    $lang'
                             AND materialsL.lang = 1
                             AND catalog_targets.lang = '
    $lang'
                             AND targetsL.lang = 1
                             AND catalog_objects.ref = catalog_products.obj
                             AND catalog_materials.ref = catalog_products.material 
                             AND catalog_targets.ref = catalog_products.target
                             AND catalog_products.id = 
    $id;
                


    $result mysql_query$query ) or die(mysql_error());
                
    $prod mysql_fetch_array$result ) or die(mysql_error()) ;
    $product['id'] = $prod['id'] ;
         
    $product['name'] = $prod['name'] ;
         
    $product['obj'] = ( $prod['obj'] != '' ) ? $prod['obj'] : $prod['objL'] ;
         
    $product['code'] = $prod['code'] ;
         
    $product['brand'] = $prod['brand'] ;
         
    $product['material'] = ( $prod['material'] != '' ) ? $prod['material'] : $prod['materialL'] ;
         
    $product['price'] = $prod['price'] ;
         
    $product['discount'] = $prod['discount'] ;
         
    $product['avStatus'] = $prod['avStatus'] ;
         
    $product['target'] = ( $prod['target'] != '' ) ? $prod['target'] : $prod['targetL'] ;
         
    $product['description'] = ( $prod['description'] != '' ) ? $prod['description'] : $prod['descriptionL'] ;
         
    $product['keys'] = ( $prod['keys'] != '' ) ? $prod['keys'] : $prod['keys'] ;
         
    $product['inserted'] = $prod['inserted'] ;
         
    $product['views'] = $prod['views'] ;
         
    print_r$product) ; 
    dump db
    codice:
    -- 
    -- Struttura della tabella `catalog_branch`
    -- 
    
    CREATE TABLE `catalog_branch` (
      `id` int(10) NOT NULL auto_increment,
      `tree_id` int(10) NOT NULL default '0',
      `name` varchar(255) NOT NULL default '',
      `lang` int(10) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_branch`
    -- 
    
    INSERT INTO `catalog_branch` VALUES (1, 1, 'Gioielli', 1);
    INSERT INTO `catalog_branch` VALUES (2, 1, 'Jewels', 2);
    INSERT INTO `catalog_branch` VALUES (3, 2, 'Anelli', 1);
    INSERT INTO `catalog_branch` VALUES (4, 2, 'Rings', 2);
    INSERT INTO `catalog_branch` VALUES (5, 3, 'Bracciali', 1);
    INSERT INTO `catalog_branch` VALUES (6, 3, 'Bracelets', 2);
    INSERT INTO `catalog_branch` VALUES (7, 4, 'Cavigliere', 1);
    INSERT INTO `catalog_branch` VALUES (8, 4, 'Ankle Supports', 2);
    INSERT INTO `catalog_branch` VALUES (9, 5, 'Ciondoli', 1);
    INSERT INTO `catalog_branch` VALUES (10, 5, 'Pendants', 2);
    INSERT INTO `catalog_branch` VALUES (11, 6, 'Diamanti', 1);
    INSERT INTO `catalog_branch` VALUES (12, 6, 'Diamonds', 2);
    INSERT INTO `catalog_branch` VALUES (13, 7, 'Fedi', 1);
    INSERT INTO `catalog_branch` VALUES (14, 7, 'Wedding Rings', 2);
    INSERT INTO `catalog_branch` VALUES (15, 8, 'Gemelli', 1);
    INSERT INTO `catalog_branch` VALUES (16, 8, 'Cuff Links', 2);
    INSERT INTO `catalog_branch` VALUES (17, 9, 'Girocolli', 1);
    INSERT INTO `catalog_branch` VALUES (18, 9, 'Necklaces', 2);
    INSERT INTO `catalog_branch` VALUES (19, 10, 'Orecchini', 1);
    INSERT INTO `catalog_branch` VALUES (20, 10, 'Earrings', 2);
    INSERT INTO `catalog_branch` VALUES (21, 11, 'Portachiavi', 1);
    INSERT INTO `catalog_branch` VALUES (22, 11, 'Key Holders', 2);
    INSERT INTO `catalog_branch` VALUES (23, 12, 'Spille', 1);
    INSERT INTO `catalog_branch` VALUES (24, 12, 'Brooches', 2);
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_brands`
    -- 
    
    CREATE TABLE `catalog_brands` (
      `id` int(10) NOT NULL auto_increment,
      `brand` varchar(255) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_brands`
    -- 
    
    INSERT INTO `catalog_brands` VALUES (1, 'Morellato');
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_materials`
    -- 
    
    CREATE TABLE `catalog_materials` (
      `id` int(10) NOT NULL auto_increment,
      `ref` int(10) NOT NULL default '0',
      `material` varchar(255) NOT NULL default '',
      `lang` int(10) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_materials`
    -- 
    
    INSERT INTO `catalog_materials` VALUES (1, 1, 'Acciaio e diamanti', 1);
    INSERT INTO `catalog_materials` VALUES (2, 1, 'Steel and diamonds', 2);
    INSERT INTO `catalog_materials` VALUES (3, 2, 'Acciaio, oro e diamanti', 1);
    INSERT INTO `catalog_materials` VALUES (4, 2, 'Steel, gold and diamonds', 2);
    INSERT INTO `catalog_materials` VALUES (5, 3, 'Acciaio ed oro', 1);
    INSERT INTO `catalog_materials` VALUES (6, 3, 'Steel and gold', 2);
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_objects`
    -- 
    
    CREATE TABLE `catalog_objects` (
      `id` int(10) NOT NULL auto_increment,
      `ref` int(10) NOT NULL default '0',
      `obj` varchar(255) NOT NULL default '',
      `lang` int(10) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_objects`
    -- 
    
    INSERT INTO `catalog_objects` VALUES (1, 1, 'Anello', 1);
    INSERT INTO `catalog_objects` VALUES (3, 1, 'Ring', 2);
    INSERT INTO `catalog_objects` VALUES (4, 2, 'Ciondolo', 1);
    INSERT INTO `catalog_objects` VALUES (5, 2, 'Pendant', 2);
    INSERT INTO `catalog_objects` VALUES (6, 3, 'Collana', 1);
    INSERT INTO `catalog_objects` VALUES (7, 3, 'Necklace', 2);
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_products`
    -- 
    
    CREATE TABLE `catalog_products` (
      `id` int(20) NOT NULL auto_increment,
      `name` varchar(255) NOT NULL default '',
      `obj` int(10) NOT NULL default '0',
      `code` varchar(255) NOT NULL default '',
      `brand` int(10) NOT NULL default '0',
      `material` int(10) NOT NULL default '0',
      `price` decimal(10,2) NOT NULL default '0.00',
      `discount` int(2) NOT NULL default '0',
      `avAmount` int(10) NOT NULL default '0',
      `avStatus` int(1) NOT NULL default '0',
      `avFrom` varchar(255) NOT NULL default '',
      `target` int(2) NOT NULL default '0',
      `inserted` varchar(255) NOT NULL default '',
      `lastModified` varchar(255) NOT NULL default '',
      `lastSale` varchar(255) NOT NULL default '',
      `views` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_products`
    -- 
    
    INSERT INTO `catalog_products` VALUES (1, '', 2, 'S01 5201', 1, 1, 65.00, 0, 1, 1, '1143410400', 2, '1136928649', '1136928649', '', 0);
    INSERT INTO `catalog_products` VALUES (2, 'Anello ciao', 2, 'S01 5202', 1, 1, 65.00, 0, 1, 1, '1143410400', 2, '1136928650', '1136928650', '', 0);
    INSERT INTO `catalog_products` VALUES (3, '', 2, 'S01 5301', 1, 3, 94.00, 0, 1, 1, '1143410400', 2, '1136928651', '1136928651', '', 0);
    INSERT INTO `catalog_products` VALUES (4, '', 2, 'S01 5302', 1, 1, 94.00, 0, 1, 1, '1143410400', 2, '1136928652', '1136928652', '', 0);
    INSERT INTO `catalog_products` VALUES (5, '', 2, 'S01 5303', 1, 1, 78.00, 20, 1, 2, '', 2, '1136928653', '1136928653', '', 0);
    INSERT INTO `catalog_products` VALUES (6, '', 2, 'S01 5501', 1, 1, 58.00, 0, 1, 2, '', 2, '1136928654', '1136928654', '', 0);
    INSERT INTO `catalog_products` VALUES (7, '', 2, 'S01 5502', 1, 1, 58.00, 0, 1, 3, '', 2, '1136928655', '1136928655', '', 0);
    INSERT INTO `catalog_products` VALUES (8, '', 2, 'S01 5503', 1, 1, 58.00, 0, 1, 3, '', 2, '1136928656', '1136928656', '', 0);
    INSERT INTO `catalog_products` VALUES (9, '', 2, 'S01 8906P', 1, 1, 75.00, 30, 1, 3, '', 2, '1136928657', '1136928657', '', 0);
    INSERT INTO `catalog_products` VALUES (10, '', 3, 'S01 5919C', 1, 3, 75.00, 0, 1, 4, '', 2, '1136928658', '1136928658', '', 0);
    INSERT INTO `catalog_products` VALUES (11, '', 2, 'S01 9503P', 1, 1, 95.00, 0, 1, 4, '', 2, '1136928659', '1136928659', '', 0);
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_products_description`
    -- 
    
    CREATE TABLE `catalog_products_description` (
      `id` int(11) NOT NULL auto_increment,
      `product` int(11) NOT NULL default '0',
      `description` text NOT NULL,
      `lang` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_products_description`
    -- 
    
    INSERT INTO `catalog_products_description` VALUES (1, 1, 'Vediamo se funziona in italiano', 1);
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_products_keys`
    -- 
    
    CREATE TABLE `catalog_products_keys` (
      `id` int(11) NOT NULL auto_increment,
      `product` int(11) NOT NULL default '0',
      `keys` text NOT NULL,
      `lang` int(11) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_products_keys`
    -- 
    
    INSERT INTO `catalog_products_keys` VALUES (1, 1, 'ciondolo morellato della marca del cazzo perchè non la smetti di rompermi i coglioni brutto faccia di cazzo bastardo e imprudente', 1);
    
    -- --------------------------------------------------------
    
    -- 
    -- Struttura della tabella `catalog_targets`
    -- 
    
    CREATE TABLE `catalog_targets` (
      `id` int(10) NOT NULL auto_increment,
      `ref` int(10) NOT NULL default '0',
      `target` varchar(255) NOT NULL default '',
      `lang` int(10) NOT NULL default '0',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
    
    -- 
    -- Dump dei dati per la tabella `catalog_targets`
    -- 
    
    INSERT INTO `catalog_targets` VALUES (1, 1, 'Uomo', 1);
    INSERT INTO `catalog_targets` VALUES (2, 1, 'Man', 2);
    INSERT INTO `catalog_targets` VALUES (3, 2, 'Donna', 1);
    INSERT INTO `catalog_targets` VALUES (4, 2, 'Woman', 2);
    INSERT INTO `catalog_targets` VALUES (5, 3, 'Bambino', 1);
    INSERT INTO `catalog_targets` VALUES (6, 3, 'Child', 2);
    INSERT INTO `catalog_targets` VALUES (7, 4, 'Unisex', 1);
    INSERT INTO `catalog_targets` VALUES (8, 4, 'Unisex', 2);
    E' un po' lungo ma vi basta fare copia e incolla!
    E' tutto pronto per provare. fate un file e copiateci dentro la parte in php, fate il dump del db e provate la query. Spero che qualcuno possa aiutrami! Grazie mille! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  10. #20
    Ho dato una occhiata alla query (post prandiale) quindi con un occhio solo... ma occhio usi delle parole riservate come "keys" come nome campo e nome alias.

    e' poi inutile ripetere lo stesso nome come alias. Lo prenderebbe gia' di suo....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.