Zum Inhalt springen

Was ist an dieser syntax Falsch ???


Empfohlene Beiträge

Habe etwas programmiert.

Dieses Script soll den wert aus der spalte gag in der tabelle $_T_USERS auslesen und dann mit einem vorgegebenen wert (hier 0) vergleichen.

Es soll anhand des schon bekannten namen (hier der wert nick) dessen wert im feld gag auslesen.

Ist der Wert 0 soll das script weiter ausgeführt werden. andernfalls abbrechen (nichts machen).

Mein Code:

$result= mysql_query("SELECT gag FROM $_T_USERS WHERE nick = $user");
if ($result == "0")
{
$sql="INSERT INTO $_T_CHAT_MESSAGES VALUES ('','$_user->chat_raum','$text','$_user->nick','$an','$farbe','$schriftart','$format','".date('YmdHis')."')";
mysql_query($sql,$v);
}
else
die();
}
[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von FisyX

$result= mysql_query("SELECT gag FROM $_T_USERS WHERE nick = $user");
if ($result == "0")
{
$sql="INSERT INTO $_T_CHAT_MESSAGES VALUES ('','$_user->chat_raum','$text','$_user->nick','$an','$farbe','$schriftart','$format','".date('YmdHis')."')";
mysql_query($sql,$v);
}
else
die();
} // Für was soll diese Klammer sein ?
[/PHP]

Ausserdem kannst du nicht direkt auf die Variable Result zugreifen.

Mit:

[PHP]
while($row = mysql_fetch_array($result)) {
echo $row["gag"];
}

kannst du auf die Inhalte zugrifen.

Grüße

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo!

Also, ich weiß leider nicht ganz was


if ($result == "0")
[/PHP]

soll.

[i]Zitat von http://de.php.net/manual/de/function.mysql-query.php:[/i]

Nur für SELECT, EXPLAIN, SHOW oder DESCRIBE Anweisungen liefert mysql_query() eine Ressourcen-Kennung oder FALSE, falls die Anfrage nicht korrekt ausgeführt wurde. Für alle anderen SQL Anweisungen ist der Rückgabewert von mysql_query() im Erfolgsfall TRUE, im Fehlerfall FALSE. Ein Rückgabewert ungleich FALSE bedeutet, dass die Anfrage gültig war und vom Server ausgeführt werden konnte. Das alleine sagt jedoch überhaupt nichts über die Anzahl veränderter oder gelieferter Datensätze aus. Es ist durchaus möglich, dass eine Anfrage erfolgreich war, ohne einen einzigen Datensatz zur verändern oder zu liefern.

Vielleicht liegt der Fehler ja hier.

Und du solltest mit den Ressourcen-IDs aufpassen. Einmal rufst du [b]mysql_query()[/b] nur mit der Query auf, weist den Interpreter also an, die letztbenutzte Verbindung zu verwenden. Danach, beim Eintragen in die Message-Tabelle, benutzt du die id [b]$v[/b]. Das kann zu Fehlern führen. Nach diesem Block z.B. ist die letztverwendete Verbindung nicht die user-Verbindung sondern die $v-Verbindung (Wenn dies nicht dieselben sind).

Ich hoffe, du kommst ein wenig weiter.

Gruß

kLeiner_HobBes

Link zu diesem Kommentar
Auf anderen Seiten teilen

mein bisheriger code:

$ergebnis=mysql_query("SELECT gag FROM ".$_T_USERS." WHERE nick='".$nick."'",$v);
$anzahl=mysql_num_rows($ergebnis);

if ($anzahl == 0)
{
$sql="INSERT INTO $_T_CHAT_MESSAGES VALUES ('','$_user->chat_raum','$text','$_user->nick','$an','$farbe','$schriftart','$format','".date('YmdHis')."')";
mysql_query($sql,$v);
}
else
{
die();
}[/PHP]

Das script soll den wer in der spalte gag der tabelle test mit dem von mir gewollten wert 0 vergleichen! wenn gag = 0 dann führe script aus.... andernfalls nicht.

