Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „PHP-Code anpassen (DB-Abfrage)“

Lumartist

Drupaler

Guten Tag aber auch,

ich bräuchte da mal Hilfe!

Folgeeeendes: Ich nutze als CMS Drupal, und lasse dort in einer Seite mittels eines PHP-Codes eine Liste bestimmter Mitglieder, orientiert an Rollen (Gruppen) generieren. Ich selbst habe kaum Ahnung von PHP, und konnte den Code gerade so anpassen (Try and Error), das er meinen Bedürfnissen entspricht. Leider brauche ich jetzt etwas, bei dem ich mit meinem Kenntnissen nicht mehr weiter komme, ganz einfach weil mir das Verständnis fehlt, und ich hoffe das mir hier vllt jemand helfen kann. Ich wäre da echt dankbar!

Hier mal der PHP-Part, Erklärung folgt dann:

Code:
<?php
$rid = 21;
print(
'<table width="623" border="0" cellspacing="0" cellpadding="0">'); $sql = "SELECT u.uid, u.name FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = $rid ORDER BY name ASC";
$sql .= tablesort_sql($header);
$result = pager_query($sql, 50); while (
$account = db_fetch_object($result)) {
   $account = user_load(array('uid' => $account->uid));
if($account->picture){$account->picture = '<a href="?q=user/'.$account->uid.'"><img src="/'.$account->picture.'" height="110" width="100" alt="'.$account->name.'""></a>';}
 else{$account->picture = '<a href="?q=user/'.$account->uid.'">- kein Avatar -</a>';}      print(
'<tr>'
    . '<td valign="middle" width="108" height="20" style="border-bottom:1px dotted #8e7e6b;"><strong><a class="prf3" href="?q=user/'.$account->uid.'">' . $account->name . '</a></strong></td>'
    . '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
    . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_volk . '</td>'
    . '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
    . '<td valign="middle" width="41" style="border-bottom:1px dotted #8e7e6b;"><div style="text-align:center; padding-right:5px;">' . $account->profile_stufe . '</div></td>'
    . '<td valign="middle" width="97" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_craft2 . '</td>'
    . '<td valign="middle" width="50" style="border-bottom:1px dotted #8e7e6b;"><a href="?q=user/'.$account->uid.'"><strong>Profil</strong></a></td>'
    . '</tr>');
    
}     print(
"</table>\n"); ?>
Also: Die 21 stellt die Rollen-ID dar. Das Ganze funktioniert so auch. Für jene die sich vllt auskenne, die hier abgefragten Felder stammen vom Core-Profil-Modul von Drupal.

Unter anderem gibt es nun diese Aausgabe $account->profile_volk - Dahinter steckt eine Select-List die je nach Auswahl folgende Ergebnisse liefert:

Diese Texte will ich nun durch Bilder je nach Auswahl ersetzen lassen. Das Problem ist, ich weiß nicht wie. Ich habe mal angefangen einen Code-Teil zu schreiben, allerdings weiß ich nicht wie ich diesen im Code, also anstelle des $account->profile_volk einbaue, ohne Fehler zu generieren.

Das ist es was ich mir überlegt hatte (wobei ich nichtmal weiß ob es stimmt):

Code:
<?php

switch($account->profile_volk) {
case 'Elfs': echo 'Bild für Elf'; break;
case 'Zwerg': echo 'Bild für Zwerg'; break;
case 'Mensch': echo 'Bild für Mensch'; break;
}

?>
Kann mir jemand sagen ob das so richtig aussieht, und wie ich es einbaue, bzw ersetze?

Da wo jetzt Bild für... steht kommt natürlich noch ein Div mit entsprechender CSS-Klasse hin, welche das Bild beinhaltet.

Ich wäre sehr, sehr dankbar wenn mir da jemand bei helfen könnte!

Danke!!

Luma

Edit:

Ich hatte mal das ausprobiert, aber das liefert einen Fehler:

Code:
    . '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
    . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . 

switch($account->profile_volk) {
case 'Elf': echo 'Bild für Elf'; break;
case 'Zwerg': echo 'Bild für Zwerg'; break;
case 'Mensch': echo 'Bild für Mensch'; break;
}

. '</td>'
    . '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: PHP-Code anpassen (DB-Abfrage)

Wenn ich dich richtig verstanden habe, sollte das zum Ergebnis führen: Ersetz diese Zeilen
PHP:
. '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_volk . '</td>'
mit
PHP:
. '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $bild . '</td>'
und füg dann vor dem ziemlich schlecht platzierten print deine switch-Anweisung ein:
PHP:
switch($account->profile_volk) {
	case 'Elf': $bild = "<div.....";
		    break;
	case 'Zwerg': $bild = "<div.....";
		    break;
	case 'Mensch': $bild = "<div.....";
		    break;
}

Da der Code relativ unübersichtlich ist, hier dein Snippet nochmal komplett erweitert:
PHP:
<?php
$rid = 21;
print(
'<table width="623" border="0" cellspacing="0" cellpadding="0">'); $sql = "SELECT u.uid, u.name FROM {users} u INNER JOIN {users_roles} ur ON u.uid=ur.uid WHERE ur.rid = $rid ORDER BY name ASC";
$sql .= tablesort_sql($header);
$result = pager_query($sql, 50); while (
$account = db_fetch_object($result)) {
   $account = user_load(array('uid' => $account->uid));
if($account->picture){$account->picture = '<a href="?q=user/'.$account->uid.'"><img src="/'.$account->picture.'" height="110" width="100" alt="'.$account->name.'""></a>';}
 else{$account->picture = '<a href="?q=user/'.$account->uid.'">- kein Avatar -</a>';}      

switch($account->profile_volk) {
	case 'Elf': $bild = "<div.....";
		    break;
	case 'Zwerg': $bild = "<div.....";
		    break;
	case 'Mensch': $bild = "<div.....";
		    break;
}

print(
'<tr>'
    . '<td valign="middle" width="108" height="20" style="border-bottom:1px dotted #8e7e6b;"><strong><a class="prf3" href="?q=user/'.$account->uid.'">' . $account->name . '</a></strong></td>'
    . '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
    . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $bild . '</td>'
    . '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
    . '<td valign="middle" width="41" style="border-bottom:1px dotted #8e7e6b;"><div style="text-align:center; padding-right:5px;">' . $account->profile_stufe . '</div></td>'
    . '<td valign="middle" width="97" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_craft2 . '</td>'
    . '<td valign="middle" width="50" style="border-bottom:1px dotted #8e7e6b;"><a href="?q=user/'.$account->uid.'"><strong>Profil</strong></a></td>'
    . '</tr>');
    
}     print(
"</table>\n"); ?>

Duddle
 

Lumartist

Drupaler

AW: PHP-Code anpassen (DB-Abfrage)

Ich bin dir wirklich extrem dankbar, etwas Ähnliches hatte ich mir schon gedacht, aber was nützen Ideen wenn man unfähig ist sie umzusetzen?

Ich könnte nicht mal beurteilen ob der Code schlecht ist, am Ende bin ich da blauäugig und froh das er funktioniert!

Damit ermöglichst du mir eine Menge Gestalltungsmöglichkeiten, die mir wichtig waren/sind!

Danke schön nochmals!!

Grüße vom,

Luma
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
175.143
Beiträge
2.581.734
Mitglieder
67.208
Neuestes Mitglied
docschweitzer
Oben