Newsgroup: it.comp.www.php
Titolo: un newbie ha bisogno di un'aiutone!!!!

Ciao a tutti, stò iniziando a strutturare un databse per catalogare alcune
aziende della mia zona e associare ad alcuna di esse i servizi che è in
grado di offrire ma questo passaggio mi stà mettendo in crisi.
inizialmente avevo pensato di creare una prima tabella entro la quale
inserire solamente la descrizione del servizio con il rispettivo id e una
seconda dove inserire la PIVA dell'azienda (che essendo univoca posso
utilizzare come chiave primaria) e creare una colonna della tabella quanti
sono i servizi a disposizione (tramite il comando ALERT TABLE) e, avrei
inserito tramite checkbox un 1 se il servizio è disponibile o 0 in caso di
risposta negativa.
Fin che si tratta di inserire i dati nessun problema però, non appena ho
iniziato a ragionare come andare a ricercare i dati con il php nel database
sono entrato in confusione, come posso fare le query (o meglio, interpretare
successivamente i dati) di una tabella della quale non conosco il numero dei
campi??? Mi spiego meglio...
per selezionare i dati da una tabella ho sempre usato qs metodo
semplicissimo;
$query =  "SELECT * FROM service ORDER BY nome";
 $result = mysql_query ($query, $db);
  while ($row = mysql_fetch_row ($result)) {
   echo "<input type=\"checkbox\" name=\"row[1]\" value=\"$row[0]\"
/>$row[1]&nbsp;&nbsp;";
   }
e non ho mai avuto problemi perchè conoscevo il numero dei campi che
conteneva una tabella e la loro esatta posizione (che vado a richiamare con
$row[0]...$row[1].
Ora però, visto che il il nome, la quantità e la posizione del campo non lo
conosco quando scrivo il codice come posso fare a ricavarlo???
Come risultato finale vorrei che inserendo la partita iva mi venissero
stampati a video tutti i servizi che quell'attività è in grado di offrire.
Sò fin da adesso di non essermi piegato bene ma ho le idee molto confuse a
riguardo, altronde è l'unico metodo che fino ad ora mi è venuto in mente e
 sono certo che ne esistono di molto ma molto meno complessi ma non li
conosco...spero che qualcuno riesca ad aiutarmi!!!!
Grazie ciaoooo a tutti!

risposta negativa.
tabella servizi: id, servizio
tabella aziende: id, PIVA, nome, etc....
tabella aziende-servizi: id_azienda, id_servizio
cioè crei una tabella che relazioni le aziende coi servizi; questa è
la soluzione più facilmente modificabile un domani che ci devi mettere
di nuovo le mani.
esempio tabella aziende-servizi: 1,2 - 1,3 - 2,1 - 2,4
cioè l'azienda 1 ha i servizi 2 e 3, l'azienda 2 i servizi 1 e 4
etc...
Spero di essere stato chiaro.
Saluti
Francesco
_____________________________________
http://www.altropc.it
 - Un altro PC è possibile!
Software libero, PHP, MySQL, Webdesign, Sicurezza, CMS, Tutorials
Per rispondere in e-mail togli NOSPAM 

 grado di offrire ma questo passaggio mi stà mettendo in crisi.
Hai mai sentito parlare di progettazione di basi di dati, normalizzazione,
forme normali, ...? No, vero?!   :-)
E' sufficiente che modelli 2 entità (aziende e servizi) con una relazione
1-N.
Oppure, una relazione N-N, nel caso i servizi possano essere condivisi.
Poi ti fai le tue belle tabelle con tutti le chiavi primaria ed importate
necessarie e poi è tutto lavoro di join sql per l'inserimento ed il recupero
dei dati.
Ciao
Marco

 cioè l'azienda 1 ha i servizi 2 e 3, l'azienda 2 i servizi 1 e 4
Ok, fin quà ho capito...era quello che alla fine avevo pensato come migliore
soluzione però mi sfugge un particolare: devo fare ad ogni servizio
un'inserimento diverso???
TABELLE
Id
Azienda -->> Irish (id 2) Pizzeria il lago (id 8) bar roma (id6)
Servizio -->> tavola calda (id 5) gelateria (id 8) pizza al taglio (id1)
pizza a mezzogiorno (id25)
nel database faccio qs inseriment???:
|   id    |    id_azienda    |    id_servizio    |
---------------------------------------- 
    1                2                        5
----------------------------------------
    2                2                        8
----------------------------------------
    3                8                        25
---------------------------------------
    4                8                        5
---------------------------------------
    5                6                        8
Ora però che tipo di query devo fare per estrarre i rispettivi dati??? una
tipo questa:
SELECT * FROM id,azienda WHERE id.id_azienda = 
azienda.id
rigrazie!
ciao


SORRY...intendevo qs query...
"SELECT * FROM azienda,servizio LEFT JOIN id ON (id.id_servizio =
servizio.id
) LEFT JOIN id ON (id.id_azienda = 
azienda.id
) where id.piva =
'$_POST[iva]'"
Rigrazie Ciao!


Non ho ben capito la tua query, dipende dai dati che vuoi ottenere,
comunque il join cosě a naso non dovrebbe servire.
Saluti 
Francesco
_____________________________________
http://www.altropc.it
 - Un altro PC č possibile!
