- Home
- Categorie
- Coding e Sistemistica
- PHP
- Stampare a video dei valori nello stessa pagina presenti su due tabelle diverse
-
iscritti.sesso,iscritti.utenteemail
-
@Thedarkita said:
iscritti.sesso,iscritti.utenteemail
quindi cosi'
[PHP]
SELECT nome_ricevente,nome_inviante,oggetto,messaggio,data,iscritti.nome,iscritti.sesso,iscritti.utenteemail,* FROM messaggi INNER JOIN iscritti ON messaggi.nome_inviante=iscritti.nome WHERE nome_ricevente='".$_SESSION['nome']."' ORDER BY data
[/PHP]
-
,* nn serve per il resto sembra ok
-
@Thedarkita said:
,* nn serve per il resto sembra ok
ora mi ricollego al discorso che dicevo prima...
ora pe rmostrare a video i campi iscritti devo cmq aggiungere al ciclo while delle variabili che contenganoq uei valori...giusto?
-
Errore query database: Column 'data' in field list is ambiguous
mi da questo errore....:?
-
@carlitos1982 said:
Errore query database: Column 'data' in field list is ambiguous
mi da questo errore....:?
OOk....ho modificato un po e ho risolto...:)
[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";$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'];
$str_foto = $riga['foto'];
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>";
[/PHP]
-
Purtroppo nn ho risolto del tutto....sono spuntati fuori vari problemi....
Faccio un esempio
piglio 2 utenti a caso e li chiamo PAOLO E VITOAllora vado sul sito....effettuo il login come PAOLO e mando un mess a VITO....fatto ciò vengo rimandato sulla pagina leggimessaggi.php di PAOLO in cui mi visualizza il messaggio che ho mandato a VITO( errore..la pagina di PAOLO dovrebbe visualizzare solo i mess ricevuti)provo quindi a loggarmi come VITO e provando a mandare un mess a PAOLO succede la stessa cosa....vengo dirottato sulla pagina leggimess.php d VITO su cui e presente il messaggio che ho appena scritto e inviato a PAOLO....
questo e il primo problema....
l altro problema e che sempre nella pagina leggimess.ph non viene mostrato piu di un messaggio ricevuto:x
Posto i file che potrebbero essere interessati al malfunzionamento...
questo e leggimess.php
[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...
//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 WHERE nome_inviante='".$_SESSION['nickname']."' ORDER BY data";$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'];
$str_foto = $riga['foto'];}//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");
}
?>
<html>
<head>
<body>
<div align="center">
<font face="Eras Medium ITC" size="2" color="#0066FF">i tuoi messaggi
ricevuti<?echo "<p>Ciao<p>" . $str_nome . "<br>leggili ora"; ?>
<p><font face="Eras Medium ITC" size="2" color="#0066FF">Sono presenti in
tutto</font></p>
<table width="100%" border="1" height="90" style="border-collapse: collapse">
<tr>
<td align="left" valign="top" width="30%" rowspan="2">
<font face="Comic Sans MS" color="#0099FF"></b></font><p><br><br><br><?echo "<a target="_blank" href=\foto/$str_foto><img border="0" src="miniature/$str_foto" width="75" height="75"></a>";?><br>
<?echo "<font face="Comic Sans MS" size="4">$str_nome</font>";?><br>
<?echo "<font face="Comic Sans MS" size="4">$str_sesso</font>";?><br>
<?echo "<font face="Comic Sans MS" size="4">$str_utenteemail</font>";?><br>
<?echo "Ora di invio<br><font face="Comic Sans MS" size="2">$str_data</font>";?>
<td align="left" width="39%" rowspan="2">
<div align="center"><b><?echo "Messaggio<br><br><font face="Comic Sans MS" size="3">$str_messaggio</font>";?></b></div>
<div align="center"></font></b></div></td><td></font> </td>
<td align="center" width="20%" valign="top" rowspan="2">
<div align="center"> </div>
<div align="center"> </div>
<div align="center"> </div>
<div align="center"> </div>
</td>
</div>
<tr>
<td height="68"> </td>
[/PHP]e posto i 2 file relativi all invio dei mess
questo e inviamessaggio.php
[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...
//verifico se esiste la variabile destinatario
if(isset($_GET['destinatario']) OR $_GET['destinatario'] != ""){
$destinatario=$_GET['destinatario'];
}
?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Pannello di controllo utente</title>
</head><body>
<?
//facciamo una stampata a video!
echo "Ciao " . $_SESSION[nickname] . "Scrivi il messaggio che vuoi inviare";
?>
<form method="post" action="invio.php">
<p>Destinatario</p>
<p><input type="text" name="destinatario" value="<?=$destinatario ?>"</p>
<p>Oggetto</p>
<p><input type="text" name="oggetto" value="" size="20"</p>
<textarea name="messaggio"></textarea>
<input type="submit" value="Invia messaggio">
</form>
<?
} else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/PHP]
questo nvece e invio.php[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...//recupero i valori dal form precedente
$cdestinatario = $_POST['destinatario'];
$coggetto = $_POST['oggetto'];
$cmessaggio = $_POST['messaggio'];
$cmittente = $_SESSION['nickname'];//mi connetto al database
$link = mysql_connect("$db_host", "$db_database", "$db_username", "$db_password") or die("Errore connessione: ". mysql_error());
//seleziono la tabella
mysql_select_db('my_italiawebchat') or die("Errore apertura database: " . mysql_error());$strsql="INSERT INTO messaggi (nome_inviante,nome_ricevente,oggetto,messaggio,data) VALUES ('$cmittente','$cdestinatario','$coggetto','$cmessaggio',NOW())";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "Messaggio inviato";
header("Location: leggimessaggi.php");
}
else {
//altrimenti...
echo "Non sei loggato...";
//annullo tutte le chiavi di sessioni se esistono
session_unset();
session_destroy();
header("Location: login.htm");
}
?>
[/PHP]
-
si
-
@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