Anzeige

PHP-Code anpassen (DB-Abfrage)

PHP-Code anpassen (DB-Abfrage) | PSD-Tutorials.de

Erstellt von Lumartist, 17.07.2008.

  1. Lumartist

    Lumartist Drupaler

    Dabei seit:
    13.03.2008
    Beiträge:
    24
    Geschlecht:
    männlich
    Software:
    PS, QE, FW, 3DMax, MudBux
    PHP-Code anpassen (DB-Abfrage)
    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 (Text):
    1.  
    2. <?php
    3. $rid = 21;
    4. print(
    5. '<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";
    6. $sql .= tablesort_sql($header);
    7. $result = pager_query($sql, 50); while (
    8. $account = db_fetch_object($result)) {
    9.    $account = user_load(array('uid' => $account->uid));
    10. if($account->picture){$account->picture = '<a href="?q=user/'.$account->uid.'"><img src="/'.$account->picture.'" height="110" width="100" alt="'.$account->name.'""></a>';}
    11.  else{$account->picture = '<a href="?q=user/'.$account->uid.'">- kein Avatar -</a>';}      print(
    12. '<tr>'
    13.     . '<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>'
    14.     . '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
    15.     . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_volk . '</td>'
    16.     . '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
    17.     . '<td valign="middle" width="41" style="border-bottom:1px dotted #8e7e6b;"><div style="text-align:center; padding-right:5px;">' . $account->profile_stufe . '</div></td>'
    18.     . '<td valign="middle" width="97" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_craft2 . '</td>'
    19.     . '<td valign="middle" width="50" style="border-bottom:1px dotted #8e7e6b;"><a href="?q=user/'.$account->uid.'"><strong>Profil</strong></a></td>'
    20.     . '</tr>');
    21.    
    22. }     print(
    23. "</table>\n"); ?>
    24.  
    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 (Text):
    1. <?php
    2.  
    3. switch($account->profile_volk) {
    4. case 'Elfs': echo 'Bild für Elf'; break;
    5. case 'Zwerg': echo 'Bild für Zwerg'; break;
    6. case 'Mensch': echo 'Bild für Mensch'; break;
    7. }
    8.  
    9. ?>
    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 (Text):
    1.  
    2.     . '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
    3.     . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' .
    4.  
    5. switch($account->profile_volk) {
    6. case 'Elf': echo 'Bild für Elf'; break;
    7. case 'Zwerg': echo 'Bild für Zwerg'; break;
    8. case 'Mensch': echo 'Bild für Mensch'; break;
    9. }
    10.  
    11. . '</td>'
    12.     . '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
    13.  
     
    Zuletzt bearbeitet: 17.07.2008
    #1      
  2. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    PHP-Code anpassen (DB-Abfrage)
    AW: PHP-Code anpassen (DB-Abfrage)

    Wenn ich dich richtig verstanden habe, sollte das zum Ergebnis führen: Ersetz diese Zeilen
    PHP:
    1.  
    2. . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_volk . '</td>'
    3.  
    mit
    PHP:
    1.  
    2. . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $bild . '</td>'
    3.  
    und füg dann vor dem ziemlich schlecht platzierten print deine switch-Anweisung ein:
    PHP:
    1.  
    2. switch($account->profile_volk) {
    3.     case 'Elf': $bild = "<div.....";
    4.             break;
    5.     case 'Zwerg': $bild = "<div.....";
    6.             break;
    7.     case 'Mensch': $bild = "<div.....";
    8.             break;
    9. }
    10.  
    Da der Code relativ unübersichtlich ist, hier dein Snippet nochmal komplett erweitert:
    PHP:
    1.  
    2. <?php
    3. $rid = 21;
    4. print(
    5. '<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";
    6. $sql .= tablesort_sql($header);
    7. $result = pager_query($sql, 50); while (
    8. $account = db_fetch_object($result)) {
    9.    $account = user_load(array('uid' => $account->uid));
    10. if($account->picture){$account->picture = '<a href="?q=user/'.$account->uid.'"><img src="/'.$account->picture.'" height="110" width="100" alt="'.$account->name.'""></a>';}
    11.  else{$account->picture = '<a href="?q=user/'.$account->uid.'">- kein Avatar -</a>';}      
    12.  
    13. switch($account->profile_volk) {
    14.     case 'Elf': $bild = "<div.....";
    15.             break;
    16.     case 'Zwerg': $bild = "<div.....";
    17.             break;
    18.     case 'Mensch': $bild = "<div.....";
    19.             break;
    20. }
    21.  
    22. print(
    23. '<tr>'
    24.     . '<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>'
    25.     . '<td valign="middle" width="93" style="border-bottom:1px dotted #8e7e6b;"><span style="color:#7c7360;">' . $account->profile_charname. '</span></td>'
    26.     . '<td valign="middle" width="74" style="border-bottom:1px dotted #8e7e6b;">' . $bild . '</td>'
    27.     . '<td valign="middle" width="160" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_klasse . '</td>'
    28.     . '<td valign="middle" width="41" style="border-bottom:1px dotted #8e7e6b;"><div style="text-align:center; padding-right:5px;">' . $account->profile_stufe . '</div></td>'
    29.     . '<td valign="middle" width="97" style="border-bottom:1px dotted #8e7e6b;">' . $account->profile_craft2 . '</td>'
    30.     . '<td valign="middle" width="50" style="border-bottom:1px dotted #8e7e6b;"><a href="?q=user/'.$account->uid.'"><strong>Profil</strong></a></td>'
    31.     . '</tr>');
    32.    
    33. }     print(
    34. "</table>\n"); ?>
    35.  
    36.  
    Duddle
     
    #2      
  3. Lumartist

    Lumartist Drupaler

    Dabei seit:
    13.03.2008
    Beiträge:
    24
    Geschlecht:
    männlich
    Software:
    PS, QE, FW, 3DMax, MudBux
    PHP-Code anpassen (DB-Abfrage)
    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
     
    #3      
x
×
×
teststefan