Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 10-06-11, 17:33   #1 (permalink)
User Newbie
 
Data di registrazione: Jun 2011
Ubicazione: Torino
Messaggi: 2
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:
Codice PHP:
$result mysql_query("SELECT * FROM Persons");

while(
$row mysql_fetch_array($result))
  {
  echo 
$row['FirstName'] . " " $row['LastName'];
  echo 
"<br />";
  } 
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:
Codice 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'];

  } 

Sapete aiutarmi in qualche altro modo mostrandomi una soluzione più corretta.

Grazie a tutti per l'attenzione
Buona giornata
Luca
DeSposi non in linea   Rispondi citando
Vecchio 10-06-11, 17:42   #2 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Ciao DeSposi,
il primo codice è corretto, il secondo può essere snellito usando un INNER JOIN utilizzando cosi un unica query:
Codice 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'];

  } 
Thedarkita ora è in linea   Rispondi citando
Vecchio 13-06-11, 11:49   #3 (permalink)
User Newbie
 
Data di registrazione: Jun 2011
Ubicazione: Torino
Messaggi: 2
Wow! Grazie mille!
Proprio quello che cercavo e finalmente ho capito sto inner joint!
DeSposi non in linea   Rispondi citando
Vecchio 15-06-11, 20:19   #4 (permalink)
 
L'avatar di Dascos
 
Data di registrazione: Mar 2011
Ubicazione: Savona
Messaggi: 102
Invia un messaggio tramite Skype a Dascos
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, Nome

compleanni:
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"

!!!!!
__________________
Sito
Dascos non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:31.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.