Precedente :: Successivo |
Autore |
Messaggio |
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 13 Feb 2009 15:05 Oggetto: |
|
|
Adesso in una pagina ho 3 query esattamente una che estrae gli articoli una i commenti e una le categoria (News,sondaggi,tutorial,recensioni,articoli).
Come posso unirle?
uso Union?
Qualche esempio?
il php rimane uguale?
ecco ad esempio se abbiamo questo codice:
Codice: |
SELECT titolo,testo,data,autore,mail FROM news WHERE id='$id UNION SELECT autore_comm,commento WHERE id='$id'
|
il php resterà sempre:
Codice: |
$esegui = mysql_query($query, $db);
$row = mysql_fetch_array($esegui);
echo "<h2>$row[titolo]</h2>"
|
e per i commenti ed ad esempio:
Codice: |
echo "<h2>$row[autore]</h2>"
|
Giusto? |
|
Top |
|
|
freemind Supervisor sezione Programmazione
Registrato: 04/04/07 20:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 14 Feb 2009 17:39 Oggetto: |
|
|
Scusa, perchè vuoi fare l'union di 3 query diverse?
Secondo me le lasci separate e poi estrai i 3 recordset indipendentemente. |
|
Top |
|
|
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 14 Feb 2009 19:03 Oggetto: |
|
|
Allora non mi conviene creare una funzione e chiamarla e volte,con le rispettive query?
Altrimenti creo sql1,sql2,sql3 e le uso |
|
Top |
|
|
freemind Supervisor sezione Programmazione
Registrato: 04/04/07 20:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 14 Feb 2009 19:19 Oggetto: |
|
|
Vedendo la cosa a pezzi è difficile darti una risposta definitiva.
Dipende da tante cose...
Per esempio se quelle informazioni le usi solo in quella pagina allora potrebbe aver senso avere le tre query chiamate li e i 3 recordset che vengono letti.
Se invece l'elenco delle news (per dirne una) lo usi in tante pagine del sito allora conviene avere una funzione che faccia la query e che butti fuori i risultati.
Potresti pensare di creare funzioni che tirino furori le info dalle varie tabelle, parametrizzando varie cose come la where, l'order by e la limit.
Queste funzioni ritornano ognuna un recordset.
Queste verrebbero chiamate nei punti in cui hai bisogno le cose.
Esempio cretino:
- crei una funzione che ritorni tutte le news, magari in cui puoi settare appunto la limit e la where da paramtri.
- la query deve essere di fatto una "SELECT * FROM ... " (oppure una select * per la tabella news con in join altre info da altre tabelle).
Nella pagina in cui visualizzi solo la data e il titolo delle ultime news chiamerai quella funzione che ritorna l'rs con anche le altre info che ignorerai.
Ora, otterrai un sistema meno ottimizzato ma più versatile.
A seconda di quello che ti serve puoi usare o no questa strada.
Per un sito piccolo forse è meglio puntare sull'ottimizzazione ma se la cosa deve crescere no.
Ovviamente l'ideale nel secondo caso sarebbe l'orm... |
|
Top |
|
|
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 14 Feb 2009 23:18 Oggetto: |
|
|
Diciamo che anche se non uso le funzioni non c'è tanto codice da scrivere,vedrò. |
|
Top |
|
|
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 17 Feb 2009 17:33 Oggetto: |
|
|
Visto che uso un layout fisso mi servirebbe uno script che dopo un tot di caratteri creai una nuova pagina mi sono spiegato ad esempio:
Citazione: |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean sit amet dolor. Maecenas faucibus venenatis arcu. Aenean eros est, molestie sed, tincidunt laoreet, fringilla quis, lectus. Donec ultrices ante ut lorem. Nulla id metus. Maecenas dignissim interdum libero. Donec posuere porttitor tortor. Aliquam vestibulum orci quis arcu. Maecenas bibendum, odio quis placerat tristique, arcu sem tristique mauris, quis facilisis pede ligula ac odio. Morbi libero nisl, bibendum vitae, egestas sed, consectetur ac, massa. Integer faucibus consequat pede. Aliquam faucibus elit a leo. Aenean et augue. Cras consequat, dolor sit amet rhoncus luctus, leo ligula scelerisque turpis, sit amet scelerisque augue magna sed ligula. Pellentesque pellentesque orci eu libero. Nunc a augue. Nunc cursus purus nec felis.
|
ad esempio questa è la prima parte di un articolo.Adesso un un pulsante Vai alla seconda pagina dovrebbe stampare questo:
Citazione: | Duis hendrerit diam nec est. Integer pellentesque. Vestibulum ultrices libero nec arcu. Maecenas nec mi at ligula pharetra imperdiet. Proin tincidunt leo hendrerit dui dapibus elementum. Sed dignissim mi. In ultrices, turpis vel ornare eleifend, purus nisl elementum eros, et auctor neque tellus nec eros. Sed purus. In hac habitasse platea dictumst. Donec a odio. In ac magna. Duis in arcu non nibh dapibus scelerisque. Aliquam varius, enim et feugiat tristique, enim felis semper libero, ut ornare lacus urna ut risus. Nunc id tortor in arcu pretium varius. |
Mi sono spiegato...
Qui non so proprio da dove cominciare |
|
Top |
|
|
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 17 Feb 2009 17:56 Oggetto: |
|
|
adesso che ci ripenso potrei usare le funzioni strlen
e substr
ad esempio:
Codice: |
l=strlen($row[testo])
if.....
$contenuti=substr($row[testo], 0,700)
...
|
In questo modo calcolo quanto è lungo un testo se è più lungo di un tot di caratteri che ancora devo decidere,ne stampa ad esempio 700.
Il tutto posso immagazzinarlo in una $_GET e in base a questa stmpare i vari contenuti.
Che ne dite di questa soluzione? |
|
Top |
|
|
SverX Supervisor Macchinisti
Registrato: 25/03/02 11:16 Messaggi: 11568 Residenza: Tokelau
|
Inviato: 17 Feb 2009 18:04 Oggetto: |
|
|
mdweb ha scritto: | Visto che uso un layout fisso mi servirebbe uno script che dopo un tot di caratteri creai una nuova pagina mi sono spiegato ad esempio: |
Conta i caratteri, se sono più della tua "soglia" cerca il precedente (o successivo) "spazio" (o "a capo", se vuoi separare per capoversi) e stampa solo fino a quel punto lì. Poi nel link alla pagina successiva ti conviene passarti un parametro per fare lo stesso conto per procedere da dove avevi interrotto.
|
|
Top |
|
|
freemind Supervisor sezione Programmazione
Registrato: 04/04/07 20:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 18 Feb 2009 22:14 Oggetto: |
|
|
Occhio!
Gli articoli sono formattati? Se hai nell'articolo del tag html e con substr tagli male, tutto il layout salta!
Al massimo conta il numero di caratteri della stringa processata da strip_tags che elimina i tag html dalla stessa.
Secondo me poi della $_GET non te ne fai nulla.
Quando vai alla seconda pagina butti fuori i successivi n caratteri del testo ritirandolo fuori con una query dal db, la select in questo caso è leggera.
In ogni caso però, parlo sia dal punto di vista dello sviluppatore che dalla comodità d'uso dell'utente (dove l'utente sarei io), preferire mettere tutto il testo in una sola pagina, con un div che scrolla.
Questa è ovviamente una mia opinione. |
|
Top |
|
|
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 19 Feb 2009 08:58 Oggetto: |
|
|
Infatti sto cercando di rendere il layout fludio |
|
Top |
|
|
mdweb Dio maturo
Registrato: 18/12/07 15:59 Messaggi: 4412
|
Inviato: 20 Feb 2009 21:48 Oggetto: |
|
|
Riguarda l'uso delle funzioni,sono necessarie per contare gli articoli.
Praticamente io estraggo id,titolo e data.
Codice: |
{
echo "<a href=\"view.php?id=$row[id]\"> "$row[titolo]" </a><br>";
}
|
Quindi creo una funzione in questo modo:
Codice: |
function commenti($id){
$query="SELECT id,autore,commento FROM commenti WHERE id=$id";
$result=mysql_query($query);
$cont=$count=mysql_num_rows($result);
return $cont;
} |
La chiamo così
Codice: |
echo commenti($row[id])
|
Qui devo mettere gli apici?
|
|
Top |
|
|
Nik Semidio
Registrato: 29/10/05 18:44 Messaggi: 204 Residenza: Grosseto - Maremma
|
Inviato: 07 Ott 2009 23:13 Oggetto: |
|
|
ma poi com'è finita? |
|
Top |
|
|
|