User aus Select abfrage ausschließen

Anacondi

Erfahrenes Mitglied
Hallo an alle fleissigen Helfer hier.
Hab ein Problem mit einer datenbank Abfrage
PHP:
<?php
$angriffschutz = $_SESSION["schutz"];
$ergebnis = mysql_query("SELECT * FROM login WHERE erfahrung_aktuell <> $erfahrung");
while($row = mysql_fetch_object($ergebnis))
{
	$users = $row->id;
	  ?>
  <tr>
  <td width="220">
  <?php
  echo $row->username;
  ?>
  </td>
  <td width="160">
  <?php
  echo $row->erfahrung_aktuell;
  ?>

Wie muß ich meine Abfrage gestalten, das die User, die gerade Angriffschutz geniessen ( $angriffschutz ) nich mit aufgelistet werden?

Danke im vorraus.
 
Wenn dein Problem etwas mit SQL zu tun hat dann solltest du es im Datenbank Bereich posten. Eventuell auch die Tabellenstruktur mit 2-3 Beispieldatensätzen und vor allem was du unter Angriffsschutz verstehst bzw. es definierst.

Mit so wenig Informationen wird es schwer dir zu helfen.
 
Hallo!

In dem Du der WHERE-Klausel eine entsprechende weitere Bedingung mittels "AND" anhängst.

Da ja scheinbar mehrere User aufgelistet werden sollen, muss der Status für $angriffschutz natürlich in der Datenbank gespeichert sein.
Die Session gilt nämlich immer nur für einen User, und ein User dürfte auf die Sessions der anderen User eigentlich nicht zugreifen können.
Von daher ist es für mich auch nicht ersichtlich warum Du bei der Auflistung auf die Session zugreifst.

Wenn der Status in der Datenbank also gespeichert ist (Tabellenspalte "schutz" mit den Werten "ja" bzw. "nein"), könnte eine Abfrage so:
SQL:
SELECT * FROM login WHERE erfahrung_aktuell <> $erfahrung AND schutz != ja
oder so:
SQL:
SELECT * FROM login WHERE erfahrung_aktuell <> $erfahrung AND schutz == nein
ausehen.

Gruss Dr Dau
 
Korrektur zu Dr.Daus zweitem SQL-Statement
- Im Gegensatz zu PHP ist der Vergleich in SQL nur ein einfaches =
- Ja und Nein sind keine gültigen Spalten. Jetzt kommts drauf an, wie du den Angriffsschutz hinterlegt hast. Angenommen es ist ein VARCHAR-Feld mit den Texten ja nein, dann müsstend iese Werte in ' gesetzt werden
Ergo müsste es etwa so aussehen
SQL:
SELECT
  *
FROM
  login
WHERE
  erfahrung_aktuell != $erfahrung 
  AND schutz = 'nein';
 
Zuletzt bearbeitet von einem Moderator:
Zurück