Confronto su tabelle

lume70

Nuovo Utente
20 Feb 2013
5
0
0
Ho 3 tabelle così formate
utenti
id---nome
1---pippo
2---pluto

articolo
id---nome---stato
1---pane----0
2---latte----1
3---caffè----1
4---sale-----0
5---acqua---1

marcatore
id---id_articolo----id_utente
1----3------------1
2----4------------1
3----3------------2

Devo poter far vedere gli articoli con stato=1 agli utenti e dopo che questi li hanno visto deve essere aggiunto un record nella tabella marcatore con id dell'articolo visionato e id dell'utente di modo che quell'utente nn possa più visionarlo.
Esempio
l'utente pippo (id=1) potrà vedere pane, latte, acqua perchè caffè e sale (id 3 e 4) sono presenti nella tabella marcatore e con id_utente=1 cioè pippo

Riesco a prelevare gli articoli con stato=1 poi non so come confrontarli con la tabella marcatore
PHP:
//prelevo solo gli articoli con stato=1
$risultato= mysql_query("SELECT * FROM articolo WHERE stato=1");
$risultato2=mysql_query("SELECT * FROM marcatore");

while($row = mysql_fetch_array( $risultato )) {
echo $row['nome'];
...
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
immagino che l'utente es pippo si debba loggare quindi da qualche parte prelevi il suo id
per cui prova con una query del tipo con cui pippo vede solo gli articoli stato=1 e che non ha ancora visto
PHP:
<?php
//...
$query="SELECT * FROM articoli AS a, marcatore AS m WHERE a.stato=1 AND m.d_utente != $id"
//....
?>
 

lume70

Nuovo Utente
20 Feb 2013
5
0
0
Con il tuo script credo non vada bene.
Ad esempio, se effettuo il controllo sull'articolo 3 con l'utente che ha id=1, secondo le tabelle sotto mi estrae 4 volte l'articolo 3.
Perchè la prima riga del marcatore non viene soddisfatta perchè m.id_utente =1, mentre le righe 3,4,5,6 hanno .mid_utente!=1
Invece l'articolo 3 per l'utente 1 non deve proprio comparire.
Perchè la prima riga di marcatore indica esplicitamente che l'utente 1 ha già visto l'articolo 3.

articolo
id---nome---stato
...
...
3---caffè----1


marcatore
id---id_articolo----id_utente
1----3------------1
2----4------------1
3----3------------2
4----3------------3
5----3------------4
6----3------------5
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
prova una cosa del genere
1) verifichi quali id articolo l'utente ha gia visto e ne fai un elenco
2) estrai gli articoli che non siano nell'elenco generato
PHP:
<?php
//......
$query="SELECT id_articolo FROM marcatore WHERE id_utente=$id";
$ris=mysql_query($query);
if(mysql_num_rows($ris)==0){
	$non_in="";
}else{
	while($riga=mysql_fetch_array($ris)){
		$elenco[]=$riga['id_articolo'];
	}
	$i=implode(",",$elenco);
	$non_in=" AND id NOT IN('$i')";//es AND id NOT IN('3,4') quindi estrai solo 1,2,5
}
$query="SELECT * FROM articoli WHERE stato='1' $non_in ORDER BY nome";
//....
?>
prova e sappimi dire

p.s.
ho usato le vecchie mysql perchè mi viene più facile, ma tu passa a mysqli o alla classe pdo
 
Discussioni simili
Autore Titolo Forum Risposte Data
T select record univoco dopo confronto di due tabelle MySQL 2
Monital [Mysql]Confronto tra tabelle ed inseirmento dati- Comando JOIN (Credo) MySQL 0
S query confronto tabelle MS Access 0
G array_diff - confronto su 2 indici PHP 2
A [ASP] Confronto tra dati Form e DB Classic ASP 2
A [PHP] registrazione utente in un database sql con confronto PHP 1
D [PHP] Confronto valore negativo PHP 4
M [MySQL] Confronto tra variabile varchar e variabile data. PHP 1
M [PHP] confronto datetime PHP 2
Albesus [PHP] Confronto input con tabella e risultato PHP 10
E [PHP] Operazioni di confronto su stringhe PHP 26
P [MYSQL] SELECT di ..CONFRONTO MySQL 0
L confronto dati immessi con database PHP 1
J Confronto Date PHP - MySQL PHP 1
B Mostra/nascondi option su confronto datepicker PHP 0
matteoraggi Confronto prezzi per transfer aeroportuali Presenta il tuo Sito 0
D problema con confronto dati PHP 3
Z Confronto con siti concorrenti, SEO e testo landing page SEO e Posizionamento 2
G confronto dati PHP 2
C Confronto tra due date in italiano PHP 6
A Problema con sottrazione e confronto PHP 3
C Confronto tra date PHP 3
T Problema: Confronto date con Mysql PHP 3
A Confronto tra date in sql c# ASP.NET 4
A Confronto orari in variabili e operazioni PHP 1
R problema confronto fra date PHP 2
carter Confronto tra due date MySQL 14
D SIti confronto prezzi SEO e Posizionamento 3
F Confronto ora del giorno PHP 1
davide1982 Confronto di indirizzi ip nello stesso campo di una tabella Database 1
I Confronto con url PHP 2
D Wordpress e confronto testo commenti duplicati WordPress 4
M [VBA/EXCEL]Confronto colonne e stampa riga Visual Basic 0
P Confronto due colonne excel Windows e Software 0
M [MySQL] confronto fra date Database 1
S Flash: confronto tra xml Flash 1
L Controllo e confronto dati immessi in 2 campi Data in un form (mysql) PHP 1
M confronto valori select Javascript 2
M Confronto tra database Classic ASP 4
SolidSnake4 confronto tra date PHP 2
U Salvataggio IP e confronto col database PHP 1
L confronto tra date Javascript 3
G Confronto servizi hosting Hosting 0
A confronto tra stringhe complesse, come fare???? PHP 1
mitzi confronto tra campi Javascript 10
M Confronto Hosting Hosting 27
N Confronto fra memorie RAM e fra schede video Hardware 0
max75 query su due tabelle e dati doppioni MS Access 2
S Consiglio si relazione tabelle MS Access 1
E Info relazione tabelle MySQL 17

Discussioni simili