anpera.net
https://anpera.dyndns.org/phpbb3/

Problem mit den addnavs...
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=2708
Seite 1 von 1

Autor:  Morpheus [ Do 27 Jul, 2006 20:51 ]
Betreff des Beitrags:  Problem mit den addnavs...

Ich will, daß der Spieler, wenn er den Ring aus Sternenglanz erhalten hat, eine bstimmte addnav angezeigt bekommt, so sieht es im Moment aus:

$this->bbcode_second_pass_code('', 'if ($_GET['op']=="fichte"){
output("`2Weg der Waldfeen");
output("`2Du gehst den Weg bei der Fichte weiter, immer tiefer in den Wald.");
$sql="SELECT * FROM items WHERE owner=".$session['user']['acctid']." AND class='Schmuck'ORDER BY class,id ASC";
$result = db_query($sql) or die(db_error(LINK));
for ($i=1;$i<=db_num_rows($result);$i++){
$item = db_fetch_assoc($result);
if ($item[name]=="Ring aus Sternenglanz")addnav("T?Zum Tanz mit den Feen","zauberwald.php?op=fichtej");
}
addnav("W?Weiter","zauberwald.php?op=fichten");
}
')
Problem:
mach ich ein

$this->bbcode_second_pass_code('', '}else{')

bekomme ich die Fehlermeldung

unexpected T_else on line....

aber lasse ich es so, bekommt der User immer beide addnavs angezeigt, wenn er den Ring hat. Ich hab versucht, es jetzt so zu lösen:

$this->bbcode_second_pass_code('', 'if ($_GET['op']=="fichte"){
output("`2Weg der Waldfeen");
output("`2Du gehst den Weg bei der Fichte weiter, immer tiefer in den Wald.");
$sql="SELECT * FROM items WHERE owner=".$session['user']['acctid']." AND class='Schmuck'ORDER BY class,id ASC";
$result = db_query($sql) or die(db_error(LINK));
for ($i=1;$i<=db_num_rows($result);$i++){
$item = db_fetch_assoc($result);
if ($item[name]!="Ring aus Sternenglanz"){
addnav("W?Weiter","zauberwald.php?op=fichten");
}else{
addnav("T?Zum Tanz mit den Feen","zauberwald.php?op=fichtej");
}
}
}')

Problem: jetzt bekomme ich gar keine addnavs mehr angezeigt. Ich vermute mal stark, daß man die Abfrage nach dem Gegenstand eleganter Lösen kannund daß es wohl daran liegen dürfte, aber SQL ist immer noch nicht meine Stärke, kann mir da wer bitte aus der Klemme helfen? :pein:

Autor:  Taikun14 [ Do 27 Jul, 2006 21:25 ]
Betreff des Beitrags: 

Ich kenne mich zwar auch nicht so aus, aber ich hätte evtl eine einfachere Lösung...

Leg doch das 'Item' in 'accounts' an und ruf es mit
$session['user']['ringblabla']

und im if dann so:

if ($session['user']['ringbla']==1){

usw. Vielleicht ist das ja eine Lösung die einfacher geht. Ob das dann auch mit den addnavs usw. geht weiss ich nich sorry :/

Autor:  Morpheus [ Do 27 Jul, 2006 21:43 ]
Betreff des Beitrags: 

Daran dachte ich auch schon, aber dafür extra ein Feld in den Acounts erstellen wollte ich eigentlich nicht, zumal ich mir denke, daß die Veteranen hier sich schon zu Hause am Bildschirm tot lachen über dieses lappidare Problem und eine bessere Lösung dafür haben.
Ich danke Dir aber sehr herzlich für Deinen Vorschlag :wink:

Autor:  Eliwood [ Do 27 Jul, 2006 21:51 ]
Betreff des Beitrags: 

Ja, es gibt eine. ;)

Wenn ich jetzt nyt völlig daneben liege (Und Achtung, wie Lyra bereits gemerkt hat hab ich ja 0 Ahnung von allem und helfe nie):
[php]if ($_GET['op']=="fichte") {
output("`2Weg der Waldfeen");
output("`2Du gehst den Weg bei der Fichte weiter, immer tiefer in den Wald.");
$sql = 'SELECT * FROM items WHERE '
.'owner="'.$session['user']['acctid'].'" AND name="Ring aus Sternenglanz" LIMIT 1';
$result = db_query($sql) or die(db_error(LINK));
if(db_num_rows($result)) {
addnav("W?Weiter","zauberwald.php?op=fichten");
}
else {
addnav("T?Zum Tanz mit den Feen","zauberwald.php?op=fichtej");
}
}[/php]

Autor:  Morpheus [ Do 27 Jul, 2006 22:07 ]
Betreff des Beitrags: 

Vielen Dank Eli, das klappt einwadfrei! :wink:

Auch, wenn es mich nur indirekt etwas angeht, eine Bitte:

Ich weiß, Lyra und Du, ihr mögt Euch nicht, aber bitte versucht doch, das Kriegsbeil so gut wie möglich zu begraben und nicht noch durch solche kleinen Seitenhiebe das Blut in Wallung zu bringen!
Man kann nicht immer mit jedem gleich gut, das ist normal, aber dieser Krieg bringt nur Verluste, für Euch, für die Community, für die neuen User, keinen Gewinn für irgendwen...also: PAX! :) :wink:

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/