godfather_al
Mitglied
Hallo zusammen,
möchte gerne mit PHP und MySQL aus einer DB nur die Felder (jeweils Überschrift und Inhalt) untereinander anzeigen lassen, die auch belegt sind. Derzeit ist es leider so, dass auch leere Felder "angezeigt" werden, und sich dadurch der Content, der darunter kommt, nach unten verschiebt, und es entsteht ein sehr unschöner Leerraum, das möchte ich vermeiden.
Habe in einem ähnlichen Fall mit einer IF - Abfrage eine Lösung gebastelt (s. zweiter Codeblock), das erscheint mir hier aber zu aufwändig und zu langsam, kann mir jemand einen Tip geben wir man so etwas "elegant und performant" lösen kann?
Vielen Dank für Eure Hilfe.
Hier der Code:
Habe in einem anderen Fall zwar eine Lösung gefunden, die ist mir aber wie erwähnt an der o. g. Stelle zu aufwendig und zu langsam, hier nur die "andere" Lösung mal als Hintergrundinfo:
möchte gerne mit PHP und MySQL aus einer DB nur die Felder (jeweils Überschrift und Inhalt) untereinander anzeigen lassen, die auch belegt sind. Derzeit ist es leider so, dass auch leere Felder "angezeigt" werden, und sich dadurch der Content, der darunter kommt, nach unten verschiebt, und es entsteht ein sehr unschöner Leerraum, das möchte ich vermeiden.
Habe in einem ähnlichen Fall mit einer IF - Abfrage eine Lösung gebastelt (s. zweiter Codeblock), das erscheint mir hier aber zu aufwändig und zu langsam, kann mir jemand einen Tip geben wir man so etwas "elegant und performant" lösen kann?
Vielen Dank für Eure Hilfe.
Hier der Code:
PHP:
$sql = "SELECT * FROM portal_pages WHERE pageid = \"{$_GET["id"]}\"";
$res = mysql_query($sql) or die (mysql_error());
while ($row = mysql_fetch_assoc($res)) echo "
<h1>
{$row["content1headline"]}
</h1>
<p>
{$row["content1content"]}
</p>
<h2>
{$row["content2headline"]}
</h2>
<p>
{$row["content2content"]}
</p>
<h2>
{$row["content3headline"]}
</h2>
<p>
{$row["content3content"]}
</p>
<h2>
{$row["content4headline"]}
</h2>
<p>
{$row["content4content"]}
</p>
<h2>
{$row["content5headline"]}
</h2>
<p>
{$row["content5content"]}
</p>
<h2>
{$row["content6headline"]}
</h2>
<p>
{$row["content6content"]}
</p>
<h2>
{$row["content7headline"]}
</h2>
<p>
{$row["content7content"]}
</p>
<h2>
{$row["content8headline"]}
</h2>
<p>
{$row["content8content"]}
</p>
<h2>
{$row["content9headline"]}
</h2>
<p>
{$row["content9content"]}
</p>
<h2>
{$row["content10headline"]}
</h2>
<p>
{$row["content10content"]}
</p>
";
Habe in einem anderen Fall zwar eine Lösung gefunden, die ist mir aber wie erwähnt an der o. g. Stelle zu aufwendig und zu langsam, hier nur die "andere" Lösung mal als Hintergrundinfo:
PHP:
<?php
session_start();
include 'config.inc.php';
$sql = "SELECT margin1headline FROM portal_pages WHERE pageid = \"{$_GET["id"]}\" AND LENGTH(margin1headline) > 0";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) != 0) {
echo "<div id='margincontainer'><div id='margin1head'>";
while ($row = mysql_fetch_assoc($res)) echo "
<p>{$row["margin1headline"]}</p></div>";
mysql_free_result($res);
}
?>
<?php
include 'config.inc.php';
$sql = "SELECT margin1content FROM portal_pages WHERE pageid = \"{$_GET["id"]}\" AND LENGTH(margin1content) > 0";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) != 0) {
echo "<div id='margin1box'>";
while ($row = mysql_fetch_assoc($res)) echo "
<p>{$row["margin1content"]}</p></div>";
mysql_free_result($res);
}
$sql = "SELECT margin2headline FROM portal_pages WHERE pageid = \"{$_GET["id"]}\" AND LENGTH(margin2headline) > 0";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) != 0) {
echo "<div id='margin2head'>";
while ($row = mysql_fetch_assoc($res)) echo "
<p>{$row["margin2headline"]}</p></div>";
mysql_free_result($res);
}
?>
<?php
include 'config.inc.php';
$sql = "SELECT margin2content FROM portal_pages WHERE pageid = \"{$_GET["id"]}\" AND LENGTH(margin2content) > 0";
$res = mysql_query($sql) or die (mysql_error());
if (mysql_num_rows($res) != 0) {
echo "<div id='margin2box'>";
while ($row = mysql_fetch_assoc($res)) echo "
<p>{$row["margin2content"]}</p></div>";
mysql_free_result($res);
}
echo "</div>";
?>