Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    stampare valore di una colonna a condizione che...

    Ciao ragazzi, so che il titolo non lascia capire nulla ma ho questo tipo di esigenza:
    ho due tabelle
    tab_prodotto con prodotto_id e venditore_id
    tab_venditore con venditore_id e nome_negozio

    Dovrei far stampare il nome del negozio associato al venditore_id che ha pubblicato solo i prodotti da lui inseriti.
    Già prodotto_id e venditore_id corrsipondo nella tab_prodotto, ma dovrei fare un confronto con tab_venditore e stampare il nome del negozio corrispondente venditore_id.
    Mi auguro di non essermi spiegato in maniera confusa.......
    “spesso le grandi imprese nascono da piccole opportunità”
    Demostene

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2012
    residenza
    Lima, Perù
    Messaggi
    212
    mi sembra un "problema" SQL e non PHP...
    Jamie Ynonan - Web Developer / Desarrollador Web - HTML5 - CSS3 - Javascript/jQuery - PHP/CodeIgniter/Laravel - SQL/MySQL - Wordpress
    Telelavoro / Teleworking - jamiea31[at]gmail.com - Lima - Perù - GMT -5

  3. #3
    prova così:

    SELECT * FROM tab_prodotto AS tp JOIN tab_venditore AS tv WHERE tb.venditore_id=tp.venditore_id AND tp.venditore.id='valore dell id'

  4. #4
    Quote Originariamente inviata da E.d.i.73 Visualizza il messaggio
    prova così:

    SELECT * FROM tab_prodotto AS tp JOIN tab_venditore AS tv WHERE tb.venditore_id=tp.venditore_id AND tp.venditore.id='valore dell id'


    Non dovrei scrivere:


    SELECT * FROM tab_prodotto AS tp JOIN tab_venditore AS tv WHERE tb.venditore_id=tp.venditore_id AND tp.prodotto_id=$idproduct

    E poi stampare il valore nome_negozio?
    L'id del prodotto l'ho già recuperato prima, ora devo stampare il valore del campo nome_negozio

    Considera che non sono pratico con php....
    “spesso le grandi imprese nascono da piccole opportunità”
    Demostene

  5. #5
    Questo codice
    Codice PHP:
    <?php
    $_prod_id
    =Mage::registry('current_product')->getId();
     echo 
    $_prod_id;

    $read=Mage::getSingleton('core/resource')->getConnection('catalog_product_website','core_website');
     
    $value=$read->query("SELECT * FROM catalog_product_website JOIN core_website WHERE catalog_product_website.website_id=core_website.website_id AND catalog_product_website.product_id='".$_prod_id."'");

    $row $value->fetch();
    echo 
    "<pre>";print_r($row);echo "</pre>";
    ?>
    mi restituisce un array
    [CODE]
    Array
    (
    [product_id] => 220
    [website_id] => 1
    codice:
     => base
        [name] => Il mio negozio!
        [sort_order] => 0
        [default_group_id] => 1
        [is_default] => 1
    )
    Sono riuscito ad estrapolare i dati che mi servono, solo che a me serve avere solo il contenuto del campo CODE, mi servirebbe avere solo BASE per poterlo stampare.
    Come posso fare?
    “spesso le grandi imprese nascono da piccole opportunità”
    Demostene

  6. #6
    Quote Originariamente inviata da vale&rug Visualizza il messaggio
    Sono riuscito ad estrapolare i dati che mi servono, solo che a me serve avere solo il contenuto del campo CODE, mi servirebbe avere solo BASE per poterlo stampare.
    Come posso fare?
    inizia con l'esprimerti meglio non si capisce cosa tu debba fare

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    inizia con l'esprimerti meglio non si capisce cosa tu debba fare
    Lo so, hai ragione!!!! Rileggendo neanche io ho capito quello che volevo scrivere...

    Cmq ho risolto il mio problema ed ora sono riuscito a creare il mio url dinamico!
    Grazie per le dritte....!!!!
    “spesso le grandi imprese nascono da piccole opportunità”
    Demostene

  8. #8
    In SQL la query per mettere in join ed estrarre anche l'indirizzo del negozio relativo al venditore è la seguente:
    SELECT tab_prodotto.prodotto_id, tab_prodotto.venditore_id,tab_venditore.nome_negoz io
    FROM tab_prodotto
    INNER JOIN tab_venditore ON tab_prodotto.venditore_id=tab_venditore.venditore_ id

    devi essere però sicuro che nella tabella tab_venditore ci sia sempre il relativo record altrimenti ti perdi il record della tabella dei prodotti. Se non sei sicuro al 100% al posto di INNER JOIN usa LEFT OUTER JOIN

  9. #9
    Quote Originariamente inviata da smartsql Visualizza il messaggio
    In SQL la query per mettere in join ed estrarre anche l'indirizzo del negozio relativo al venditore è la seguente:
    SELECT tab_prodotto.prodotto_id, tab_prodotto.venditore_id,tab_venditore.nome_negoz io
    FROM tab_prodotto
    INNER JOIN tab_venditore ON tab_prodotto.venditore_id=tab_venditore.venditore_ id

    devi essere però sicuro che nella tabella tab_venditore ci sia sempre il relativo record altrimenti ti perdi il record della tabella dei prodotti. Se non sei sicuro al 100% al posto di INNER JOIN usa LEFT OUTER JOIN
    Qual'è la differenza fra i due JOIN?
    “spesso le grandi imprese nascono da piccole opportunità”
    Demostene

  10. #10
    Quote Originariamente inviata da vale&rug Visualizza il messaggio
    Qual'è la differenza fra i due JOIN?
    La differenza è che con INNER JOIN imponi che DEVE esserci sempre una relazione tra le 2 tabelle in assenza di una relazione tra un record della prima nella seconda tabella, il record della prima tabella non viene estratto. Nel caso di Left se anche capitasse che un record della prima non trovi nulla nella seconda tabella il record della prima viene estratto ugualmente.

    Nel caso esposto ipotizziamo che tra i vari record della tabella prodotti tu abbia il prodotto 4 che punta al venditore X che però non è presente nella tabella venditori.

    In caso di inner join avresti
    Prodotto Venditore Negozio
    1 Y NY
    2 K NK
    3 K NK
    ----------------------- Manca tutto record del prodotto 4

    In caso di left avresti
    Prodotto Venditore Negozio
    1 Y NY
    2 K NK
    3 K NK
    4 X NULL------- il prodotto 4 c'è ma la colonna Negozio è NULL

    La differenza è molto molto rilevante. In un certo senso la INNER "limita" la i record estratti a solo quelli per i quali esiste la relazione tra le tabelle, la left è meno limitante. l'uso dell'una o dell'altra formulazione dipende da cosa si vuole ottenere se a te non interessa mostrare prodotti per i quali non è individuabile un negozio usa INNER se per te rileva maggiormente esporre il prodotto anche se il negozio non è individuabile usa la LEFT.

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.