- Home
- Categorie
- Coding e Sistemistica
- PHP
- Stampare a video dei valori nello stessa pagina presenti su due tabelle diverse
-
@Thedarkita said:
si
cosa si?
Non sono riuscito ancora a trovare da cosa dipende questo malfunzionamento...:x
-
Scusa non ho visto la seconda pagina xD
è un casino...
Allora controlla nel database i dati siano inseriti correttamente, dopo c'è da controllare se l'unione delle tabelle avvenga in modo corretto o prende 2 campi errati per fare il collegamento e quindi i risultati siano diversi da come dovrebbero essere.
-
@Thedarkita said:
Scusa non ho visto la seconda pagina xD
è un casino...
Allora controlla nel database i dati siano inseriti correttamente, dopo c'è da controllare se l'unione delle tabelle avvenga in modo corretto o prende 2 campi errati per fare il collegamento e quindi i risultati siano diversi da come dovrebbero essere.
Per quanto riguarda il database ho già controllato...e i dati vengono inseriti correttamente..cioè nella tabella messaggi i campi risultano essere tutti al loro posto...e nella mostra a video che ci sono i problemi.....quindi il problema risiede nella INNER JOIN?
-
suppongo di si
-
@Thedarkita said:
suppongo di si
[PHP]
$strsql="SELECT nome_ricevente,nome_inviante,oggetto,messaggio,iscritti.* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nickname WHERE nome_inviante='".$_SESSION['nickname']."' ORDER BY data";
[/PHP]
non va bene quindi come e strutturata ora?
-
messaggi.nome_inviante=iscritti.nickname
questo è il collegamento cioè il valore in comune tra le 2 tabelle, è giusto per come è strutturata la tua tabella?
-
@Thedarkita said:
messaggi.nome_inviante=iscritti.nickname
questo è il collegamento cioè il valore in comune tra le 2 tabelle, è giusto per come è strutturata la tua tabella?
collegamento in comune suppongo voglia dire che hanno lo stesso valore sia nell una che nell altra tabella...
Comunque il campo nome_inviante che c'è nella tabella messaggi e lo stesso campo come valore che c'è nella tabella iscritti ma che si chiama nickname....
-
beh allora è giusto... pure quello e quindi come fa a dare valori sbagliati? O.o
lancia da phpmyadmin
[php]SELECT nome_ricevente,nome_inviante,oggetto,messaggio,iscritti.* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nickname[/php]vedi se i risultati che da sono giusti.
Sembra funzioni tutto e non funziona tutti a te capitano
-
@Thedarkita said:
beh allora è giusto... pure quello e quindi come fa a dare valori sbagliati? O.o
lancia da phpmyadmin
[php]SELECT nome_ricevente,nome_inviante,oggetto,messaggio,iscritti.* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nickname[/php]vedi se i risultati che da sono giusti.
Sembra funzioni tutto e non funziona tutti a te capitano
Praticamente vedo quello che mi mostra avideo nella pagina web...
cioè mi fa vedere tutti i messaggi inviati e ricevuti relativi a tutti gli utenti...
-
Si infatti devi verede quello ma sono giusti oppure il pvt inviato da un utente te lo mostra come se fosse inviato da un altro?
-
@Thedarkita said:
Si infatti devi verede quello ma sono giusti oppure il pvt inviato da un utente te lo mostra come se fosse inviato da un altro?
e la visualizzazione avideo che e sbagliata...no l inserimento nei campi del database...
Praticamente se mi loggo come ANTONIO o come PAOLO o come GINO e clicco
su leggimessaggi.php invece di far vedere solo i messaggi ricevuti dall utente loggato mi mostra i messaggi ricevuti di tutti gi utenti....
-
Aspetta tu avevi scritto che vedevi i pvt degli altri utenti, non che li vedi tutti... e la cosa cambia totalmente
-
@Thedarkita said:
Aspetta tu avevi scritto che vedevi i pvt degli altri utenti, non che li vedi tutti... e la cosa cambia totalmente
allora questa e la pagina
[PHP]
<?
//Apro la sessione e...
session_start();
//verifico che dopo il login io abbia la chiave di sessione ad 1
if($_SESSION['logged']==1){
//se si...
?>
<html>
<head>
<body>
<LINK REL=stylesheet TYPE="text/css" HREF="./templates/skins/double_alexphpteam/alex_livre.css">
<div align="center">
<font face="Franklin Gothic Medium" size="7" color="#008080">I TUOI
MESSAGGI....</font><table width="100%" border="2" cellspacing="0" height="35" bordercolor="#FF9999">
<tr>
<td align="left" valign="top" width="15%">
<font face="Comic Sans MS" color="#0099FF"><b>Nome inviante</b></font></td>
<td align="left" valign="top" width="19%">
<div align="center"><b><font size="4" face="Comic Sans MS" color="#0099FF">Oggetto</font></b></div>
</td>
<td align="center" width="34%" valign="top">
<div align="center"><font face="Comic Sans MS" color="#0099FF"><b>Messaggio</b></font></div>
<div align="center"> </div>
</td>
<td width="15%" align="left" valign="top">
<div align="center"><font face="Comic Sans MS" color="#0099FF"><b>Data invio</b></font></div>
</td>
<td width="15%" align="left" valign="top">
<div align="center"><font face="Comic Sans MS" color="#0099FF"><b>Nome ricevente</b></font></div>
</td>
</div><?
//mi connetto al datase
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono il database
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());
//seleziono dalla tabella messaggi i 4 campi da visualizzare
$strsql="SELECT nome_ricevente,nome_inviante,oggetto,messaggio,iscritti.* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nickname";$rs=@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
//faccio un ciclo while
while ($riga = mysql_fetch_array($rs)) {
$str_nome = $riga['nome_inviante'];
$str_oggetto= $riga['oggetto'];
$str_messaggio = $riga['messaggio'];
$str_data = $riga['data'];
$str_ricevente = $riga['nome_ricevente'];
$str_sesso = $riga['sesso'];
$str_utenteemail = $riga['utenteemail'];
echo "<tr><td><font face="Comic Sans MS">$str_nome</font></td><td>$str_oggetto</td><td>$str_messaggio</td><td>$str_data</td><td>$str_ricevente</td><td>$str_sesso</td><td>$str_utenteemail</td>";
}//qui chiudi il while
}//qui chiudi l'IF
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/PHP]
ota tutte quelle variabili che richiamo nel ciclo while....le prime 5 fanno parte della tabella iscritti..le ultime 2 sesso e utenteemail fanno parte della tabella messaggi...ok..
ora nella stampa avideo invece di mostrarmi solo i messaggi ricevuti da parte dell utente loggato mi mostra anche i messaggi degli altri..
Mi fa vedere tutti i campi che stanno nella tabella messaggi relativi a tutti gli utenti
-
SELECT nome_ricevente,nome_inviante,oggetto,messaggio,iscritti.* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nickname
qua devi aggiungere il where per mostrare solo i tuoi
che nel tuo caso dovrebbe essere:
WHERE nome_ricevente='$_SESSION[nickname]'
-
@Thedarkita said:
SELECT nome_ricevente,nome_inviante,oggetto,messaggio,iscritti.* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nickname
qua devi aggiungere il where per mostrare solo i tuoi
che nel tuo caso dovrebbe essere:
WHERE nome_ricevente='$_SESSION[nickname]'Grande...mi ha i anticipato....stavo per scriverlo..mi eri accorto proprio ora di questa mancanza...
[PHP]
WHERE nome_inviante='".$_SESSION['nickname']."'
[/PHP]ora loggandomi
se clikko nei mess ricevuti mi escono i messaggi che ho inviato ma nonq uelli ricevuti...
-
nome_inviante
devi emttere nome_ricevente
-
@Thedarkita said:
nome_inviante
devi emttere nome_ricevente[PHP]
WHERE nome_ricevente='".$_SESSION['nickname']."'
[/PHP]
cosi' quindi
-
si
-
@carlitos1982 said:
[PHP]
WHERE nome_ricevente='".$_SESSION['nickname']."'
[/PHP]
cosi' quindi
:D:D
perfect....ora funziona...grandee!!!
thank you..ora procedo nel farte altre piccole modifiche..sperando di nn trovare intoppi...ma la vedo nera...:DPS ho notato che le pagine del mio sito su internet explorer non rispondono al
comando header....
cioè mi loggo...e se voglio procedere devo per forza aggiornare la pagina altrimenti non va avanti...
mi succede solo con ie...
al posto dell header devo inserire un refresh?si risolve?
-
Io uso sempre gli header senza problemi...
header("Location: login.htm");
exit;PS aggiungi exit;