2016-03-30 8 views
0

Ich habe ein PHP-Skript, das im Grunde meine Datenbank abfragt und Details zu jedem Geschäft bereitstellt und ein Bild enthält. Der Code zieht das Bild in Ordnung, aber wenn derzeit kein Bild in der Datenbank vorhanden ist, wird stattdessen ein Spacer-Bild eingefügt. Anstatt ein Spacer-Bild zu verwenden, gibt es eine Möglichkeit für mich, eine PHP-if-Anweisung innerhalb des php-Codes zu verwenden, um ein Bild nicht zu rendern, wenn die Datenbank kein Bild enthält? Hier ist der grundlegende Abfragecode:Einfügen von PHP if-Anweisung in PHP-Code?

<?php 
    if(strlen($query) >= $min_length){$query = htmlspecialchars($query); 
    $query = mysql_real_escape_string($query); 
    $raw_results = mysql_query("SELECT * FROM stores WHERE `TRAVEL` = '1' AND `STATE` = '$query'") or die(mysql_error());         
    if(mysql_num_rows($raw_results) > 0){ 
    while($results = mysql_fetch_array($raw_results)){ 

    echo "<table width='150' border='3'> 
    <tbody><tr> 
    <td>".$results['NAME']."<br> 
    <img align='left' src='images/images/".$results['IMAGE']."'> 
    </td> 
    </tr></tbody> 
    </table>";    
    }   
    } else{ echo "No results were found"; 

    }   
    } else{ echo " ".$min_length; } 
?> 

Für die php if-Anweisung, dachte ich etwas in diese Richtung:

<?php if ($results['IMAGE'] != '') { ?> 
<img src='images/icons/".$results['IMAGE']."' height="100" width="auto"> 
<?php }?> 
+1

Bitte beenden Sie mysql Funktionen - Lesen Sie hier http://stackoverflow.com/q/12859942/5006692 – frankle

+1

nicht verwenden 'htmlspecialchars' auf einer MySQL-Abfrage. – naomik

+0

Danke, ich werde entfernen und in die Änderung der MySQL suchen. – jsmith

Antwort

2

Sie sind ziemlich nah. Verwenden Sie einfach einen weiteren <?php ... ?> Block in der img

<?php if ($results['IMAGE'] != '') { ?> 
    <img src='images/icons/<?php echo $results['IMAGE'] ?>' height="100" width="auto"> 
<?php }?> 

können Sie auch die alternative Steuerfluss Syntax. Es liest sich ein wenig schöner als die { und } über mehrere Spanning <?php Tags

<?php if ($results['IMAGE'] != ''): ?> 
    <img src='images/icons/<?php echo $results['IMAGE'] ?>' height="100" width="auto"> 
<?php endif ?> 

Shameless Stecker:

Generierung von HTML mit PHP wird wirklich hässlich. Zumindest meiner Meinung nach. Um den Job etwas netter/einfacher zu machen, habe ich naomik/htmlgen gemacht.

+0

Die heredoc-Syntax funktioniert auch für das Generieren von HTML "okay", wenn Sie keine andere Bibliothek hinzufügen möchten. – honerlawd

+0

Danke, aber es scheint nicht zu funktionieren. Muss ich das In Anführungszeichen setzen oder es ändern, da es sich im anderen PHP-Code befindet? – jsmith

1

einfach wie folgt aus:

if(isset($results['IMAGE'])){ 

    echo "<table width='150' border='3'> 
    <tbody><tr> 
    <td>".$results['NAME']."<br> 
    <img align='left' src='images/images/".$results['IMAGE']."'> 
</td>"; 

} 
+0

Würde dies jedoch nicht die Tabelle posten, wenn ein Bild nicht existiert, möchte ich die Tabelle auch behalten, wenn das Bild nicht in der Tabelle ist. – jsmith