MyBB.de Forum

Normale Version: Php Mysql Auslese ohne Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallöchen,

ich hab noch ein kleines Problem mit einer Datenbankauslese mittels PHP. Es funktioniert, dass ist schon mal das Gute. Allerdings gibt es folgendes Problem: Ich bekomme alles in einer Schleife ausgelesen. Das heißt die Abfrage lässt für jede Zeile alle Inhalte aus und schreibt diese hintereinander. Wenn ich die Schleife zu unterbinden versuche, gibt er mir sofort einen Error aus und es funktioniert gar nicht mehr.

Anbei der Code:


PHP-Code:
define('IN_MYBB'1); 
require 
"./global.php"
require 
"./inc/config.php";

add_breadcrumb("Kreaturen""kreaturen.php");


$result $db->query("SELECT username FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid14 = 'HUMAN' ORDER BY username ASC");

while(
$kreatur $db->fetch_array($result)) {
 
$human .= $kreatur['username'];
  eval(
"\$kreatur_human .= \"".$templates->get("kreatur_human")."\";"); 
}


$result $db->query("SELECT username FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid14 = 'SHADOWHUNTER' ORDER BY username ASC");
 
while(
$kreatur $db->fetch_array($result)) {
 
$shadowhunter .= $kreatur['username'];
  eval(
"\$kreatur_shadowhunter .= \"".$templates->get("kreatur_shadowhunter")."\";"); 



$result $db->query("SELECT username FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid14 = 'VAMPIRE' ORDER BY username ASC");

while(
$kreatur $db->fetch_array($result)) {
 
$vampire .= $kreatur['username'];
  eval(
"\$kreatur_vampire .= \"".$templates->get("kreatur_vampire")."\";"); 
}


$result $db->query("SELECT username FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid14 = 'WEREWOLF' ORDER BY username ASC");

while(
$kreatur $db->fetch_array($result)) {
 
$werewolf .= $kreatur['username'];
  eval(
"\$kreatur_werewolf .= \"".$templates->get("kreatur_werewolf")."\";"); 
}


$result $db->query("SELECT username FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid14 = 'WARLOCK' ORDER BY username ASC");

while(
$kreatur $db->fetch_array($result)) {
 
$warlock .= $kreatur['username'];
  eval(
"\$kreatur_warlock .= \"".$templates->get("kreatur_warlock")."\";"); 
}

$result $db->query("SELECT username FROM mybb_users LEFT JOIN mybb_userfields ON mybb_users.uid = mybb_userfields.ufid WHERE fid14 = 'FAIRY' ORDER BY username ASC");

while(
$kreatur $db->fetch_array($result)) {
 
$fairy .= $kreatur['username'];
  eval(
"\$kreatur_fairy .= \"".$templates->get("kreatur_fairy")."\";"); 
}
 
 




eval(
"\$kreaturen = \"".$templates->get("kreaturen")."\";"); 
output_page($kreaturen);


?>


Hoffe man kann mir helfen....

LG
Ich weiß natürlich nicht, wie die entsprechenden Templates aussehen, aber lass doch mal die Punkte jeweils in der Zeile unter while(...) weg, also zB.
$human = $kreatur['username'];
$shadowhunter = $kreatur['username'];
usw.
Hallo,

wenn ich das versuche liests mir leider gar nichts mehr aus. Meine Templates sehen wie folgt aus:

Kreaturen

PHP-Code:
<html>
<
head>
<
title>{$settings['bbname']} - Kreaturen</title>
{
$headerinclude}
</
head>
<
body>
{
$header}
<
table border="0" cellspacing="{$theme['borderwidth']}cellpadding="{$theme['tablespace']}class="tborder">
<
tr>
<
td class="thead"><h3>Kreaturen</h3></font></td>
</
tr>

<
tr>
<
td>
<
table width="100%"><tr>
<
td width="50%" valign="top">

<
table width="100%">
<
tr><td align="center"><div style="width:350px; padding: 10px; background-color: #ad0d0d; text-align: center; font-family: open sans; font-size: 7px; letter-spacing: 5px; text-transform: uppercase; color: white;">HUMAN</div></td></tr>
<
tr><td>
$kreatur_human
</td></tr>
</
table></td>


<
td width="50%" valign="top">
<
table width="100%">
<
tr><td align="center"><div style="width:350px; padding: 10px; background-color: #ad0d0d; text-align: center; font-family: open sans; font-size: 7px; letter-spacing: 5px; text-transform: uppercase; color: white;">SHADOWHUNTER</div></td></tr>
<
tr><td>
$kreatur_shadowhunter
</td></tr>
</
table></td></tr></table></td></tr>


<
tr>
<
td>
<
table width="100%"><tr>
<
td width="50%" valign="top">

<
table width="100%">
<
tr><td align="center"><div style="width:350px; padding: 10px; background-color: #ad0d0d; text-align: center; font-family: open sans; font-size: 7px; letter-spacing: 5px; text-transform: uppercase; color: white;">VAMPIRE</div></td></tr>
<
tr><td>
$kreatur_vampire
</td></tr>
</
table></td>


<
td width="50%" valign="top">
<
table width="100%">
<
tr><td align="center"><div style="width:350px; padding: 10px; background-color: #ad0d0d; text-align: center; font-family: open sans; font-size: 7px; letter-spacing: 5px; text-transform: uppercase; color: white;">WEREWOLF</div></td></tr>
<
tr><td>
$kreatur_werewolf
</td></tr>
</
table></td></tr></table></td></tr>



<
tr>
<
td>
<
table width="100%"><tr>
<
td width="50%" valign="top">

<
table width="100%">
<
tr><td align="center"><div style="width:350px; padding: 10px; background-color: #ad0d0d; text-align: center; font-family: open sans; font-size: 7px; letter-spacing: 5px; text-transform: uppercase; color: white;">WARLOCK</div></td></tr>
<
tr><td>
$kreatur_warlock
</td></tr>
</
table></td>


<
td width="50%" valign="top">
<
table width="100%">
<
tr><td align="center"><div style="width:350px; padding: 10px; background-color: #ad0d0d; text-align: center; font-family: open sans; font-size: 7px; letter-spacing: 5px; text-transform: uppercase; color: white;">FAIRY</div></td></tr>
<
tr><td>
$kreatur_fairy
</td></tr>
</
table></td></tr></table></td></tr>


</
tr>
</
table></td>

</
table></td></tr>


</
table>
{
$footer}
</
body>
</
html

Einzel Tpl

PHP-Code:
<tr><td style="padding-left:20px;"><font size="1" style="font-family:open sans; size:7px; text-transform:uppercase;">$human</font></td></tr
Füge Variablen in den Templates so ein:
Code:
{$kreatur_human}
statt
Code:
$kreatur_human
Jockl, das macht grundsätzlich keinen Unterschied, PHP unterstützt da mehrere Varianten. Wink
Oha.... Blush
Im Grunde müsste es ja mit ner If Abfrage gehen - also Num Rows = 0 ... aber das mag er nicht. Da gibt er sofort nen Error...
Ohne deinen Code und die Fehlermeldung kann man leider nur raten. Wink
Der Vorschlag von waldo müßte eigentlich genau passen. .= nur innerhalb des eval(), nicht bei der Variable davor.
Nur mal eine grundsätzliche Frage, aber warum machst du für jede Art (Vampir, Werwolf...) einen eigenen MySQL-Query? Du kannst ja doch einfach das alles über einen MySQL-Query abwickeln. Du musst dann halt einfach in der While-Schleife fragen, was er nun ist und dann so reagieren.
Seiten: 1 2