SELECT * FROM ... WHERE NOT mit mehreren Werten

Hallo liebe Leuten,

ich habe ein Problem, ich lasse meine User TExte bewerten und musste nun
feststellen, dass immer die gleichen Texte angeboten werden.

Wie kann ich sowas machen wie :
PHP:
$abfrage = "SELECT * FROM texte WHERE id != $exp[0], $exp[1], $exp[2].... ";

oder gibt es eine andere Möglichkeit, wie man Sachen für einen einzigen User nicht mehr zugänglich machen kann ?

LG Michael
 
Wenn es sich um Benutzer handelt, welche registiert sind und somit eine user_id haben, dann könntest du eine extra Tabelle aufbauen, in der du die text_id und die user_id speicherst und dein SELECT davon abhängig machst (nur text_id, welche nicht in der neuen Tabelle mit der user_id sind). Dies wäre mit reinem SQL machbar. Oder du speicherst die bereits bewerteten text_id's und machst dann einen Query ala
SQL:
SELECT * FROM texte WHERE id NOT IN(id1, id2,id3);

Wenn du die IDs in PHP in einem Array hast, dann kannst du dir diese ID-Liste für den Query ganz leicht mit implode erstellen
PHP:
$sql = 'SELECT * FROM texte WHERE id NOT IN(' . implode(', ', $idArray) . ');';
 
Hallo

ich habe ein Problem, ich lasse meine User TExte bewerten und musste nun
feststellen, dass immer die gleichen Texte angeboten werden.

Wie es werden immer die gleichen Texte angeboten?

oder gibt es eine andere Möglichkeit, wie man Sachen für einen einzigen User nicht mehr zugänglich machen kann ?

Sachen?
Ich würde:
1. die jeweilige text_id ansprechen (ausgeben) - dann kommen nur die Texte raus die du haben möchtest
2. mit dem User ( evtl. SESSION_ID) vergleichen (user_id sollte in deiner Datenbank als Bewerter abgespeichert sein)
Wird die Session_id bei der text_id gefunden einen Fehler ausgeben. Du darfst nur einmal bewerten oder sowas.
Gruß
strolch_007
Wenn
 

Neue Beiträge

Zurück