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 18-03-10, 15:11   #16 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Sotto:
Codice PHP:
$resultshout $db->sql_query("SELECT * FROM shout WHERE user='$userok' or global=1 $where order by date DESC"); 
Metti:
Codice PHP:
echo "SELECT * FROM shout WHERE user='$userok' or global=1 $where order by date DESC"
E incolla qui la query che ti mostra.
Thedarkita ora è in linea   Rispondi citando
Vecchio 18-03-10, 15:14   #17 (permalink)
User
 
L'avatar di Sovietiko
 
Data di registrazione: Jul 2005
Ubicazione: Vimodrone
Messaggi: 251
Forse perchè mancano gli apici?
Codice:
SELECT * FROM shout WHERE user='Dangerous' or global=1 OR user = Test OR user = Prova order by date DESC

Non ci sono messaggi da parte dei tuoi amici!
__________________
Admin e Webmaster Del Sito WebEasyIT
Sovietiko non in linea   Rispondi citando
Vecchio 18-03-10, 15:16   #18 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Ah ecco, tu conservi i nick e non gli id, per cui:
Codice PHP:
 <?php
//riconosco utente
$cookie[0] = intval($cookie[0]);
$usrinfo $db->sql_fetchrow($db->sql_query("select * from ".$prefix."_users WHERE user_id='$cookie[0]'"));
$userok $usrinfo['username'];
//controllo le liste amici
$result $db->sql_query("SELECT * FROM amici where richiede='$userok' AND active='1' OR amico='$userok' AND active='1' order by amico");
$amicichehai $db->sql_numrows($db->sql_query("SELECT * FROM amici where richiede='$userok' AND active='1' OR amico='$userok' AND active='1'"));
if(
$amicichehai == '0') {
$final "<center><b> Al momento non hai amici!</b></center>";
}
else {
$where '';
while (
$row $db->sql_fetchrow($result)) {
            
$amicis $row['amico'];
            
$richiede $row['richiede'];
             if(
$amicis == $userok) { $amici $richiede; }
            else if(
$amicis != $userok) { $amici $amicis; }
            
    
$where.= ' OR user = \''.$amici.'\'';
    }
    
     
//CONTROLLO I MESSAGGI NELLA SHOUT
    
$resultshout $db->sql_query("SELECT * FROM shout WHERE user='$userok' or global=1 $where order by date DESC");
    
$totshout $db->sql_numrows($resultshout);
    if(
$totshout == 0) {$final "<center><b>Non ci sono messaggi da parte dei tuoi amici!</b></center>";}
    else {
    while (
$rows $db->sql_fetchrow($resultshout)) {
    
    
$id $rows['id'];
    
$user $rows['user'];
    
$globale $rows['global'];
    
$text $rows['text'];


if(
$globale ==0) {
$final .= "<center><table border=\"0\" width=\"80%\" cellpadding=\"2\" cellspacing=\"2\"><tr><td width=\"1%\">$foto</td><p><td valign=\"top\"><font color=\"#$coloreuser2\"><b>$user</a></b></font>: $text</a></p></td><td align=\"right\">$data&nbsp;&nbsp;</td></tr></table><hr></center>";
}
if(
$globale != 0) {
$final .= "<center><table border=\"0\" width=\"80%\" cellpadding=\"2\" cellspacing=\"2\"><tr><td width=\"1%\"><img src=\"images/danger/warning.gif\" title=\"Attenzione: Messaggio Globale\" align=\"left\"></td><td valign=\"top\"><font color=\"red\"><b>Messaggio Globale</a></b></font>: $text</a></td><td align=\"right\"><img src=\"images/alert.gif\" title=\"Messaggio Globale $id\"></td></tr></table><hr></center>";
}
}
    
    
}
}

echo 
"$final<br><br>";
Thedarkita ora è in linea   Rispondi citando
Vecchio 18-03-10, 15:22   #19 (permalink)
User
 
L'avatar di Sovietiko
 
Data di registrazione: Jul 2005
Ubicazione: Vimodrone
Messaggi: 251
Cosa dire.. Grazie mille a tutti, sembra funzionare regolarmente!
__________________
Admin e Webmaster Del Sito WebEasyIT
Sovietiko non in linea   Rispondi citando
Vecchio 18-03-10, 17:15   #20 (permalink)
User
 
L'avatar di giovandres90
 
Data di registrazione: Dec 2008
Messaggi: 83
Ma in teoria tu cosa vuoi stampare? dici come hai strutturato la tabella del db? se non avevo capito male tu volevi stampare tutti i messagi dei amici del user + i suoi giusto ?
__________________
Realizzo script php-Mysql- creazione siti web
giovandres90 non in linea   Rispondi citando
Vecchio 18-03-10, 20:59   #21 (permalink)
User
 
L'avatar di Sovietiko
 
Data di registrazione: Jul 2005
Ubicazione: Vimodrone
Messaggi: 251
Quote:
giovandres90 Visualizza il messaggio
Ma in teoria tu cosa vuoi stampare? dici come hai strutturato la tabella del db? se non avevo capito male tu volevi stampare tutti i messagi dei amici del user + i suoi giusto ?
Esatto.

Ho la tabella amici

Amico - Richiede - Data

E la tabella shout

user - text - data - global


Lo script modificato da Thedarkita funziona perfettamente, anche se mi vengono dubbi sulla pesantezza.. Cosa succede se ci sono 400 amici e oltre 10k di messaggi? lol

Ora devo implementare il marquee per lo scroll e mettere un limite max di messaggi, oltre che eliminare in automatico i messaggi vecchi di 1 settimana.


Ciao!
__________________
Admin e Webmaster Del Sito WebEasyIT
Sovietiko non in linea   Rispondi citando
Vecchio 18-03-10, 21:03   #22 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,439
Invia un messaggio tramite Skype a Thedarkita
Con l'aumentare della grandezza della tabella è ababstanza ovvio che i tempi di elaborazioni diventano più lunghi, volendo invece di fare 2 query sarebbe anche possibile ridurre il tutto ad 1 sola cosa che in certi casi mi sembrerebbe più performante, se il numero di messaggi scritti è abbastanza basso e quindi magari per qualche ora hai sempre gli stessi messaggi da mostrare, puoi anche implementare una cache.
Thedarkita ora è in linea   Rispondi citando
Vecchio 18-03-10, 21:06   #23 (permalink)
User
 
L'avatar di Sovietiko
 
Data di registrazione: Jul 2005
Ubicazione: Vimodrone
Messaggi: 251
Sì Thedarkita, hai perfettamente ragione, ma credo che per iniziare è più che sufficiente, tutto dipenderà dalla mole di utenza.

Se un domani l'utenza e i messaggi saranno tantissimi, si provvederà alla modifica.


Per il momento sono più che soddisfatto di come funziona.
__________________
Admin e Webmaster Del Sito WebEasyIT
Sovietiko non in linea   Rispondi citando
Rispondi


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:26.




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

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.