PHP & MySQL Syntax Probleme

Ähm das nennt sich if.

Würde dann in etwa so gehen.
Erstmal abfragen ob die Buffs in der DB stehen und die Abfrage Ergebnisse in einer Variable speichern.

Also etwa in der Art.

<?php if($charid == "$abfrage1" and $buffid == "$abfrage2") { echo "Du bist schon gebufft"; } else { Buff Teil } ?>

Genau an sowas dachte ich dabei.

Dass es sich um if, echo und else handelt war mir bewusst. Nur bevor ich dir hier Script-Brocken hinwerf schreib ich lieber garnix erst als Script - mir war nämlich noch nicht klar wie man SQL fragt ob schon was vorhanden ist.

Insofern hast du mir schon weitergeholfen :smiley:

Ich werd jetzt mal weiterfummeln und wenn ich wieder häng oder fertig bin sag ich bescheid ^^.

!coffee

So nach viel nachdenken rumprobieren ect. hab ich es geschafft :smiley:
Leider noch die radikale Methode auf die Art
Ey Alder wenn du Buffs hast gibts nix xD.

[code]<?
$idd=$_POST[‘id’]; // Empfange Character ID
require_once(‘config.php’);
// Frage ab ob schon Buffs vorhanden sind.
$link = mysql_connect(“127.0.0.1”, “root”, “bla”);
mysql_select_db(“flyff”, $link);

$result = mysql_query(“SELECT * FROM buffs WHERE charid = 2161”);
$num_rows = mysql_num_rows($result);
//Frage ab ob schon Buffs vorhanden sind.

if ($num_rows > 0)
{
echo “You have $num_rows buffs
“;
echo “You are already buffed.
You can only be buffed when you have none buffs”;
}
else
{
$query = “INSERT INTO buffs (charid, skillid, skilllvl, abilityType1, ability1, abilityType2, ability2, abilityType3, ability3, remainingTime) VALUES
(”.$idd.”, 148, 10, 63, 140, 0, 0, 0, 0, 3600000),
(”.$idd.", 147, 10, 27, 50, 0, 0, 17037000, 17036804, 3600000),
(".$idd.", 52, 20, 3, 20, 0, 0, 0, 0, 3600000),
(".$idd.", 50, 20, 2, 20, 0, 0, 0, 0, 3600000),
(".$idd.", 46, 20, 35, 210, 0, 0, 0, 0, 3600000),
(".$idd.", 115, 20, 14, 12, 0, 0, 0, 0, 3600000),
(".$idd.", 20, 20, 24, 500, 0, 0, 0, 0, 3600000),
(".$idd.", 146, 10, 26, 50, 0, 0, 0, 0, 3600000),
(".$idd.", 116, 20, 47, 20, 0, 0, 0, 0, 3600000),
(".$idd.", 53, 20, 1, 20, 0, 0, 0, 0, 3600000),
(".$idd.", 49, 20, 4, 40, 0, 0, 0, 0, 3600000),
(".$idd.", 114, 20, 11, 30, 0, 0, 0, 0, 3600000)";
mysql_query($query); //Führe Abfrage aus
echo "<p align=“center” style=“font-family:Verdana;font-size:20px;”>

Your character was succesfully buffed


"; } ?>[/code]

Beim schnellen drüberschweifen fällt mir auf, dass du die beiden arten von Anführungszeichen beim definieren der Variable $query vermischst.
Dein Code:

$query='INSERT INTO buffs (charid, skillid, skilllvl, abilityType1, ability1, abilityType2, ability2, abilityType3, ability3, remainingTime) VALUES ("$idd.", 148, 10, 63, 140, 0, 0, 0, 0, 3600000), (".$idd.", 147, 10, 27, 50, 0, 0, 17037000, 17036804, 3600000), (".$idd.", 52, 20, 3, 20, 0, 0, 0, 0, 3600000), (".$idd.", 50, 20, 2, 20, 0, 0, 0, 0, 3600000), (".$idd.", 46, 20, 35, 210, 0, 0, 0, 0, 3600000), (".$idd.", 115, 20, 14, 12, 0, 0, 0, 0, 3600000), (".$idd.", 20, 20, 24, 500, 0, 0, 0, 0, 3600000), (".$idd.", 146, 10, 26, 50, 0, 0, 0, 0, 3600000), (".$idd.", 116, 20, 47, 20, 0, 0, 0, 0, 3600000), (".$idd.", 53, 20, 1, 20, 0, 0, 0, 0, 3600000), (".$idd.", 49, 20, 4, 40, 0, 0, 0, 0, 3600000), (".$idd.", 114, 20, 11, 30, 0, 0, 0, 0, 3600000)';
Du verwendest beim Öffnen des Strings ’ Anführungszeichen und bei den Verknüpfungen in der Abrage die doppelten: “
Dadurch wird dieser Teil in den doppelten vom PHP normaler Inhalt gewertet und die Variable $idd kommt nie zum Zuge.
Weiter ist sicher die erste Zeile mit VALUES:
(”$idd.", 148, 10, 63, 140, 0, 0, 0, 0, 3600000),
mit einem kleinen Syntaxfehler bestückt. (sollte auch einen auslösen sobald du den oben beschriebenen Fehler korrigierst.)
Du hast hier vergessen den Punkt . vor der $idd zu machen. (führt Verknüpfungsproblemen bei den Strings)

mfG
dola

denke diese beiden Fehler sollten alles beheben. Hab zwar den rest nicht durchgeschaut aber denke da wird schon alles richtig sein. (sofern die Datenbank auch wirklich eine solche Tabellenstruktur aufweist)

//EDIT: Sry leute, ich hab nur die erste Seite deines Skripts gesehen^^ Deshalb hab ich anhand dieser Infos meinen Beitrg verfasst. Bin froh, dass du es nun auch geschafft hast.