<?php
mysql_connect("localhost", "db_user", "db_password")or
die("Nie można nawiązać połączenia z bazą"); //połączenie z bazą danych
// rozdzielamy logike od wygladu, najpierw zapytanie, przy okazji przechodzimy na
ang
// zastanów się czy potrzebujesz wszystkich wartości, wyciagne 2, w razie czego wr
ócisz do *
$query = "SELECT my_keys,my_values FROM db_table LIMIT 0, 10";
// zastanów się, czy warto informować usera o błędnym zapytaniu, to pomoże włamywa
czom a Ty możesz obsługiwać błędy inaczej
// poza tym błąd formularza nie musi nam kłaść całej strony
// przepiszemy wynik do tablicy
$fields[$name]=$value;
}
// poniższą linie można usunąć jeżeli to mały formularz
// zaczynamy generować wynikowy html
$output = "<form method=\"POST\">";
$output .= "<table cellpadding=\"3\" cellspacing=\"0\">";
foreach ($fields as $name => $value) {
// podświetlanie co drugiego rzędu
$even_odd = ( '-odd' != $even_odd ) ? '-odd' : '-even';
$output .= "<tr class=\"hilite".$even_odd."\">";
$output .= "<td>";
$output .= "<label for=\"$name\">$value</label><input type=\"text\" name=\"$name\" size=\"40\" maxlength=\"\" value=\"$value\"/>";
$output .= "</td>";
$output .= "</tr>";
}
$output .= "<tr class=\"footer\"><td><input type=\"submit\" value=\"Zapisz zmiany\"></td></tr>";
$output .= "</table>";
$output .= "</form>";
} else {
echo "Formularz niedostępny"; }
// zapis danych, korzystamy z używanej wcześniej tablicy $fields
foreach ($fields as $key => $value) {
// uwzględniamy nieszczęsne kropki
// leniwy update - nie ruszamy nie zmienionych pól
if (isset($_POST[$key_posted]) && $_POST[$key_posted]!=$value) { // tutaj KONIECZNIE filtrujemy dane od usera, poza htmlspecialchars możesz użyć wł
asnych dodatkowych filtrów
$query = "UPDATE db_table SET my_values='$value_new' WHERE my_keys='$key'";
echo "Zmieniłeś $value na $value_new <br/>"; } else {
echo "Nie dokonano zmian w bazie"; }
} else {
echo "Nie dokonano zmian w formularzu"; } // if
} // foreach
?>
zamiast dwóch komórek tablei stosuje labelki i koloruje co drugi rządek, poniżej style css
label {width: 300px;}
tr.hilite-even {background-color: #f0f0f0;}
tr.hilite-odd {background: #fafafa;}