Do tej pory MySql sluzyla mi do przechowywana malej ilosci danych. Dzisiaj jednak staje przed problemem przechowywaniu wartosci z checkboxow i pol typu tera. Moje pierwsze pytanie tyczy sie przechowywania wartosci z chcecboxow bo wydaje mi sie ze moje rozwiazanie nie jest odpowiednie. Mam okolo 150 checkboxow a w bazie do kazdego z nich inny rekord ktory przyjmuje wartosc 0/1 udalo mi sie jakos w zwiezly sposob przy pomocy tablic wywalac wartosci na strone z posta. Problem pojawia sie w chwili kiedy musze stworzyc na podstawie danych z bazy tablice (funkcja wstawiajaca checkboxy przyjmuje w argumencie tablice podobna do tej posta). W praktyce sprowadza sie to do postawienia 150 blokow if ktore na podstawie danych z bazy wyrokuja o tym czy dodac wpis do tablicy czy nie. Moim drogim problemem w gruncie rzeczy nie sa bazy a operacje na ciagach. Chcialbym sie dowiedziec w jaki sposob moge badac dlugie ciagi tak zeby wiedziec czy wystepuja tam adresy poczty elektronicznej, linki itp. Nie stanowi dla mnie problemu zbadanie poprawnosci pojedynczego pola imput sek w tym ze nie wiem jakich technik powinienem uzyc do badania tera. Kolejna kwestia jest taka ze w ksiazkach jakie mam sugeruje sie stosowanie addslashes() oraz stripslashes() na tym forum jednak daje sie znalezc inne rozwiazanie tj mysql_escape_string(). Uzycie tej drugiej jest na pewno wygodniejsze zastanawiajace jednak jest to jak sie to ma do bezpieczenstwa. Pytam bo zagadnienie to jest dla mnie jakas wyrafinowana teoria osobiscie nie udalo mi sie zainfekowac bazy dokonujacej wpisy bez uzycia funkcji a już tym bardziej z funkcja. Stosuje wiec raczej wyrazenia regularne i na mysl o tera ogarnia mnie przerazenia. Ostatnia kwestia tyczy wlasnie wyrazen regularnych, probowalem napisac wyrazenie regularne ktore dopuszczaloby uzycie polskich znakow specjalnych jak sie domyslacie moje proby zakonczyly sie fiaskiem i w zwiazku z tym chcialbym sie dowiedziec czy istnieje taka mozliwosc.
Funkcja przyjmuje dwie tablice tj $pramatery i $db, $parametry to tablica ktora zawiera wartosci wszystkich checkboxow a $db to tablica ktora zawiera wartosci checkboxow ktore maja byc zaznaczony.
<?php
function checkbox_form($name,$parametry,$db,$kolumny) {
$output = "<tr>";
$x = 1;
$linia = 0;
while(list
($k,$v) = each($parametry['list'])){ $wynik = $x/$kolumny;
if ($linia == 1) {
$output .= "<tr>";
$linia = 0;
}
$output .= "<td class="tdCheck"> <input checked="check" name="".$name."[]" id="$v" type="checkbox" value="$v"/><label for="$v">$v</label></td>";
} else {
$output .= "<td class="tdCheck"> <input name="".$name."[]" id="$v" type="checkbox" value="$v"/><label for="$v">$v</label></td>";
}
} else {
$output .= "<td class="tdCheck"> <input checked="check" name="".$name."[]" id="$v" type="checkbox" value="$v"/><label for="$v">$v</label></td>";
} else {
$output .= "<td class="tdCheck"> <input name="".$name."[]" id="$v" type="checkbox" value="$v"/><label for="$v">$v</label></td>";
}
$linia = 1;
$output .= "</tr>";
}
$x = $x + 1;
}
return ("<table border="0" cellpadding="0" cellspacing="0" width="100%"> $output </table>");
}
?>
Jak zgrabnie wyprowadzic dane z bazy do postaci tablicy?
Za pomoc i zainteresowanie z gory dziękuje i pozdrawiam.