Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53

    [database Relazionale Uno A Molti]

    Salve a tutti.
    Sto preparando una lista nozze e diciamo ce sono arrivato ad un punto in cui mi sono perso.
    In pratica ho creato 2 tabelle:
    1)tabella listanozze
    id_lista int(11) No auto_increment
    sposo_nome
    sposo_cognome
    sposa_nome
    sposa_cognome
    costo
    descrizione
    login
    password
    telefono
    email
    quota_visibile
    stato
    2)tabella sottoscrizioninozze

    id_sott int(11) No auto_increment
    id_lista int(11) No 0
    cognome
    nome
    indirizzo
    citta
    cap
    telefono
    email
    quota
    data

    Le due tabelle, come vedete, hanno un campo in comune (campo id_lista)
    fatto questo ho creato una pagina di amministrazione che mi visualizza le liste di nozze inseriti attraverso il seguent codice:
    Codice PHP:
    <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0" class="bordo">
                  <tr> 
                          <td>Liste Nozze</td>
                  </tr>
                  <tr> 
                    <td><table width="99%" border="0" cellspacing="2" cellpadding="2">
                        <tr> 
                                <td width="42%">Sposo</td>
                                <td width="30%">Sposa</td>
                          <td width="28%">Azione</td>
                        </tr>
                        <?
                        $sql 
    "select * from listanozze"
                        
    $result rs($sql);
                        while (
    $lsnozze=mysql_fetch_array($result)){
                        
    ?>//utiizzato per estrapolare i dati dalla tabella lista nozze
    //quindi ho impaginato in questo modo i risultati
                        <tr> 
                          <td><? echo  $lsnozze["sposo_cognome"].",".$lsnozze["sposo_nome"]; ?></td>
                          <td><? echo  $lsnozze["sposa_cognome"].",".$lsnozze["sposa_nome"]; ?></td>
                                <td>[url="listanozze_modifica.php?id_lista=<? echo $lsnozze["]">[img]../img/modifica.gif[/img][/url
                                  - [
    url="listanozze_elimina.php?id_lista=<? echo $lsnozze["]">[img]../img/eliminagif.gif[/img][/url
                                  - [
    url="listanozze_quote.php?id_lista=<? echo $lsnozze["]">quote[/url
                                  - [
    url="listanozze_chiudi.php?id_lista=<? echo $lsnozze["]&amp;act=close">Chiudi[/url]</td>
                        </
    tr>
                        <
    tr
                          <
    td colspan="3" class="tratto">[img]../img/1x1.gif[/img]</td>
                        </
    tr>
                        <? 
                        }
                        
    ?>
                      </table></td>
                  </tr>
                </table>
                

                <div align="center">Totale Offerte inserite : <? echo mysql_num_rows($result);?></div>
    .

    In questa pagina se guardiamo attentamente ho creato un collegamento che mi visualizzi tutte le quote associate alla lista nella pagina listanozze_quote.php
    Di seguto vi posto il codice di questa pagina:
    Codice PHP:
              <table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
                  <tr> 
                          <td>Sottoscrizioni della lista</td>
                  </tr>
                  <tr> 
                    <td><table width="99%" border="0" cellspacing="2" cellpadding="2">
                        <tr> 
                                <td width="40%">Partecipante</td>
                                <td width="41%" >Quota</td>
                          <td width="19%">Azione</td>
                        </tr>
              <?
                  
    if ((isset($_GET["id_lista"])) AND ($_GET["id_lista"] !="")) {
                       
    $id $_GET["id_lista"];
                        }else{
                            
    $id =1
                        }
        
    $sql "select cognome,quota,id_sott,nome from sottoscrizionenozze where id_lista = $id"
        
    $tot0;
        
    $result rs($sql);
        while (
    $lsnozze=mysql_fetch_array($result)){
        
    $tot$lsnozze["quota"] + $tot ;
                        
    ?>// in modo d estrapolare i record (id_sott) relativi alla id_lista 
    //quindi proseguo con l'impaginazione
                        <tr> 
                          <td><? echo  $lsnozze["cognome"].",".$lsnozze["nome"]; ?></td>
                          <td><? echo  $lsnozze["quota"]; ?></td>
                                <td>[url="listanozze_dettagliquote.php?id_sott=<? echo $lsnozze["]">Dettagli[/url
                                  - [
    url="listanozze_eliminaquote.php?id_sott=<? echo $lsnozze["]">Elimina[/url]</td>
                        </
    tr>
                        <
    tr
                          <
    td colspan="3" class="tratto">[img]../img/1x1.gif[/img]</td>
                        </
    tr>
                        <? 
                        }
                        
    ?>
                      </table></td>
                  </tr>
                </table>
                

                      <div align="center">Totale Sottoscritto Per questa lista : <span class="messaggi"><? echo $tot?></span>

                        

                        [url="listanozze_gestione.php"]Torna alla Lista[/url]</div>
    A questo punto ho creato una pagina che mi visualizza il dettaglio (listanozze_dettagliquote.php) della sottoscrizione e tutto funziona bene.
    Il problema apparentemente banale ma che non so come non rieco proprio a capire, sta nell'eliminazione dei record sottoscrizione.
    Ho creato una pagina listanozze_eliminaqota.php

    Codice PHP:

                      <?
                    
    if ((isset($_POST["act"])) AND ($_POST["act"] == "del") ){
                        
                        
    $sql "DELETE * FROM sottosrizionenozze WHERE id_sott = ".$_POST["id_sott"]."";
                        
    $ris rs($sql);
                        
    stampa_msg();
                        
                    }else{
                        
    $sql "Select * FROM sottoscrizionenozze WHERE id_sott = ".$_GET["id_sott"]; 
                        
    $ris rs($sql);
                        
    $sott mysql_fetch_array($ris)
                
    ?>
                      <table width="60%" border="0" align="center" cellpadding="0" cellspacing="0" class="bordo">
                  <tr> 
                    <td class="intestazione">Elimina una quota della Lista Nozze</td>
                  </tr>
                  <tr> 
                    <td><form name="form1" method="post" action="">
                        <table width="98%" border="0" align="center" cellpadding="2" cellspacing="2">
                          
                          <tr>
                            <td width="38%">Quota:</td>
                            <td width="62%"><? echo $sott["quota"];?></td>
                          </tr>
                          <tr>
                            <td width="38%">id_quota:</td>
                            <td width="62%"><? echo $sott["id_sott"];?></td>
                          </tr>
                          <tr>
                            <td width="38%">Cognome:</td>
                            <td width="62%"><? echo $sott["cognome"];?></td>
                          </tr>
                          <tr>
                            <td width="38%">Nome:</td>
                            <td width="62%"><? echo $sott["nome"];?></td>
                          </tr>
                          <tr>
                            <td width="38%">Indirizzo:</td>
                            <td width="62%"><? echo $sott["indirizzo"];?></td>
                          </tr>
                          <tr>
                            <td width="38%">Citta:</td>
                            <td width="62%"><? echo $sott["citta"];?></td>
                          </tr>
                          <tr>
                            <td width="38%">Cap:</td>
                            <td width="62%"><? echo $sott["cap"];?></td>
                          </tr>
                          <tr> 
                            <td width="38%">Telefono:</td>
                            <td width="62%"><? echo $sott["telefono"];?></td>
                          </tr>
                          <tr> 
                            <td width="38%">Email:</td>
                            <td width="62%"><? echo $sott["email"];?></td>
                          </tr>
                          <tr> 
                            <td width="38%">Data:</td>
                            <td width="62%"><? echo $sott["data"];?></td>
                          </tr>
                          <tr> 
                            <td></td>
                            <td align="right">
                              <input name="id_sott" type="hidden" id="act" value="<? echo $sott["id_sott"]?>"> 
                              <input name="act" type="hidden" id="act" value="del"> 
                              <input name="back" type="button" value="Annulla" onClick="javascript:history.back();">
                              <input name="submit" type="submit" id="submit" value="Elimina">                        </td>
                          </tr>
                        </table>
                      </form></td>
                  </tr>
                </table>
                    <?
                
    }
                
    ?>
    Ma on funge e non capisco il motivo.
    Inoltre quell che vorrei realizzare è quanto segue:
    Oltre l'eliminazione del singolo record nella tabella sottoscrizioninzze vorrei avere la possibilità di poter eliminare una lista nozze e tutti i record della tabella sottoscizioninozze associati a quella lista.
    Mi scuso se non sono stato chiaro espero che possiate aiutarmi a risolvere il problema.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    Un dei quesiti posti precedentemente lo ho risolto cambiando la tastirera e per questo mi scuso con eventuali interessati al mio problema.
    Rimane cmq un'altro problema che vorrei risolvere.
    Se qualcuno di buona volontà può aiutarmi mi renderebbe meno pesante la mia emicrania.
    Come dicevo nel precedente post, esiste un comando che mi permette di cancellare un record della tabella listanozze e i record relazionati a questo nella tabella sottoscrizioninozze?
    Vi posto nuovamente la struttura delle due tabelle:

    TABELLA LISTA NOZZE
    id_lista int(11) NO auto_increment
    sposo_nome
    sposo_cognome
    sposa_nome
    sposa_cognome
    costo
    descrizione
    login
    password
    telefono
    email
    quota_visibile
    stato

    TABELLA SOTTOSCRIZIONENOZZE
    id_sott int(11) No auto_increment
    id_lista int(11) No 0
    cognome
    nome
    indirizzo
    citta
    cap
    telefono
    email
    quota
    data

    Io ho provato una soluzione del genere ma non va::

    Codice PHP:
     
                <?
                    
    if ((isset($_POST["act"])) AND ($_POST["act"] == "del") ){
                        
                        
    $sql "DELETE FROM listanozze, sottoscrizionenozze WHERE id_lista = ".$_POST["id_lista"]."";
                        
    $ris rs($sql);
                        
    stampa_msg();
                        
                    }else{
                        
    $sql "Select * FROM listanozze WHERE id_lista = ".$_GET["id_lista"];
                        
    $ris rs($sql);
                        
    $lsnozze mysql_fetch_array($ris)
                
    ?>
                

                <table width="60%" border="0" align="center" cellpadding="0" cellspacing="0" class="bordo">
                  <tr> 
                    <td class="intestazione">Elimina una Lista di Nozze</td>
                  </tr>
                  <tr> 
                    <td><form name="form1" method="post" action="">
                        <table width="98%" border="0" align="center" cellpadding="2" cellspacing="2">
                          <tr>
                            <td>Lista Nozze di: </td>
                            <td><? echo  $lsnozze["sposo_cognome"].",".$lsnozze["sposo_nome"]; ?> e <? echo  $lsnozze["sposa_cognome"].",".$lsnozze["sposa_nome"]; ?></td>
                          </tr>
                          <tr>
                            <td>Stato Lista:</td>
                            <td><? echo $lsnozze["stato"];?></td>
                          </tr>
                          <tr>
                            <td>Descrizione Viaggio:</td>
                            <td><? echo $lsnozze["descrizione"];?></td>
                          </tr>
                          <tr> 
                            <td width="38%">Costo:</td>
                            <td width="62%"><? echo $lsnozze["costo"];?></td>
                          </tr>
                          <tr> 
                            <td></td>
                            <td align="right">
                              <input name="id_lista" type="hidden" id="id_act" value="<? echo $lsnozze["id_lista"]?>"> 
                              <input name="act" type="hidden" id="act" value="del"> 
                              <input name="back" type="button" value="Annulla" onClick="javascript:history.back();">
                              <input name="submit" type="submit" id="submit" value="Elimina">                        </td>
                          </tr>
                        </table>
                      </form></td>
                  </tr>
                </table>
                <?
                
    }
                
    ?>
    Mi sapreste indicare dove sbaglio?

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    delete tabella1,tabella2 
    from tabella1,tabella2 
    where tabella1.id = tabella2.id and tabella1.id = x
    dove x è l'id della tabella principale che vuoi eliminare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    53
    Ciao Nicola scusami per la banalita avevo già provato come mi hai suggerito ma non funziona:
    [PHP]
    <?
    if ((isset($_POST["act"])) AND ($_POST["act"] == "del") ){

    $sql = "DELETE listanozze, sottoscrizionenozze FROM listanozze, sottoscrizionenozze WHERE listanozze.id = sottoscrizionenozze.id = id_lista";
    $ris = rs($sql);
    stampa_msg();

    }else{
    $sql = "Select * FROM listanozze WHERE id_lista = ".$_GET["id_lista"];
    $ris = rs($sql);
    $lsnozze = mysql_fetch_array($ris)
    ?>
    [PHP]
    Il select deve essere modificato oppure posso lasciarlo cosi come lo ho scritto sto cercando di capire piuttosto che copiare e ti sarei grato di una delucidazione.

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.