Problema con select e mini avatar nei messaggi
Problema con select e mini avatar nei messaggi postato il 14/01/2018 19:57:47 nel forum programmazione, open source e hosting
Buonasera a tutti.
Stasera ho provato ad inserire il mini avatar nei messaggi. Ci sono riuscita ma la funzione mi da un problema:
Il mini avatar appare accanto al mittente ma è lo stesso per tutti.
Il codice è questo
<?php
$avatar = gdrcd_query("SELECT personaggio.url_img_chat , personaggio.nome , messaggi.mittente FROM personaggio LEFT JOIN messaggi ON personaggio.url_img_chat=personaggio.nome ");
?>
come posso risolvere?
Pagine → 1
14/02/2018 02:58:47 e modificato da nyhr il 14/02/2018 02:59:55
fiammettainlove ha scritto: Buonasera a tutti.
Stasera ho provato ad inserire il mini avatar nei messaggi. Ci sono riuscita ma la funzione mi da un problema:
Il mini avatar appare accanto al mittente ma è lo stesso per tutti.
Il codice è questo
<?php
$avatar = gdrcd_query("SELECT personaggio.url_img_chat , personaggio.nome , messaggi.mittente FROM personaggio LEFT JOIN messaggi ON personaggio.url_img_chat=personaggio.nome ");
?>
come posso risolvere?
Prova in questo modo , io ho risolto cosi:
<?php
$avatar = gdrcd_query("SELECT personaggio.url_img_chat , personaggio.nome , messaggi.mittente, messaggi.id, messaggi.destinatario FROM personaggio LEFT JOIN messaggi ON personaggio.nome=messaggi.mittente WHERE messaggi.id = '".gdrcd_filter('num',$_REQUEST['id_messaggio'])."'");
?>
e per stampare l'immagine con collegamento diretto alla scheda così
<a HREF="../popup.php?page=s1&pg=<?php echo ($record['mittente']);?>", target="_blank">
<img src="<?php echo gdrcd_filter('out',$avatar['url_img_chat']);?>" width="100" height="100" border="1" title="SCHEDA PERSONAGGIO"/></a>
popup.php?page= poi lo sostituisci con il link per la scheda che utilizzi di solito
03/10/2022 13:35:58
sallys ha scritto: Scusate, sono di nuovo io che rompo le scatole...
Stavo cercando di mettere anch'io l'avatar di chat all'interno dei messaggi (sto usando i messaggi formato whatsapp), ma purtroppo con entrambi i metodi qui postati non funziona...si vede lo stesso avatar per tutti quanti.
Io purtroppo non me ne intendo proprio di query e quindi non ne vengo a capo 😥
Consiglierei di lavorare su un problema per volta :D
Puoi descrivere i passaggi che hai provato a fare e riportare gli spezzoni di codice che hai provato a modificare (e come) ? Così intanto vediamo di capire dov'è l'errore
03/10/2022 16:39:07
sallys ha scritto: Hai ragione, scusami 😅 anche perchè in realtà sto notando più di un problema con gli sms in formato whatsapp...magari aprirò un post solo dedicato a quello.
Probabilmente conviene, perché sicuramente dovrai risolvere diverse altre cose per arrivare al risultato, quindi direi di esaurire questo specifico topic sulla questione del mini avatar 👍
Riguardo al miniavatar ho provato esattamente i due suggerimenti che sono stati posti qui sopra e poi ho provato anche con questo:
<?php
$query = "SELECT personaggio.url_img_chat, nome FROM personaggio WHERE nome = '".gdrcd_filter('in',$_SESSION['login'])."'";
Le query sql per "leggere" dati dal database sono molto espressive e se le leggi con calma e con un pizzico di conoscenza in inglese riesci a capire facilmente costa sta succedendo qui:
SELECT personaggio.url_img_chat, nome (Cerca il contenuto delle colonne url_img_chat e nome)
FROM personaggio (dalla tabella chiamata "personaggio")
WHERE nome = ... (dove la colonna "nome" ha il valore posto dopo il simbolo "=")
Il problema è che nel tuo caso stai chiedendo alla query di prendere l'avatar di chat di $_SESSION['login'] che contiene il nome di chi sta visualizzando la pagina e non del mittente del messaggio.
Adesso presumo tu stia lavorando sul file in /pages/messages/read.inc.php,
Quindi per visualizzare l'avatar di chat del mittente nella pagina ti suggerirei di metterti qui su riga 27
https://github.com/GDRCD/GDRCD/blob/master/pages/messages/read.inc.php#L27 ↗
e provare a comporre la stessa query ma indicando questa volta il "mittente" invece del $_SESSION['login']:
[...]
// Suddivido la data di invio
list($data_spedito, $ora_spedito) = explode(' ', $record['spedito']);
$mittente = gdrcd_filter('in', $record['mittente']);
$personaggio = gdrcd_query("SELECT url_img_chat FROM personaggio WHERE nome = '$mittente');
?>
<div class="read_message_box">
[...]
A questo punto dovremmo aver incamerato il dato che ci serve nella variabile $personaggio.
Possiamo per esempio provare a visualizzarlo vicino al nome del mittente, qui in riga 38
https://github.com/GDRCD/GDRCD/blob/master/pages/messages/read.inc.php#L38 ↗
<div class="infos">
<span class="title"><?php echo gdrcd_filter('out', $MESSAGE['interface']['messages']['sender']).": "; ?></span>
<div class="miniavvo_scheda">
<a href="main.php?page=scheda&pg=<?php echo gdrcd_filter('out', $record['mittente']); ?>">
<img class="miniavvo_scheda_img" src="<? echo !empty($personaggio['url_img_chat'])? $personaggio['url_img_chat'] : '../themes/advanced/imgs/img_chat_standard.png' ?>">
</a>
</div>
<span class="body"><?php echo gdrcd_filter('out', $record['mittente']); ?></span>
</div>
Se tutto in ordine, dovresti poter vedere il mini avatar del mittente aprendo un messaggio, da quel punto in poi giocando con l'html puoi provare a visualizzarlo nel posto che preferisci
10/10/2022 12:03:18
Leggero off topic...Vi spiace se faccio un plauso pubblico a Blancks per grandissimo aiuto che da sul forum? :) Vedere che tutto il team GDRCD offre gratuittamente così tanto aiuto ai neofiti del pacchetto GDRCD è davvero bello. Grazie a nome di tutti! :)
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Exclusive Villa GdR ↗
Neverness to Everness ↗
AlterEgo ↗
World of Warship ↗
World of the Sea Battle ↗