MyBB.de Forum
Php Mysql Auslese ohne Schleife - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Php Mysql Auslese ohne Schleife (/thread-28388.html)

Seiten: Seiten: 1 2


Php Mysql Auslese ohne Schleife - fallennewyork - 31.08.2013

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


RE: Php Mysql Auslese ohne Schleife - doylecc - 31.08.2013

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.


RE: Php Mysql Auslese ohne Schleife - fallennewyork - 31.08.2013

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



RE: Php Mysql Auslese ohne Schleife - Jockl - 31.08.2013

Füge Variablen in den Templates so ein:
Code:
{$kreatur_human}
statt
Code:
$kreatur_human



RE: Php Mysql Auslese ohne Schleife - StefanT - 31.08.2013

Jockl, das macht grundsätzlich keinen Unterschied, PHP unterstützt da mehrere Varianten. Wink


RE: Php Mysql Auslese ohne Schleife - Jockl - 31.08.2013

Oha.... Blush


RE: Php Mysql Auslese ohne Schleife - fallennewyork - 31.08.2013

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...


RE: Php Mysql Auslese ohne Schleife - StefanT - 31.08.2013

Ohne deinen Code und die Fehlermeldung kann man leider nur raten. Wink


RE: Php Mysql Auslese ohne Schleife - frostschutz - 31.08.2013

Der Vorschlag von waldo müßte eigentlich genau passen. .= nur innerhalb des eval(), nicht bei der Variable davor.


RE: Php Mysql Auslese ohne Schleife - Falkenauge Mihawk - 01.09.2013

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.