• User Attivo

    Consigli su mysql

    salve a tutti, non sono molto pratica con mysql. Ovvero lo utilizzo per fare delle select, insert, update, delete in modo molto semplice e lineare. Tuttavia a volte diventa piuttosto oneroso fare delle select su più tabelle e su più pagine.
    Mi spiego meglio:
    Per visualizzare un elenco con i servizi presi da degli iscritti ad un evento agisco in questa maniera:
    1 - Seleziono una tabella dove sono memorizzati i servizi per l'iscrizione;
    2 - attraverso l'id seleziono un'altra tabella in cui sono memorizzati i prezzi per il servizio;
    3 - seleziono un'altra tabella in cui è memorizzato il nome del servizio.

    Vi posto il codice utilizzato

    [PHP]
    <?php
    $query_sei = "SELECT * FROM serviziIscrizione WHERE idIscritti="$isc[id]"";
    $result_sei = mysql_query($query_sei,$db);
    if(!$result_sei) {
    echo "$query_sei<br><br>";
    echo mysql_error($db); echo "<br>";
    die($err_query_fallita);
    }
    while ($sei = mysql_fetch_array($result_sei))
    {
    $query_trf = "SELECT * FROM tariffario WHERE idservizi="$sei[idServizi]"";
    $result_trf = mysql_query($query_trf,$db);
    if(!$result_trf) {
    echo "$query_trf<br><br>";
    echo mysql_error($db); echo "<br>";
    die($err_query_fallita);
    }
    $trf = mysql_fetch_array($result_trf);

    $query_ser = "SELECT * FROM `servizi` WHERE `id`=\"$sei[idServizi]\"";
    $result_ser = mysql_query($query_ser,$db);
    if(!$result_ser) {
    	echo "$query_ser<br><br>";
    	echo mysql_error($db); echo "<br>";
    	die($err_query_fallita);
    }
    $ser = mysql_fetch_array($result_ser) ?>
    <table width="100%" border="0" cellspacing="2" cellpadding="0">
    	<tr>
    		<td class="TDdatiazienda"><?php echo $ser['nome']?> </td>
    		<td class="TDdatiazienda"><div align="right">&euro; <?php echo $trf['przAdulti']?> </div></td>
    	</tr>
    </table><?php
    

    }
    ?>
    [/PHP]

    Ora così funziona ma come potete vedere devo fare molteplici passaggi. C'è un modo per accorciare il numero di righe da scrivere?


  • User Attivo

    Beh,
    $query_trf = "SELECT * FROM tariffario WHERE idservizi="$sei[idServizi]"";
    $result_trf = mysql_query($query_trf,$db);
    if(!$result_trf) {
    echo "$query_trf<br><br>";
    echo mysql_error($db); echo "<br>";
    die($err_query_fallita);
    }
    La puoi modificare in
    $result_ser = mysql_query("SELECT * FROM servizi WHERE id="$sei[idServizi]"")or die(mysql_error());

    E poi
    while ($sei = mysql_fetch_array($result_sei))
    Puoi semplicemente modificarlo in
    $sei = mysql_fetch_array($result_sei);


  • User Attivo

    indubbiamente così scrivo molte righe in meno.

    Ma se io volessi usare le join? Purtroppo non so come usarle ma forse potrebbero fare al caso mio...


  • ModSenior

  • User Attivo

    Ti ringrazio. Ora me le studio un po' e vediamo che cosa ne viene fuori :mmm: