if abfrage will nicht so wie ich will

Gammes99

Grünschnabel
Hallo ich habe ein Problem ich möcht aus der datenbank Abfragen ob ein wert = 1 oder Grßer ist als 1 und wenn er 0 ist soll er benachtigtugt werden das er kein zugriff hat auf die seite.

ich versuche wie Folgt Abzufragen.

PHP:
$sql = "SELECT COUNT(premium) FROM accounts";
$erg = mysql_query($sql);
$var = mysql_num_rows($erg); 

if($var >= 1)
{
    echo("Du hast Premium");
    
}

else
{
    echo("Du hat nicht das recht diese seite zu sehen!");
}


Aber geal wie if ich den wert in der Datbank änere sagt er immer das ich Permium hätte was aber nicht sein kann wenn er wert 0 ist

Kann mir bitte einer Helfen?

Danke im Vorraus
 
Zuletzt bearbeitet:
Du zählst doppelt.

Dein SQL gibt IMMER eine Zeile aus. Da steht 0 oder 1 drin.
Du prüfst aber wieviele Zeilen ausgegeben werden und nicht was der Wert darin ist. Das ist immer 1 Zeile

PHP:
$sql = "SELECT COUNT(premium) FROM accounts WHERE Name'$Name'";
$erg = mysql_query($sql);
if(mysql_result($erg, 0) >=1{
    //TODO: Hat Einträge
}
 
mysql_result($erg, 0) gibt den Wert zurück.
Schau dir mal die Funktion in der PHP-Hilfe an wenn du sie nicht kennst.

Nachtrag:
Dein SQL wird soauf ein Fehler laufen. Im WHERE-Teil fehlt ein '='
SQL:
WHERE Name = '$Name'

Nachtrag 2:
Du hast deinen ersten Beitrag abgeändert. So gibt er nicht mehr die Anzahl für einen User sondern die Nazahl Premium über alle User zurück.
 
Zuletzt bearbeitet von einem Moderator:
Also irgenwie verstehe ich das nicht ich will ja nicht ausgeben ich will ja den wert der in der Tablle steht auslen und mit dem arbeiten also wenn 0 dann nicht wenn 1 oder Größer dann soll was passieren


Kanst du mir nicht ein beispiel geben ich ich das am blösten abfragen kann?
 
PHP:
$sql = "SELECT COUNT(premium) FROM accounts WHERE Name = '$Name'";
$erg = mysql_query($sql);
$anzahlPremium = mysql_result($erg, 0);
//TODO: $anzahlPremiuml nach deinem gusto auswerten. Da steht jetzt die Anzahl Einträge für den User $Name drin.

Ansonsten sag doch mal was nicht funktioniert.
 
Das Problem ist nach wie vor das er egal wie ich den wert in der datenbank verändere ob auf 0 oder 1 er immer sagt ich wäre Premium was ja nicht sein kann wenn der wert 0 ist

Du hast Premium ,Danke daf?r

und auch wenn der wert 0 ist

Du hast Premium ,Danke daf?r


so sieht mein code jetzt aus

PHP:
$sql = "SELECT COUNT(premium) FROM accounts WHERE Name = '$Name'";
$erg = mysql_query($sql);
$Premium = mysql_result($erg, 0);

if($Premium >= 1)
{
    echo("Du hast Premium ,Danke dafür");
    
}
else
{
    echo("Du hast kein premium kauf dir eines");
}
 
Zuletzt bearbeitet:
Moment. Dein SQL Zählt die Einträge (Zeilen) in der Tabelle. Das hat absolut nix mit dem Eintrag im Feld Premium zu tun. Wenn du den Wert im Feld Premium auswerten willst, dann musst du das COUNT() im SQL entfernen
SQL:
SELECT 
    acc.premium
FROM
    accounts AS acc
WHERE
    acc.name = '{$Name}'

Nachtrag als Moderator:
Hör bitte auf dein Thread alle 10 Minuten zu puschen. Diese Eitnräge werden ungefragt gelöscht.
 
Zuletzt bearbeitet von einem Moderator:
Zurück