<if()> in html, aber wie sieht die php aus?

schweppe
Hi

ich brauche in html eine <if(bedinung)> anweisung wie sie auch des öfteren im wbb vorkommt, alllerdings find ich nicht herraus wie das ganze in php aussehn muss.

danke für jeden tip

gruß schweppe
Dizzy.w3
Hi,

HTML ist eine reine Auszeichnungssprache. - Sprich, Abfragen sind damit nicht möglich.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<?php

function tuEtwas()
{
    echo 'Erfolg!';
}

$foo 'bar';

// == bedeutet: 'entspricht'
// > bedeutet größer
// && bedeutet, dass beide Bedingungen erfüllt sein müssen
// || bedeutet, dass Bedingung 1 oder Bedingung 2 erfüllt sein muss
if(($foo == 'bar') && (1) || (!= 1)) tuEtwas();
else echo 'Zonk!';

?>
schweppe
ehrlich gesagt tap ich jetzt erst richtig im dunkeln

die if anweisung ist klar
die function nicht
und wie ich darüber zu dem resultart komme das ich

z.b.
code:
1:
2:
3:
4:
<html>
<if($verwarn_set == 1)><then><a href:"javascript: fenster()">Benutzer verwarnen</a></then></if>
</html>


gelange ist auch nicht klar.


verwarn_set enspricht endeweder 0 oder 1 und gibt mir an ob der user verwarnt wurde oder eben nicht.

ich hätte vielleicht erwähnen sollen das ich php neuling bin und vieles noch nicht so ganz verstehe
GneX
Hallo,

wieso benutzt Du HTML-Tags bzw. Klammern in PHP?

Du kannst in HTML keinerlei Anweisungen oder Abfragen (wie in PHP) bestimmen!
schweppe
wieso kann es dann woltlab?

guck dir doch bitte mal ein template vom wbb an da gibt es haufenweise dieseer if-anweisungen

z.b.
code:
1:
    <if($user_info['receivepm']==1 && $wbbuserdata['can_use_pms']==1)><then><a href="pms.php?action=newpm&amp;userid=$user_info[userid]{$SID_ARG_2ND}"><img src="{$style['imagefolder']}/pm.gif" border="0" alt="{$lang->items['LANG_MEMBERS_PM']}" title="{$lang->items['LANG_MEMBERS_PM']}" /></a></then></if>



und ich möchte verstehn wie das funktioniert damit ich es selber anweden kann Müde
GneX
Ehm, weil Woltlab bzw. das WBB ein Templatesystem nutzt, dass die Befehle umwandelt.
Maniac_81
weil woltlab sich ein template-engine gebastelt hat, welches das kann smile

schau dir diesbezüglich mal ->smarty<- an
Dizzy.w3
Hi,

@schweppe
was willst du jetzt? - Möchtest du für's wBB coden (dann bist du im falschen Forum) oder was in PHP (dann bist du im richtigen Forum)?

Was gibt's an deiner Codezeile groß zu verstehen? Was möchtest du an deine Bedürfnisse anpassen?
schweppe
ähm fürs wbb, dann sorry wenn ich durch die wahl des falschen forums verwirrung gestifftet habe...


was daran nicht zuverstehn ist.. eigentlich nur wie der php teil auszusehn hat damit es funktioniert.

also ich lese die spalte verwarnung_set aus der tabelle aus und wie geb ichs dann weiter an die if anweisung die im template steht?
da liegt halt mein verständnis problem

so sieht halt der code in dem template aus
code:
1:
<if($verwarnung_set == 1)><then><a href:"javascript: fenster()">Benutzer verwarnen</a></then></if>


und das ist bisher mein php ausschnitt
php:
1:
2:
3:
4:
5:
6:
$überprüf="SELECT 'verwarnung_set' FROM bb".$n."_users";
$resultart=mysql_query($überprüf);
while($row mysql_fetch_object($resultart))
    {
    $verwarnung_set $row->verwarnung_set;
    }

aber so funktioniert es halt nicht....


naja vielleicht wäre ja ein moderator so nett das hier zu verschieben?
oder wegen mir auch zu löschen dann erstelle ich ihn neu im richtigen forum

gruß schweppe
Maniac_81
-->verschoben

du solltest dir mal die anderen PHP dateien ansehn. dann ist es leicht zu verstehen.
schweppe
das habe ich, und gerade noch einmal, aber ich steig da einfach nicht hinter,
ich mein bis jetzt hab ich mir alles irgendwo abgeleitet aber hier scheint es zu scheitern, verwirrt

ein anhalts punkt wäre vielleicht etwas hilfreich oder gar die beschreibung des aufbaus wie er sein müsste
Agi
Nimm die Umlaute aus dem Code! Auf Linux-Servern kommt es da meistens zu Problemen und wahrscheinlich liegt es zum Teil auch daran, dass es nicht funktioniert.
schweppe
oh ja, hab ich gar nicht dran gedacht, die änderung hat mich nun aber auch nicht wirklich weiter gebracht Müde

hat denn keiner eine idee?
Rogerhuber
php:
1:
2:
3:
4:
5:
$query "SELECT `verwarnung_set`FROM bb".$n."_users";
$result mysql_query($query) or die(mysql_error());;
while($row mysql_fetch_object($result)) {
    $verwarnung_set $row->verwarnung_set;
}


Persönlich hab ich den verdacht das hier im Query noch was fehlt. Den so liesst du das Feld `verwarnung_set`von allen usern aus, hast aber nur das des letzten Datensatzes in der Variable $verwarnung_set. (Eventuell hängt dein Fehler auch hier. Vielleicht hat der letzte Datensatz eine 0 und dein if im template gibt dann wie gewünscht nichts aus.)
Falls nichts fehlt, dann kannst du hier noch optimieren indem du das Query direkt auf die Userid beschränkst.

Ansonsten spielt es halt noch eine Rolle wo du es in der PHP-Datei einfügst.
Ghostmaster
Sag doch einfach genau, was du möchtest. smile Das geht viel schneller.

In deinem PHP Code sollten wir uns aber schon an die WBB Standards halten, oder wir machen es neutral.
Grundsätzlich solltest du die QUERY schon genau abfragen sprich es sollte so aussehen:

code:
1:
2:
$result = $db->query_first("SELECT verwarnung_set FROM bb".$n."_users WHERE userid = '$userid'");

Variable wäre dann $result['verwarnung_set']. Dies ist aber nur eine Abfrage für einen User.
Für alle würde es so aussehen:

code:
1:
2:
3:
4:
$result = $db->query("SELECT verwarnung_set FROM bb".$n."_users");
while ($row = $db->fetch_arry($result)) {
 $verwarnung_set = $row['verwarnung_set']
}

Die Variable wäre hier dann $verwarnung_set
schweppe
Danke ghostmaser, das hat geklappt smile
Ghostmaster
Kein Problem. Augenzwinkern