Leere Einträge = Vorlage soll Verschwinden

cris-the-best

Erfahrenes Mitglied
Hallo,

ich weiss noch nicht mal wonach ich bei Google und co suchen soll.
Mein Problem? Ich lese eine MySql Datenbank aus und habe dort Text Datum Titel usw in einer Tabelle drin und je Eintrag 10 Bilder. Wie kann ich es machen das sich die Zeilen nicht mit ausgeben wo nichts drin steht.

So baut sich die Seite soweit korrekt auf nur wenn in der Tabelle nur 2 Bilder angegeben werden hab ich natürlich 8 leichen wie kann ich das verhindern?

Hier ein Auszug aus der Echo Ausgabe:

Code:
 <a href=\"".$ausgabe['bild_01']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_01']."\"><img src=\"".$ausgabe['bild_01']."\" width=\"100\" height=\"30\" alt=\"".$ausgabe['bild_01']."\" /></a>
<a href=\"upload/".$ausgabe['bild_02']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_02']."\">
<a href=\"upload/".$ausgabe['bild_03']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_03']."\">
<a href=\"upload/".$ausgabe['bild_04']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_04']."\">
<a href=\"upload/".$ausgabe['bild_05']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_05']."\">
<a href=\"upload/".$ausgabe['bild_06']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_06']."\">
<a href=\"upload/".$ausgabe['bild_07']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_07']."\">
<a href=\"upload/".$ausgabe['bild_08']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_08']."\">
<a href=\"upload/".$ausgabe['bild_09']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_09']."\">
<a href=\"upload/".$ausgabe['bild_10']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_10']."\">


Danke
 
Ja komme der sache näher habe aber nicht nur das Problem das es sich um eine Datei handeln sonder auch z.b.: um einen Link!

und da ich ein PHP-Plätzchen bin weiss ich nicht im geringsten wie ich diesen script nach der My Sql Abfrage und ins Echo rein packen soll


Code:
<?php
$filename = '/upliad/HIER BILDVARIABLE';

if (file_exists($filename)) {
    print "The file $filename exists";
} else {
    print "The file $filename does not exist";
}
?>



Code:
<?php
	include 'include/config.inc.php'; 
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$sql = "SELECT * FROM marken ORDER BY datum DESC LIMIT 0, 1";
if (!$res_id = mysql_query($sql))
die ('fehler! SQL BEFEHL IST FALSCH.');
while ($ausgabe = mysql_fetch_array($res_id))






{
echo "<a href=\"upload/".$ausgabe['bild_01']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_01']."\"><img src=\"upload/".$ausgabe['bildurl']."\" alt=\"".$ausgabe['projekt']."\" name=\"".$ausgabe['projekt']."\" width=\"213\" height=\"120\" border=\"0\"  /></a>
	<a href=\"upload/".$ausgabe['bild_02']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_02']."\">
	<a href=\"upload/".$ausgabe['bild_03']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_03']."\">
	<a href=\"upload/".$ausgabe['bild_04']."\" rel=\"lightbox[".$ausgabe['projekt']."]\" title=\"".$ausgabe['titel_04']."\">";
  }
?>
 
Hi,

dann prüfe einfach, ob in dem Feld in der Datenbank was steht.

PHP:
if ($ausgabe['bild_01']) {
    echo "[...]";
}



Gruß
 
ok aber dann müsste ich mir 10 Mal den ganzen Text immer wieder Kopiern für bild_1 bild_2 bild_3 usw. kann ich das nicht anders lösen vor allem möchte ich ja den Rest trotzdem ausgeben

Sprich in meiner Tabelle ist drin:
NAME
TITEL
BILD_URL
TEXT
BILD_01
BILD_02
BILDusw.

die Tabelle und alle anderen Faktoren sollen ausgegeben werden nur wenn z.b.: bild_01 bis bild_03 was drin ist soll alles kommen nur nicht die Leeren 7 anderen Bildchen!?
grosse leere in meinem Kopf ich weiss nicht wie
 
ok soweit hab ich nun eine lösung, aber promt das nächte Problem

Code:
...{

if (!empty($ausgabe['bild_02'])) {
   $ajaxbild = ("<a href=\"upload/".$ausgabe['bild_02']."\" rel=\"lightbox[".$ausgabe['titel_01']."]\" title=\"".$ausgabe['titel_02']."\">");
}
else
{
    $ajaxbild = (nichtsda);
}
...

muss ich jetzt echt das 10 mal rein kopieren ich meine kein Problem aber kann man das nicht sauberer lösen mit weniger code.
 
Am besten wäre es, deine Datenbankstruktur zu überdenken. Ansonsten könnte sowas in der Art funktionieren:
PHP:
$anzahl = 10;
for( $i = 1, $i < 10; $i++ )
{
    if( !empty( $ausgabe['bild_'.$i] ) )
    {
        ...
    }
    else
    {
        ...
    }
}
 
Zuletzt bearbeitet:
ja hab ich auch drüber nachgedacht Quasi eine Tabelle mit den Fakten und jeder Eintrag bekommt eine ID und eine Zweite Tabelle mit "ID" "BILDURL" "TITEL"

und dann hätten halt 8 bilder die Gleiche ID wie der eintrag aber wie soll ich das bloss in einer Abfrage auslesen bin ja schon froh das es so soweit funst? ich denke da geht es voll ins eingemacht..
 
Sowas lässt sich über JOINs ganz leicht lösen.
Ein Beispiel wie das aussehen könnte:
PHP:
$SQL = '    SELECT
                `fakten`.`id`,
                `fakten`.`feld1`,
                `fakten`.`feld2`,
                `bilder`.`id`,
                `bilder`.`url`,
                `bilder`.`titel`
            FROM
                `fakten`
            LEFT JOIN
                `bilder`
            ON
            (
                `bilder`.`id` = ' .$id_aus_url_oder_so. '
                AND
                `fakten`.`id` = `bilder`.`id`
            )';
 
Zuletzt bearbeitet:
GENIAL...
hat auch auf anhieb get. Jetzt muss ich nur noch meinen href darum basteln wird noch mal ein akt. Für einen der nicht in joints, escapen und co denkt :)
 
Zurück