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') && (2 > 1) || (2 != 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&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
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
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,
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
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.

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
Ghostmaster
Kein Problem.