Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117

    [php+mysql] grattacapo..

    Scusate per il titolo poco significativo ma non sapevo che altro mettere

    Dovrei riuscire a mostrare i "settori di applicazione" di un prodotto evidenziati, non tralasciando di metterli tutti comunque.

    es.
    primosett
    secondosett
    terzosett
    quartosett
    quintosett
    settimosett

    Ho 3 tabelle
    #prodotto (id nome ..)
    #settore (id nome)
    #relazione_prodotto_settore (id, id_prodotto, id_settore) <-- qui ci salvo le relazioni

    Spero d'esser stato esaustivo.. proprio non riesco a venirne a capo.. sarà la demenza che avanza

    Grazie a tutti in anticipo

  2. #2
    intendi dire che ti serve qualkosa del genere

    select * from prodotto as p, settore as s relazione_prodotto_settore as r
    where p.id=r.id_prodotto and s.id=r.id_setto and s.id="valore che cerchi"

    altrimenti non ho capito che ti serve

  3. #3
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    No purtroppo

    Avendo l'id prodotto, e quelle tabelle co quei campi, devo mostrare per quel prodotto tutti i settori di applicazione e di quelli di cui fa parte evidenziarli in un qualsiasi modo..

    non credo basti una sola query..

    Grazie ciao

  4. #4
    select * from prodotto as p, settore as s relazione_prodotto_settore as r
    where p.id=r.id_prodotto and s.id=r.id_setto and p.id="valore che cerchi"

    cosi??
    invece che cercare per settore cerchi per prodotto p.id="valore che cerchi"

  5. #5
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    No non mi serve una select del genere, anche x' l'id del settore non è uguale all'id del prodotto..

    devo solo mostrare tutti i nomi dei settori che ho in settore.nome evidenziano quelli di cui fa parte il prodotto.. per quello dicevo che una query non credo potesse bastare

    forse due .. una che mi popoli un'array "settori" e un'altra che mi popoli un array "settori di quel prodotto" e poi confrontarle in qualche modo in un ciclo baa!?


  6. #6
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Ho risolto in questo modo:

    Codice PHP:

            $query 
    mysql_query("SELECT * FROM settore ORDER BY id ASC");             $n 0;             while ($row mysql_fetch_array($query)) {                 $Asettori['id'][$n] = $row['id'];                 $Asettori['nome'][$n] = $row['nome'];                 $n++;             }                $query2 mysql_query("SELECT * FROM relps WHERE id_prodotto='$idx'");             $n 0;             while ($row2 mysql_fetch_array($query2)) {                 $Rsettori['id'][$n] = $row2['id_settore'];                 $n++;             }                           $nAsettori count($Asettori['id']);             $nRsettori count($Rsettori['id']);             for ($i=0$i $nAsettori$i++) {                                  $uguale false;                 for ($n=0$n $nRsettori$n++) {                     if($Asettori['id'][$i] == $Rsettori['id'][$n]){                         $uguale true;                     }                 }                                  if($uguale){                     echo "-->".$Asettori['nome'][$i]."
    "
    ;                 }else{                     echo $Asettori['nome'][$i]."
    "
    ;                 }              } 

    Con la prima query recupero tutti i settori (id e nome) e popolo array $Asettori['id'] e $Asettori['nome']
    Con al seconda recuper id settori che hanno relazione col prodotto $idx, e popolo $Rsettori['id']

    po con due clicli accio il confronto il primo cicla per N° settori totale, il secondo pe N° settori con relazione al prodotto


    Questa è l'unica via che m'è venuta in mente..
    Grazie!

  7. #7
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Riposto il codice + leggibile

    Codice PHP:

                $query 
    mysql_query("SELECT * FROM settore ORDER BY id ASC");
                
    $n 0;
                while (
    $row mysql_fetch_array($query)) {
                    
    $Asettori['id'][$n] = $row['id'];
                    
    $Asettori['nome'][$n] = $row['nome'];
                    
    $n++;
                } 


                
    $query2 mysql_query("SELECT * FROM relps WHERE id_prodotto='$idx'");
                
    $n 0;
                while (
    $row2 mysql_fetch_array($query2)) {
                    
    $Rsettori['id'][$n] = $row2['id_settore'];
                    
    $n++;
                }

                
                
    $nAsettori count($Asettori['id']);
                
    $nRsettori count($Rsettori['id']);
                for (
    $i=0$i $nAsettori$i++) {
                    
                    
    $uguale false;
                    for (
    $n=0$n $nRsettori$n++) {
                        if(
    $Asettori['id'][$i] == $Rsettori['id'][$n]){
                            
    $uguale true;
                        }
                    }
                    
                    if(
    $uguale){
                        echo 
    "-->".$Asettori['nome'][$i]."
    "
    ;
                    }else{
                        echo 
    $Asettori['nome'][$i]."
    "
    ;
                    }

                } 

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.