Newsgroup: it.comp.www.php
Titolo: Variabili perdute e query mysql .. aiutooo

ciao,
forse chiedo una cosa banale, ma mi capita questo
(mi perdo una variabile!!!!!):
ho 2 query una dopo l'altra:
$query_get_info="SELECT * FROM top WHERE id_song=".$id_song."";
$ris_query_get_info=x_db_query($query_get_info);
while(list($id_mtv, $id_dance, $id_rock,
$id_song)=tep_db_fetch_array($ris_query_get_info))
{....qui stampo solo 2 o tre variabili, tipo nome della canzone etc..}
$query_get_info="SELECT * FROM songs WHERE id_song=".$id_song."";
$ris_query_get_info=x_db_query($query_get_info);
while(list(,,$nome_song, $artista_song, $cod_song, $composer,$url_mp3,
$nokia, $ericsson, $motorola, $siemens, $panasonic, $philips, $sony,
$alcatel, $samsung, $telit)=tep_db_fetch_array($ris_query_get_info))
{....qui stampo solo 2 o tre variabili, tipo nome della canzone etc..}
La seconda mi da errore perchè si è perso $id_song !!!!
sarà banale, ma non capisco perchè .... :-*(
Sono alle prime armi con Mysql, ma che voi sappiate si possono unire queste
2 query in una sola?Come?
Grazie mille in anticipo !!!
 
            -- Yena --

 queste 2 query in una sola?Come?
nel primo list mettigli un nome come id_song_2...
ciao

 ha scritto nel messaggio
news:Xns916D66EC8E...@10.16.96.46...


 diverse? 
ci sarebbe (
www.mysql.com
) ma ti do una mano:
SELECT top.campo1, top.campo2, ..., songs.campo1, songs.campo2
FROM top, song
WHERE top.id_song=$id_song
AND top.id_song=songs.id_song;
ciao

 > c'è un manuale di mysql che lo spieghi le operazioni su tabelle



Dipende...
Si puo' usare ed e comodo da usare, ma se ti serve solo una o due colonne di
una tabella con 100 colonne sicuramente non e' efficiente.
Se ti servono tutte le colonne in una tabella con 3 colonne non fa
differenza (anzi, sara' piu efficiente la SELECT * FROM tbl, perche' mySQL
non deve mappare il risultato).
Altro argomento per usare *:
un
    "SELECT * FROM ..."
e piu' facile da leggere (e debuggare) di un:
"SELECT tt.TicketNumber, tt.TimeIn, tt.ProjectReference,
tt.EstimatedShipDate, tt.ActualShipDate, tt.ClientID,tt.ServiceCodes,
tt.RepetitiveID,tt.CurrentProcess, tt.CurrentDPPerson, tt.RecordVolume,
tt.DPPrinted FROM ..."
La regola da applicare IMHO sarebbe questa:
Chiedere solo quello che e' necessario (e quindi * se ti serve tutto).
Per sapere di piu': manuale mysql sul sito mysql al capitolo 5.2

 wrote in
news:5k7P7.238019$
sq5.11...@news.infostrada.it
: 

a dire il vero è anche una regola che viene imposta agli applicativi un po' 
ovunque per motivi di sicurezza...
esempio:
mettiamo che ogni 2-3 mesi, venga rilasciata una release nuova per una 
applicazione "pippo".
supponiamo che pippo 1.0 selezioni da una tabella 'clienti' su remoto le 
segg. informazioni:
 - id
 - ragione_sociale
 - indirizzo
 - partita_iva
supponiamo che la release successiva, pippo 1.1 abbia anche la feature di 
inserire per il cliente il numero di fax: aggiungere una colonna alla 
tabella potrebbe rendere inutilizzabile la release 1.0 se usassi funzioni 
come mysql_num_rows per fare i miei cicli nel programma... mentre se pippo 
1.0 avesse avuto i campi schiantati sarebbe stato comunque utilizzabile e 
quindi, nel caso si fosse trovato un 'baco' nella 1.1, si sarebbe potuto 
rollbackare senza problemi alla release precedente.
non è quindi una consiglio da seguire solo motivi prestazionali ma anche 
per motivi di compatibilità (e in genere, tutti i software vengono 
aggiornati e ridistribuiti..)
ciao!

 ha scritto nel messaggio
news:Xns916E5B3F6...@10.16.96.46...
