Mysql If abfrage in php

Lescaro

Grünschnabel
Hallo undzwar habe ich ein problem ich komme momentan nicht ganz klar ich wollte eine abfrage machen damit ich in einer Navigations bar Ein Admin zugang anlege sobald der user die usergroup 4 hat nur bekomme ich es nicht so ganz hin. ich hoffe ihr könnt mir helfen

PHP:
<?php
    require_once ('dbconfig.php');
        $db_link = mysqli_connect (
                     MYSQL_HOST,
                     MYSQL_BENUTZER,
                     MYSQL_KENNWORT,
                     MYSQL_DATENBANK
                    );
    $sql = mysql_query("SELECT uid, usergroup FROM mybb_users WHERE uid = 4");
    while($row = mysql_fetch_assoc($result))
    $admingroup = 4;
    if ($row['usergroup'] == $admingroup)
    {
    echo "JIP";
    }else{
    echo "Nope";
    }
?>
 
Sorry, Mangels Satzzeichen ist es mir trotz mehrfachem Versuch nicht gelungen, deine Frage zu verstehen.
Was funktioniert nicht?
Fehverhalten?
Was soll genau gemacht werden?

Bitte den Code formatieren,. Ist wie mit Satzzeichen. Es hilft grausem den Code zu versehen. Ansonsten muss man Klammern zählen um herauszufinden welche Schleife wo endet.
Apropo. Dein while ist ja gar keine Schleife. Was oll das bewirken?
Und zu guter letzt. Kein mysql_* mehr verwenden! Das ist seit Jahren veraltet und in den neusten PHP-Versionen nicht mehr vorhanden. Bitte steige auf mysqli_* um.

Nachtrag:
Du verbindest ja bereits mit mysqli_connect. Dann kann das mit mysql_ nix werden.
 
Also. Ich würde gerne eine abfrage erstellen womit ich aus meiner Datenbank die Gruppenid auslese vom user mit der uid. wenn der user mit der uid=4 die usergroup=4 hat soll er ein link angezeigt bekommen falls nicht soll er nichts angezeigt bekommen.
 
So ich hab mal erneut angefangen und erstmal eine tabelle ausgegeben die auch funktioniert nur dann habe ich eine if abfrage gestartet und wollte testen ob er sie auch ausgibt und jedesmal sagt er Nein
PHP:
<?php
    require_once ('dbconfig.php');
$db_link = mysqli_connect (
                     MYSQL_HOST,
                     MYSQL_BENUTZER,
                     MYSQL_KENNWORT,
                     MYSQL_DATENBANK
                    );
$sql = "SELECT uid,username,usergroup FROM mybb_users WHERE uid = 1";
$db_erg = mysqli_query( $db_link, $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysqli_error());
}
echo '<table border="1">';
while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
{
  echo "<tr>";
  echo "<td>". $zeile['uid'] . "</td>";
  echo "<td>". $zeile['username'] . "</td>";
  echo "<td>". $zeile['usergroup'] . "</td>";
  echo "</tr>";
}
echo "</table>";

if ($zeile['usergroup'] == 4) {
    echo "Ja";
}else{
    echo "NEIN";
}
mysqli_free_result( $db_erg );
?>
 
Okay also nochmals ich würde gerne einen Text anzeigen lassen, sobald der wert aus der Datenbank mit dem vorgegebenen wert übereinstimmt für den User mit der uid 4.
Nur gibt mir die Abfrage immer ein Nein aus.
 
Du vergleichst auch nur den letzten User der Liste. Ansonsten musst du deine Prüfung in die Schleife setzen.
 
Da ich ein Forum habe und dort direkt variablen sind die, die userid ausgeben usw. würde ich die natürlich einbauen allerdings muss ich ja auch erstmal die Prüfung hinbekommen.
 
Mit der while gehst du Zeile um Zeile durch deine Daten.
Wenn du am Ende angekommen bist, prüfst du den letzten Eintrag ob er admin ist.
Was ist, wenn der Admin früher kommt? Darum innerhalb der Schleife prüfen.
 
Unter der Prämisse das uid ein eineindeutiger Wert ist, wird Dein bisheriger Code nur eineinziges Ergebnis bringen, da das SQL-Statement nach der uid=1 sucht:
PHP:
SELECT uid,username,usergroup FROM mybb_users WHERE uid = 1
Somit hast Du garkeine Chance, Deine Schleife zu testen. Schmeiss die WHERE-Bedingung raus und versuche es so noch einmal
 
Zurück