Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
Sito con news
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 13 Feb 2009 15:05    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 14 Feb 2009 17:39    Oggetto: Rispondi citando

Scusa, perchè vuoi fare l'union di 3 query diverse?
Secondo me le lasci separate e poi estrai i 3 recordset indipendentemente.
Top
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 14 Feb 2009 19:03    Oggetto: Rispondi citando

Allora non mi conviene creare una funzione e chiamarla e volte,con le rispettive query?

Altrimenti creo sql1,sql2,sql3 e le uso Wink
Top
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 14 Feb 2009 19:19    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 14 Feb 2009 23:18    Oggetto: Rispondi citando

Diciamo che anche se non uso le funzioni non c'è tanto codice da scrivere,vedrò. Wink
Top
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 17 Feb 2009 17:33    Oggetto: Rispondi citando

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 Crying or Very sad Crying or Very sad
Top
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 17 Feb 2009 17:56    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11568
Residenza: Tokelau

MessaggioInviato: 17 Feb 2009 18:04    Oggetto: Rispondi citando

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.

Ciao
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 20:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 18 Feb 2009 22:14    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 19 Feb 2009 08:58    Oggetto: Rispondi citando

Infatti sto cercando di rendere il layout fludio
Top
Profilo Invia messaggio privato
mdweb
Dio maturo
Dio maturo


Registrato: 18/12/07 15:59
Messaggi: 4412

MessaggioInviato: 20 Feb 2009 21:48    Oggetto: Rispondi citando

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?
Codice:

WHERE id=$id
Top
Profilo Invia messaggio privato
Nik
Semidio
Semidio


Registrato: 29/10/05 18:44
Messaggi: 204
Residenza: Grosseto - Maremma

MessaggioInviato: 07 Ott 2009 23:13    Oggetto: Rispondi

ma poi com'è finita?
Top
Profilo Invia messaggio privato HomePage AIM Yahoo MSN
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 1 ora
Vai a Precedente  1, 2
Pagina 2 di 2

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi