img sms[RISOLTO]; Ordine Bacheca[RISOLTO]
img sms[RISOLTO]; Ordine Bacheca[RISOLTO] postato il 31/05/2012 01:15:11 nel forum programmazione, open source e hosting e modificato da nuprestige il 01/06/2012 23:35:50
Ed eccomi incontrare altri ostacoli.
Avevo smesso di giocare con i codici per qualche mese, diciamo che sto rifacendo lo smalto (seh xD)
Bando alle ciance, ringrazio chiunque mi aiuti a fare questa cosa sicuramente semplice:
Nei messaggi ricevuti di un utente vorrei far apparire un mini avatar del mittente del messaggio. Il nome del mittente c'è, ma viene estratto dalla tabella messaggi del database, mentre invece l'immagine devo recuperarla dalla tabella Personaggio, e dirgli che ogni mittente deve avere la sua, in base al nome.
Dovrò fare un Join tra il nome in personaggio e il mittente in messaggio?
Non ho idea però di come scrivere la query
Se qualcuno mi venisse incontro gli sarei gratissimo
Pagine → 1
31/05/2012 01:21:46
Prova in questo modo, se ho capito bene utilizzi extreme
{
$query1 = "SELECT URLImg2 FROM Personaggio WHERE Nome='".$rs['Mittente']."'";
$resul = mysql_query($query1);
$array = mysql_fetch_array($resul);
$immagine = $array['URLImg2'];
}
Ovviamente URLImg2 è l'immaginetta che va a cercare non so tu come vuoi chiamarla e poi il risultato della query lo vai a mettere dove vuoi far apparire l'immagine.
31/05/2012 09:44:37
nakamaro ha scritto: Prova in questo modo, se ho capito bene utilizzi extreme
{
$query1 = "SELECT URLImg2 FROM Personaggio WHERE Nome='".$rs['Mittente']."'";
$resul = mysql_query($query1);
$array = mysql_fetch_array($resul);
$immagine = $array['URLImg2'];
}
Ovviamente URLImg2 è l'immaginetta che va a cercare non so tu come vuoi chiamarla e poi il risultato della query lo vai a mettere dove vuoi far apparire l'immagine.
Perfetto ha funzionato ;)
Provo a chiederti un'altra cosa: cercavo di ordinare la lista dei post in bacheca per ultimo aggiornamento, e per farlo ho creato un nuovo campo in MessaggioAraldo che è un datetime, si chiama Aggiornamento e dovrebbe aggiornarsi ogni volta che qualcuno scrive un nuovo commento in bacheca, che sia padre o che sia una risposta ad un altro.
Ovviamente ho provato ad inserire una query nel file nuovabacheca, ma la cosa migliore che ha fatto è stato aggiornare casualmente dei post, ma solo commenti, scrivendone uno nuovo non andava.
Era tipo così:
mysql_query("UPDATE MessaggioAraldo SET Aggiornamento=NOW() WHERE IDMessaggio = 'IDMsgPadre'");
ma credo proprio che WHERE IDMessaggio = 'IDMsgPadre' non sia ciò che mi serve.
Aiuto?
31/05/2012 10:54:20
Secondo me quella query è giusta...va solo messa nel punto giusto del codice
31/05/2012 20:56:12
leoblacksoul ha scritto: Secondo me quella query è giusta...va solo messa nel punto giusto del codice
No leo, si comporta in modo strano ovunque la metta.
Che poi, io devo fare aggiornare il messaggio se è nuovo, oppure il messaggio padre se è un commento, non il commento. Perchè poi per ordinarli, nella lista ci sono i messaggi padri, mica i commenti.
Sto impazzendo ç_ç
31/05/2012 21:03:14
Puoi postare il codice della pagina?
31/05/2012 21:50:42
leoblacksoul ha scritto: Puoi postare il codice della pagina?
Se non disturba la lunghezza :p
<? session_start();
include ('inc/parametri.inc.php');
include ('inc/controllo.php');
include ('inc/open2.php');
$ID=$_REQUEST['ID'];
$IDMsgPadre=$_GET['IDMsgPadre'];
$IDAraldo = $ID;
$IDMsgPadre = 0 + $IDMsgPadre;
$p = $_GET['p'];
$IDMsg = $_GET['IDMsg'];
$op=$_GET['op'];
if ($IDAraldo == ""){ ?>
Errore: Personaggio non identificato o bacheca non identificata!
<? exit();
};
$MySql = "SELECT * FROM Araldo WHERE IDAraldo = ".$IDAraldo;
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
If (($rs["Master"] == 1) && ($Master != 1)) {
echo "Bacheca riservata!<br><a href='araldo.php'>Torna alla bacheca</a>";
exit();
};
#echo "->".$IDGilda_S."<-";
If (($rs["Capo"]==1) && (((((0+$IDGilda_S) % 100) != 0)) || ($IDGilda_S == ""))) {
echo "Bacheca riservata!<br><a href='araldo.php'>Torna alla bacheca</a>";
exit();
}
$Punti = $rs['Punti'];
include ('inc/header.html.inc.php');
?>
<title>Bacheca</title>
</head>
<body><center><img src="semplice.png"></center><br>
<br>
<table cellpadding=2 cellspacing=0 border=0 width="100%"><tr>
<td colspan=3 align=center bgcolor=000000><font color=gray><b><?= htmlspecialchars($rs["Descrizione"]) ?></b></font><br>
<? if ($rs["Master"]==1) { ?>
<font color=gray><i>Riservato ai Master</i></font>
<? } elseif ($rs["Capo"] == 1) { ?>
<font color=gray><i>Riservato</i></font>
<? };
$rs->close;
if ($op == "modifica") {
$MySql = "SELECT * FROM MessaggioAraldo WHERE IDMessaggio = '$IDMsg' AND IDAraldo = '$IDAraldo'";
if ($_GET['Mod'] == '1') {
$MySql .= " AND Autore = '".pars($Login)."'";
}
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$Titolo = $rs["Titolo"];
$Messaggio = $rs["Messaggio"];
$rs->close;
}
if ($IDMsgPadre > 0) {
$MySql = "SELECT * FROM MessaggioAraldo WHERE IDMessaggio = '$IDMsgPadre'";
$Result = mysql_query($MySql);
$rs = mysql_fetch_array($Result);
$TitoloPadre = $rs["Titolo"];
$AutorePadre = $rs["Autore"];
$rs->close;
} ?>
</td>
</tr>
</table>
<br>
<center>
<table cellpadding=0 cellspacing=5 border=0>
<tr>
<form action="bacheca.php" method=Post>
<input type=hidden name=ID value="<?= $IDAraldo ?>">
<input type=hidden name=p value="<?= $p ?>">
<input type=hidden name=IDMsg value="<?= $IDMsg ?>">
<input type=hidden name=IDMsgPadre value="<?= $IDMsgPadre ?>">
<td valign=top bgcolor=#000000><center><b><a href="scheda.php?pg=<?= urlencode($Login) ?>"><img src="img/stemmi/<?= $ImgGilda_S ?>" border=0> <?= htmlspecialchars($Login) ?></a></b> <font color=gray>- <?= htmlspecialchars($DescGilda_S) ?></font></center></td>
</tr>
<? if ($IDMsgPadre > 0) { ?>
<tr>
<td valign=top bgcolor=#000000><i><font color=gray><center>Commento a</font> <b><font color=#cccccc><?= htmlspecialchars($TitoloPadre) ?></font></b> <font color=gray>di <b><?= htmlspecialchars($AutorePadre) ?></center></font></b></i></td>
</tr>
<?
} if ($IDMsgPadre == 0) { ?>
<tr>
<td align=center valign=top><br><font color=gray>Titolo</font><br><center><input type=text size=100 name=Titolo value="<?= htmlspecialchars($Titolo) ?>"></center></td>
</tr>
<?
}
mysql_query("UPDATE MessaggioAraldo SET Aggiornamento=NOW() ");
?>
<tr>
<td align=center><font color=gray>Contenuto</font><br><center><textarea cols=97 rows=15 name=Messaggio><?= htmlspecialchars($Messaggio) ?></textarea></center></td>
</tr>
<tr>
</tr>
<? if ($Punti == '1') {
$MySql = "SELECT * FROM Punti WHERE IDMessaggioAraldo = '$IDMsg'";
$Result = mysql_query($MySql);
for ($i = 1; $i <= 20; $i++) {
$rs = mysql_fetch_array($Result);
echo '<tr><td align=center>';
echo "<input name=Nome$i value='".$rs['Nome']."'><select name=Esperienza$i>";
for ($j = -10; $j <= 20; $j++) {
echo '<option value=''.($j/2).''';
if (($rs['Esperienza']==($j/2)) || ((''.$rs['Nome']=='') && ($j == 0))) {
echo ' SELECTED';
}
echo '>'.($j/2).'</option>';
}
echo '</select>';
echo '</td></tr>';
}
$rs->close;
}
?>
<tr>
<td align=center>
<input type=submit onclick="location.href='bacheca.php?ID=<?= $IDAraldo ?>&IDMsgPadre=<?= $IDMsgPadre ?>';" value="Inserisci"> <form action="bacheca.php?ID=<?= $IDAraldo ?>&IDMsgPadre=<?= $IDMsgPadre ?>" target="palestra" method="post"><input type=submit value="Indietro"></form><br><br><form action="araldo.php" target="palestra" method="post"><input type=submit value="Torna alle Bacheche"></form></td>
</tr>
</table>
</body>
</html>
La famosa query è incompleta perchè ci stavo lavorando ma niente da fare, ed è in una posizione casuale, anche perchè le ho provate tutte.
Vedi se ci capisci qualcosa xD
01/06/2012 20:57:46
DIrei che quella query non va decisamente lì. Va nella pagina bacheca.php, cioè quella a cui punta la pagina che hai postato e quella in cui avvengono le INSERT e gli UPDATE.
P.S.: avevo scordato quanto fosse brutto il codice bacheche di gdrcd 3 >.<
01/06/2012 21:59:03 e modificato da nuprestige il 01/06/2012 23:39:52
leoblacksoul ha scritto: DIrei che quella query non va decisamente lì. Va nella pagina bacheca.php, cioè quella a cui punta la pagina che hai postato e quella in cui avvengono le INSERT e gli UPDATE.
P.S.: avevo scordato quanto fosse brutto il codice bacheche di gdrcd 3 >.<
Dici eh? Allora adesso mi guardo bene il file bacheca.php
Dovrò metterla più di una volta secondo te? Almeno due forse, per i commenti e per i messaggi padre.
E poi, quando si posta un commento mi deve aggiornare il suo messaggio padre, non il commento.
Alla luce di ciò, pensi ancora che sia corretta come l'avevo scritta all'inizio?
PS: Non che il resto sia bello xD Però dai, più le cose sono brutte e contorte, meglio si impara
[EDIT]
Ringrazio leo per avermi dato l'illuminazione sul file giusto da trattare :D una volta capito che dovevo agire in quello la soluzione è stata semplicissima:
In bacheca.php c'è la query di insert, è bastato aggiungere il campo e il valore da metterci dentro.
Ma la query in questione mi è servita comunque, per far si che un commento lasciato aggiornasse anche il suo messaggiopadre, dato che l'ordine nella lista lo fanno questi ultimi.
Problema risolto! Grazie!
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!
Tibia ↗
Wuthering Waves ↗
Tiles Survive ↗
State of Survival ↗
Exclusive Villa GdR ↗
Project Entropy ↗
Imperion ↗
Foundation Galactic Frontier ↗
Hero Wars ↗