Den gag wer muss ich anhand des usernamen rausfiltern.

Denn nur wenn der user in der tabellenspalte gag 0 drin stehen hat soll das script nix machen

Es will ned funktionieren.... Warum ?????????

Was mach ich falsch ???? :( :( :( :(

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also, ich habe das mal auf eine Tabelle einer meiner DB angepasst und es geht. Sicher, dass deine Variablen richtig gefüllt sind??? was steht bei Dir in.

$v

$_T_USERS

$nick

Lass Dir die Werte ausgeben und überprüfe diese noch einmal!



<?

include("inc/db_connect.inc");

$tabelle = "db_tab_us_user";
$benutzer = "peter";

$ergebnis=mysql_query("SELECT db_us_nr FROM " . $tabelle . " WHERE db_us_name = '". $benutzer . "'");

$anzahl=mysql_num_rows($ergebnis);

echo("Anzahl : " . $anzahl . "<br>");

if ($anzahl == 0)
{
echo("Keine Daten");
}
else
{
echo("Daten vorhanden");
}


?>

[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

habs jetzt so geproggt:

global $HTTP_COOKIE_VARS,$_T_USERS,$v,$_user;
# Cookie auslesen
$cookie=$HTTP_COOKIE_VARS['chatdaten'];
if (isset($cookie) && $cookie!="") {
$cookie=base64_decode($cookie);
$cookie=explode(":", $cookie);
$id="$cookie[0]";
$nick="$cookie[1]";
$pwd="$cookie[2]";

$ergebnis=mysql_query("SELECT gag FROM ".$_T_USERS." WHERE nick='$nick'",$v);
$anzahl=mysql_num_rows($ergebnis);

if ($anzahl==1)
{
$sql="INSERT INTO $_T_CHAT_MESSAGES VALUES ('','$_user->chat_raum','$text','$_user->nick','$an','$farbe','$schriftart','$format','".date('YmdHis')."')";
mysql_query($sql,$v);
}
else { die(); }
}[/PHP]

lese alle daten aus cookie aus.

Der obige quellcode funktioniert.

Aber er funktioniert auch, wenn in der spalte gag 0 eingetragen ist!

Woran liegt es ???

Help :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von FisyX

$ergebnis=mysql_query("SELECT gag FROM ".$_T_USERS." WHERE nick='$nick'",$v);

Aber er funktioniert auch, wenn in der spalte gag 0 eingetragen ist!

Woran liegt es ???

Du fragst ja nirgends gag ab. Wenn ich das richtig verstehe steht in gag 0 oder 1 drin. Also bringt dir die Abfrage immer ein Ergebnis

$ergebnis=mysql_query("SELECT gag FROM ".$_T_USERS." WHERE nick='$nick' and gag=1",$v);

So würdest du kein Ergebnis bekommen, wenn gag<>1 ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nach geschlagenen 4 stunden hab ichs *freu*

:D :D :D :D :D :D

Will ja mein Glück teiel... also hier der quellcode:

 global $HTTP_COOKIE_VARS,$_T_USERS,$v,$_user;
# Cookie auslesen
$cookie=$HTTP_COOKIE_VARS['chatdaten'];
if (isset($cookie) && $cookie!="") {
$cookie=base64_decode($cookie);
$cookie=explode(":", $cookie);
$id="$cookie[0]";
$nick="$cookie[1]";
$pwd="$cookie[2]";

$ergebnis=mysql_query("SELECT * FROM ".$_T_USERS." WHERE nick='$nick' AND gag='0'",$v);
$anzahl=mysql_num_rows($ergebnis);

if ($anzahl==1)
{
$sql="INSERT INTO $_T_CHAT_MESSAGES VALUES ('','$_user->chat_raum','$text','$_user->nick','$an','$farbe','$schriftart','$format','".date('YmdHis')."')";
mysql_query($sql,$v);
}
else { die(); }
}[/PHP]

THX für eure hilfe :marine

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...