Abfrage eines sql Feldes mit php

Ich hoffe das mir hierbei jemand helfen kann^^.

Ich habe eine Datenbank in der habe ich ein Feld “angemeldet”. Nun will ich das ich per PHP dieses Feld mit $sql abfragen kann (hier der Code den ich schon geschrieben habe):

if ($sql = "SELECT $user FROM `users` WHERE `angemeldet` = 'ja'" ) }

($user ist der Name der Session)

Die Abfrage soll abfragen, ob das Feld “angemeldet” = “ja” ist. Wenn es wahr ist, das in dem Feld “ja” steht, soll per echo “Ja Sie sind drinnen” stehen.

Ich glaube es geht mit einer “while-Schleife” aber ich weiß leider nicht wie. Alle meine Versuche sind schon gescheitert.

Ich hoffe jemand findet oder kennt eine Antwort auf mein Problem.

Der gezeigte Code ist Quatsch, so kann man keine SQL-Abfragen machen.
Die werden nicht von PHP ausgeführt, sondern von der Datenbank - und deshalb muss man sie erst mal an diese übergeben.

Bitte lies dir ein Grundlagentutorial zum Thema durch, bspw.
php-einfach.de/einf_mysql.php
tut.php-quake.net/de/mysql.html
peterkropff.de/site/tutorials/php_mysql.htm


dann überprüfen ob das Resultat leer ist oder nicht

dann überprüfen ob das Resultat leer ist oder nicht

[quote=„chrisb“]Der gezeigte Code ist Quatsch, so kann man keine SQL-Abfragen machen.
Die werden nicht von PHP ausgeführt, sondern von der Datenbank - und deshalb muss man sie erst mal an diese übergeben.

Bitte lies dir ein Grundlagentutorial zum Thema durch, bspw.
php-einfach.de/einf_mysql.php
tut.php-quake.net/de/mysql.html
peterkropff.de/site/tutorials/php_mysql.htm
[/quote]
Danke chrisb werde ich mir zur gemüte führen^^ (ich kann einiges mit PHP aber man lernt ja nie aus :p und grad steh ich irgend wie auf dem schlauch ^^)

[quote=„michi7x7“]

SELECT 1 FROM users WHERE user = '$user' AND angemeldet = 'ja';

dann überprüfen ob das Resultat leer ist oder nicht[/quote]

das funktioniert so weit aber ich glaub ich steh wirklich auf dem schlauch

SELECT 1 FROM users WHERE user = ‚$user‘ AND angemeldet = ‚ja‘;

user ist doch der Name der Session des Benutzers oder? wenn ich die tabelle „angemeldet“ in phpMyAdmin eingeb, findet er etwas (1 durch * ersetzen) aber auf der Seite zeigt der noch immer „Ja Sie sind drinnen“ auch wenn das "ja " nicht drinnen ist in der Tabelle.

ich glaub ich mach grad einen Kleinen Fehler immer größer (Knoten im Kopf^^)

aber danke für die Hilfe michi hat mir bisher sehr geholfen.

Wenn so deine Userverwaltung aussieht ja. Standartmäßig nicht.

Hast du jetzt mysql_query() benutzt? Wenn nein, Chrisb’s Beitrag nochmal lesen. Links sind übrigens zum anklicken da :wink2:

Mfg

ich weiß ^^
heute morgen is es mir eingefallen wie es geht

$sql = "SELECT * FROM users WHERE user = '$user";

                                   $res = mysql_query ($sql);

                                   $dsatz = mysql_fetch_assoc($res);

                                   $log = $dsatz["angemeldet"];

echo mysql_error();                                                           

            if(logged_in() ) {

                        if($log == "ja") {

                                   echo "Sie Nehmen Teil<br />";

aber danke für die tipps. (Gestern stand ich echt auf dem Schlauch) ^^

noch nen kleinen Tip am Rande, niemals Variablen ohne Escape für die Datenbank nutzen

SQL Injection

real-escape-string

Alternativ kann an auch mit Prepared Statements arbeiten, was aber zum Anfang nen bisschen schwer zu verstehen ist.

und den * Operator sollte man auch nich immer nutzen. Man sollte wirklich nur das Abfragen, was benötigt wird. Performance heisst hier das Zauberwort.