- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema con una query
-
problema con una query
ciao,
ho creato un pannello di controllo per inviare agli iscritti dei comunicati, in due modi, o invio la comunicazione ad un singolo o a tutti.
Vorrei che l'iscritto possa leggere solo il comunicato riferito a lui e quello visibile a tutti, ma non i comunicati personali degli altri iscritti.
questa è la query che si trova nella pagina dell'iscritto, dove
comunicazioni.id_tecniche = $_SESSION[idtecniche] corrisponde alla visualizzazione delle comunicazioni riservate e
comunicazioni.id_tecniche = 0 corrisponde alla visualizzazione delle comunicazioni visibili a tutti:[PHP]
<?
$query="SELECT comunicazioni., a_tecniche., DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y')AS data_ins_comunicazione
FROM comunicazioni, a_tecniche
WHERE comunicazioni.id_tecniche = $_SESSION[idtecniche] AND comunicazioni.id_tecniche = a_tecniche.id_tecniche OR comunicazioni.id_tecniche = 0 ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC";
$ris_query=mysql_query($query, $conn);
while($row=mysql_fetch_array($ris_query)){?>
[/PHP]le comunicazioni riservate al singolo iscritto arrivano correttamente, il mio problema è sulle comunicazioni visibili a tutti, invece di visualizzarmi il messaggio così:
messaggio per tutte le tecniche
CARLA alle ore 10:30 ci vediamo in ufficiome lo visualizza così:
messaggio per tutte le tecniche
CARLA alle ore 10:30 ci vediamo in ufficiomessaggio per tutte le tecniche
FRANCA alle ore 10:30 ci vediamo in ufficiomessaggio per tutte le tecniche
LUISA alle ore 10:30 ci vediamo in ufficiomessaggio per tutte le tecniche
ALESSIA alle ore 10:30 ci vediamo in ufficio
-
Forse sarà una scemenza ma prova a mettere gli apici
$_SESSION['idtecniche']
Poi prova a fare una "echo" della query e a rieseguirla con phpmyadmin e vedi cosa ti costruisce lo script e cosa ti tira fuori il mysql.
Ciao
-
@prinzart said:
ciao,
ho creato un pannello di controllo per inviare agli iscritti dei comunicati, in due modi, o invio la comunicazione ad un singolo o a tutti.
Vorrei che l'iscritto possa leggere solo il comunicato riferito a lui e quello visibile a tutti, ma non i comunicati personali degli altri iscritti.
questa è la query che si trova nella pagina dell'iscritto, dove
comunicazioni.id_tecniche = $_SESSION[idtecniche] corrisponde alla visualizzazione delle comunicazioni riservate e
comunicazioni.id_tecniche = 0 corrisponde alla visualizzazione delle comunicazioni visibili a tutti:[php]
<?
$query="SELECT comunicazioni., a_tecniche., DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y')AS data_ins_comunicazione
FROM comunicazioni, a_tecniche
WHERE comunicazioni.id_tecniche = $_SESSION[idtecniche] AND comunicazioni.id_tecniche = a_tecniche.id_tecniche OR comunicazioni.id_tecniche = 0 ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC";
$ris_query=mysql_query($query, $conn);
while($row=mysql_fetch_array($ris_query)){?>
[/php]le comunicazioni riservate al singolo iscritto arrivano correttamente, il mio problema è sulle comunicazioni visibili a tutti, invece di visualizzarmi il messaggio così:
messaggio per tutte le tecniche
CARLA alle ore 10:30 ci vediamo in ufficiome lo visualizza così:
messaggio per tutte le tecniche
CARLA alle ore 10:30 ci vediamo in ufficiomessaggio per tutte le tecniche
FRANCA alle ore 10:30 ci vediamo in ufficiomessaggio per tutte le tecniche
LUISA alle ore 10:30 ci vediamo in ufficiomessaggio per tutte le tecniche
ALESSIA alle ore 10:30 ci vediamo in ufficioProva cosi:
[php]
<?
$query="SELECT comunicazioni., a_tecniche., DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y')AS data_ins_comunicazione
FROM comunicazioni, a_tecniche
WHERE (comunicazioni.id_tecniche = $_SESSION[idtecniche] OR comunicazioni.id_tecniche = 0) AND comunicazioni.id_tecniche = a_tecniche.id_tecniche ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC";
$ris_query=mysql_query($query, $conn);
while($row=mysql_fetch_array($ris_query)){?>
[/php]
-
Ayrton ho fatto come dici tu ma in questo modo mi fa vedere solo i 2 messaggi personali (la tecnica con cui ho fatto la prova ha l'id 2), il messaggio pubblico (id 0) ora non si vede più
-
@prinzart said:
Ayrton ho fatto come dici tu ma in questo modo mi fa vedere solo i 2 messaggi personali (la tecnica con cui ho fatto la prova ha l'id 2), il messaggio pubblico (id 0) ora non si vede più
Scusa, non avevo capito bene il problema.
prova ad usare Distinct[php]<?
$query="SELECT DISTINCT(comunicazioni.id), comunicazioni., a_tecniche., DATE_FORMAT(comunicazioni.data_ins_comunicazione, '%d-%m-%Y')AS data_ins_comunicazione
FROM comunicazioni, a_tecniche
WHERE comunicazioni.id_tecniche = $_SESSION[idtecniche] AND comunicazioni.id_tecniche = a_tecniche.id_tecniche OR comunicazioni.id_tecniche = 0 ORDER BY comunicazioni.data_ins_comunicazione DESC, comunicazioni.ora_ins_comunicazione DESC";
$ris_query=mysql_query($query, $conn);
while($row=mysql_fetch_array($ris_query)){?> [/php]