- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Consigli su mysql
-
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 * FROMserviziIscrizione
WHEREidIscritti
="$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 * FROMtariffario
WHEREidservizi
="$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">€ <?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?
-
Beh,
$query_trf = "SELECT * FROMtariffario
WHEREidservizi
="$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 * FROMservizi
WHEREid
="$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);
-
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...
-
Puoi dare un occhiata qui a come usarle:
http://www.morpheusweb.it/html/manuali/sql/sql_join.asp
http://www.mrwebmaster.it/sql/guide/join-relazioni-tabelle_195.html
-
Ti ringrazio. Ora me le studio un po' e vediamo che cosa ne viene fuori