2012-04-10 11 views
0

Ich bin neu in PHP und versuche, genug zu lernen, um einige grundlegende Funktionen zu tun. Ich war in der Lage, eine Tabelle für meine Benutzer zu erstellen, um sich selbst zu bearbeiten und neu anzuzeigen, aber ich bin auf eine Frage gestoßen. Mithilfe des folgenden Skripts können Benutzer ihre Fähigkeiten für verschiedene Produkte eingeben. Ich wollte in der Lage sein, jede Zelle hervorzuheben, in der sie "0" oder leer eingeben. Die Benutzereingabe liegt zwischen 0-5 (oder leer, wenn sie noch nicht ausgefüllt wurden).Hintergrundfarbe von Zellen basierend auf MySQL-Abfrage-Ausgabe setzen

Dies ist alles auf meinem localhost getan, also gebe ich alle Sicherheitsmaßnahmen sind nicht ganz da.

Ich habe viele Beiträge gelesen und versucht, es selbst herauszufinden, aber ich mache etwas grundsätzlich falsch, glaube ich.

Jede Hilfe zu diesem Thema würde sehr geschätzt werden. Ich habe ein Bier kaufen bekannt (via Paypal) für diejenigen, die mir helfen, mit Codierung :)

Hier ist mein vorhandener Code zum Ausdrucken der Ergebnisse der Datenbank:

<?php 
//This will connect to the database in order to begin this page 
mysql_connect("localhost", "root", "time2start") or die (mysql_error()); 
//Now we will select the database we need to talk to 
mysql_select_db("joomla_dev_15") or die (mysql_error()); 
$query = "SELECT * FROM enterprise_storage WHERE id=1"; 
$result = mysql_query($query) or die (mysql_error()); 
echo "<table border='1'>"; 
echo "$row"; 
echo "<tr> <th>Product</th> <th>Wayne Beeg</th> <th>Paul Hamke</th> <th>Steve Jaczyk</th>  <th>David Jontow</th> <th>Ed MacDonald</th> <th>Michael Munozcano</th> <th>Ron Shaffer</th> <th>Luke Soares</th> <th>Josh Wenger</th> </tr>"; 
// keeps getting the next row until there are no more to get 
while($row = mysql_fetch_array($result)) { 
// Print out the contents of each row into a table 
echo "<tr><td>"; 
echo $row['model']; 
echo "</td><td>"; 
echo $row['beeg']; 
echo "</td><td>"; 
echo $row['hamke']; 
echo "</td><td>"; 
echo $row['jaczyk']; 
echo "</td><td>"; 
echo $row['jontow']; 
echo "</td><td>"; 
echo $row['macdonald']; 
echo "</td><td>"; 
echo $row['munozcano']; 
echo "</td><td>"; 
echo $row['shaffer']; 
echo "</td><td>"; 
echo $row['soares']; 
echo "</td><td>"; 
echo $row['wenger']; 
echo "</td></tr>"; 
} 
echo "</table>"; 
?> 
<FORM> 
<INPUT TYPE="BUTTON" VALUE="Return to the Home Page"  ONCLICK="window.location.href='http://localhost/~user/joomla15/custom/skilldisplay.php'"> 
</FORM> 

Antwort

1

Vielleicht

while($row = mysql_fetch_array($result)) { 
// Print out the contents of each row into a table 
echo "<tr>"; 
foreach($row as $content) { 
    if($content == 0) { 
     echo "<td style='background-color:gray;'>"; 
    } 
    else { 
     echo "<td style='background-color:green;'>"; 
    } 
    echo $content . "</td>"; 
} 
echo $row['wenger']; 
echo "</td>"; 
} 
echo "</tr></table>"; 
+0

Dieses entweder nicht funktioniert hat. Ich klebte genau so, wie du es hier angegeben hast. Die Seite wird nach dem Speichern nicht geladen. (Ich habe auch "grau" in "rot" geändert) – user1267673

+0

was ist der Fehler? – Dion

+0

