2012-03-28 6 views
0

Ich habe ein Standardbild in der db in der Spalte default_image gesetzt. Wenn das default_image = 1 Ich möchte, dass es das Standardbild anzeigt und wenn default_image = 0 Ich möchte, dass kein Bild verfügbar ist. Wie stelle ich sicher, dass nur das Standardbild angezeigt wird. Hier ist, was ich gerade mache und es zeigt nur jedes Bild an, das dieselbe link_id hat.Standardbild anzeigen

Die Spalte media_link ist die Adresse des Bildes.

Was mache ich, um default_image "1" in der Datenbankanzeige und sonst nichts zu machen? Vielen Dank.

EDIT:
Hier ist ein weiteres Stück Code, um die Bilder alle für diesen link_id zeigen

if ($row['media_link']){ 
echo "<a href='http://localhost/t_images".$row['media_link']."'><img src='http://localhost/images".$row['media_link']."' /></a>"; 
} 
else{ 
    echo "<div align=\"center\">No images available</div>"; 
} 
} 

es 6 Bilder für diesen Strom id ist
Wenn ich Echo der vardump auf dieser Seite das richtige Bild hat diese
string (1) "1"
während die anderen 5 Bilder "non default"
diese Zeichenfolge zeigen (1) "0"
ich bin nicht sicher, wie nur die richtige zu zeigen, Standardbild, wo es auf der Seite in meinem ersten Code geht. Hilft diese Info überhaupt?

EDIT AGAIN/FIXED:
Ich habe es behoben, indem ich ORDER BY default_image DESC am Ende meiner Abfrage hinzugefügt habe. Ich weiß nicht, ob das das Beste ist, aber wenn jemand andere Vorschläge hat, würde ich mich freuen, sie zu hören. Danke allen für eure Hilfe. Sie haben alle gute Antworten gegeben, aber am Ende habe ich einfach die Anweisung per Anweisung zu meiner Anfrage hinzugefügt und es funktioniert so, also bin ich glücklich. Danke!

+0

Wenn Sie '$ row ['default_image'] aussprechen, was gibt es Ihnen? Oder besser, verwenden Sie 'vardump()', um auch seinen Typ zu erhalten. –

+0

Stellen Sie sicher, dass $ row ['default_image'] die Nummer 0 und nicht die Zeichenfolge "0" ist. –

+0

var_dump geben Sie mir diese Zeichenfolge (1) "0" – chris

Antwort

1

Überprüfen Sie Default_image gegen 1 statt leer.
Versuch: ..

<?php 
if(isset($row['default_image']) && $row['default_image'] == 1){ 
echo "<a href='http://localhost/images".$row['media_link']."'><img src='http://localhost/images".$row['media_link']."'/></a>"; 
}else{ 
    echo "<div align=\"center\">No image available</div>"; 
} 
?> 
1

try this ...

<?php if (!empty($row['default_image']) && $row['default_image'] == 1){ 
     echo "<a href='http://localhost/images".$row['media_link']."'> 
       <img src='http://localhost/images".$row['media_link']."'/></a>"; 
     } 
     else{ 
     echo "<div align=\"center\">No image available</div>"; 
     }?> 
+0

Ich bekomme mit diesen beiden Antworten kein Bild zur Verfügung. – chris

+0

eine Sache schreiben schreiben echo var_dump ($ row ['default_image']); genau zu wissen, was in dieser var und Schreibbedingung entsprechend kommt. Wenn $ row ['default_image'] eine Zeichenkette ist, müssen Sie eine Bedingung wie diese schreiben $ row ['default_image'] == "1". –

+0

string (1) "0" ist in var_dump – chris

2

In Ihrer Situation ist $row['default_image'] ein String. Natürlich ist PHP keine stark typisierte Sprache, aber es muss immer noch herausfinden, was Sie meinen. In Ihrem Beispiel erwarten Sie Folgendes:

was nicht passiert. Die leere Zeichenfolge "" ist leer, die Nummer 0 ist leer, aber die Zeichenfolge "0" ist nicht. Stattdessen könnten Sie entweder:

$row['default_image'] !== "0" 
    // Uses strict comparison, which might not be what you expect 
0+$row['default_image'] != 0 
    // Uses casting, which might fail if the string doesn't contain a number 
$row['default_image'] != "0" || !empty(0+$row['default_image']) 
    // Uses short-circuiting, and should cover all (most) cases 

Es gibt andere Varianten. Ich bin mir nicht sicher, was ich zwischen ihnen wählen würde: Es kommt darauf an, was du genau meinst.

+0

Das funktioniert auch nicht Ich fange an zu denken, dass mein Problem woanders ist. – chris

+0

Ich vermute, vielleicht weiß es nicht, welches Bild zu verwenden ist, es gibt mehrere Bilder, aber nur eine von jeder Galerie hat default_image auf 1 gesetzt und das ist diejenige, die gezeigt werden muss. – chris

+0

Welche funktioniert nicht? Ich habe ein paar Änderungen an 2 und 3 wegen Nachhintern gemacht, haben sie geholfen? –

Verwandte Themen