- Home
- Categorie
- Coding e Sistemistica
- PHP
- Illuminatemi sulle selezioni da database
-
Illuminatemi sulle selezioni da database
Buongiorno a tutti, intanto complimenti per il forum, davvero molto bello, ultile e interessante.
Finite le premesse, vorrei chiedere agli esperti qualche consiglio per affrontare meglio le selezioni dal database.
Attualmente se devo stampare dei dati dal database, mi muovo utilizzando il classico codice di selezione:
[PHP]
$result = mysql_query("SELECT * FROM Persons");while($row = mysql_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br />";
}
[/PHP]Volevo sapere se esistevano delle alternative a questa selezione (non utilizzando framework preesistenti.
Un altro dubbio che mi assilla è questo, farò un esempio banale.. supponiamo di avere una tabella con dei compleanni e che a ogni mese sia associato un numero, in un altra tabella ci sono i vari numeri dei mesi con i nomi (es: 1 - gennaio . 2 - febbraio ec..)
Attualmente mi muovo in questo modo, la come soluzione la trovo davvero sporca:
[PHP]
$result = mysql_query("SELECT * FROM compleanni");while($row = mysql_fetch_array($result))
{
$mese = $row['mese'];
$results = mysql_query("SELECT * FROM mesi where giorno_mese = '$mese' ");while($rows = mysql_fetch_array($results))
{
echo $rows['nome_mese'];}
[/PHP]
Sapete aiutarmi in qualche altro modo mostrandomi una soluzione più corretta.
Grazie a tutti per l'attenzione
Buona giornata
Luca
-
Ciao DeSposi,
il primo codice è corretto, il secondo può essere snellito usando un INNER JOIN utilizzando cosi un unica query:
[php]
$result = mysql_query("SELECT compleanni.,mesi. FROM compleanni INNER JOIN mesi ON mesi.giorno_mese=compleanni.mese");while($row = mysql_fetch_array($result))
{
echo $row['nome_mese'];}
[/php]
-
Wow! Grazie mille!
Proprio quello che cercavo e finalmente ho capito sto inner joint!
-
Attenzione però con quei tipi di select (le join), perchè facendo compleanni.,mesi. rischi che un campo di compleanni con lo stesso nome di un campo di mesi venga "sovrascritto" da quello della tabella mesi!!
Es:
compleanni => ID, ID_Mese, Nome, Cognome
mesi => ID, Nomecompleanni:
1, 3, "mario", "rossi"
14, 8, "luigi", "verdi"mesi:
1, "gennaio"
2, "febbraio"
...
Con queste tabelle ti ritrovi un array così:
ID => 3
ID_Mese => 3
Nome => "marzo"
Cognome => "rossi"!!!!!