sollte das "Hintergrundfarbe" sein? 'color' steuert die Farbe des Textes, nicht die Zelle. – octern

0

versucht so etwas wie diese

dies zu Ihrem generierten Dokument hinzufügen

<style type="text/css"> 
    .red{ background-color: red; } 
</style> 

Das ist Ihre PHP:

<?php 
// sanitize value 
$value = trim($row['model']); 
$class = (empty($value)) ? 'red' : ''; 

// display 
echo "<td class=\"$class\">$value</td>"; 
... 
?> 
+0

Leider hat das nicht funktioniert. Ich habe es an die Zeile $ row [hamke] angepasst, die definitiv eine "0" enthält, aber es hat die Farben nicht geändert. Danke für den Versuch! – user1267673

+0

Sie machen etwas falsch oder missverstehen Ihre Daten. 'empty (0)' und 'empty ('0')' werden als false ausgewertet, es sei denn, Sie haben andere Leerzeichen oder Sonderzeichen. Siehe aktualisierten Beitrag oben, ich vereinfachte Dinge und fügte den Daten trim. – Alex

0

Ok, so schaffte ich es endlich zum Laufen zu bringen. Die beiden obigen Antworten haben mir geholfen, den richtigen Ansatz dafür zu finden.

Natürlich ist mein Ansatz nicht die beste Methode, aber ich habe es getestet und es funktioniert für meine Bedürfnisse. Für zukünftige Forscher, hier ist was ich getan habe:

<?php 
    //This will connect to the database in order to begin this page 
    mysql_connect("localhost", "root", "time2start") or die (mysql_error()); 
    //Now we will select the database we need to talk to 
    mysql_select_db("joomla_dev_15") or die (mysql_error()); 
    $query = "SELECT * FROM enterprise_storage"; 
    $result = mysql_query($query) or die (mysql_error()); 
    echo "<table border='1'>"; 
    echo "$row"; 
    echo "<tr> <th>Product</th> <th>Wayne Beeg</th> <th>Paul Hamke</th> <th>Steve Jaczyk</th> <th>David Jontow</th> <th>Ed MacDonald</th> <th>Michael Munozcano</th> <th>Ron Shaffer</th> <th><a href='http://localhost/~user/joomla15/custom/updateform.php'>Luke Soares</a></th> <th>Josh Wenger</th> </tr>"; 
    // keeps getting the next row until there are no more to get 
    while($row = mysql_fetch_array($result)) { 
// Print out the contents of each row into a table 
echo "<tr><td>"; 
echo $row['model']; 
echo "</td>"; 
if ($row['beeg'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['beeg'] ; 
}else{ 
    echo '<td>' .$row['beeg']; 
} 
echo "</td>"; 
if ($row['hamke'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['hamke'] ; 
}else{ 
    echo '<td>' .$row['hamke']; 
} 
echo "</td>"; 
if ($row['jaczyk'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['jaczyk'] ; 
}else{ 
    echo '<td>' .$row['jaczyk']; 
} 
echo "</td>"; 
if ($row['jontow'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['jontow'] ; 
}else{ 
    echo '<td>' .$row['jontow']; 
} 
echo "</td>"; 
if ($row['macdonald'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['macdonald'] ; 
}else{ 
    echo '<td>' .$row['macdonald']; 
} 
echo "</td>"; 
if ($row['munozcano'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['munozcano'] ; 
}else{ 
    echo '<td>' .$row['munozcano']; 
} 
echo "</td>"; 
if ($row['shaffer'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['shaffer'] ; 
}else{ 
    echo '<td>' .$row['shaffer']; 
} 
echo "</td>"; 
if ($row['soares'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['soares'] ; 
}else{ 
    echo '<td>' .$row['soares']; 
} 
echo "</td>"; 
if ($row['wenger'] == '0'){ 
    echo '<td bgcolor="#FF0000">' . $row['wenger'] ; 
}else{ 
    echo '<td>' .$row['wenger']; 
} 
echo "</td></tr>"; 

} echo "";

?>

Verwandte Themen