[php] dynamiczne tworzenie pól dla danego rekordu (?)

0

Witam. Trochę ten temat zagmatwany bo ciężko opisać mój problem w kilku słowach. :-|

Bardzo podobną zasadę spotkać można w IPB czy PhpBB. Dotyczy ona pól w profilu typu "twój sprzęt", "dysk twardy", rzecz dla mnie jest o tyle dziwna, że każdy z userów ma możliwość edytowania tego pola. Lecz nie wiem na jakiej zasadzie to działa, w końcu dodanie nowego pola w tabeli - imo mija się z celem. Oblukanie kodu phpbb chyba jest trochę hardkorowym rozwiązaniem, więc proszę Was o pomoc.

Pzdr.

Edit: <ort> :| </ort>

0

Na 99% są dodawane nowe pola w tabeli.. dlaczego miałoby się to mijać z celem?

0

Hmm... Na zasadzie, że user może dodawać nowe właściwości? Jak tak, to chyba najprościej jakieś jedno pole TEXT z odpowiednimi separatorami i problem z głowy.

0

http://www.przemo.org/phpBB2/forum/viewtopic.php?t=3147

Gdy admin doda jakieś pole, tworzy się tabela phpbb_custom_fields, oraz tabela phpbb_users rozszerza się o kolejne kolumny user_field_numer oraz user_allow_field_numer.

Dobra już wszystko jasne, pzdr. ;]

0

Ja zawsze w takim wypadku używam tabeli i serialize(), taki mały przykład z ostatniego serwisu:

	$dane['ulica']=$_POST['ulica'];
	$dane['miasto']=$_POST['miasto'];
	$dane['kod_pocztowy']=$_POST['kod1'].'-'.$_POST['kod2'];
	$dane['tel_fax']=$_POST['tel_fax'];
	$dane['tel1']=$_POST['tel1'];
	$dane['tel2']=$_POST['tel2'];
	$dane['tel3']=$_POST['tel3'];
	$dane['fax']=$_POST['fax'];
	$dane['tel_kom']=$_POST['tel_kom'];
	$dane['nip']=$_POST['nip'];
	$dane['wojewodztwo']=$_POST['w'];
	$dane['imie']=$_POST['imie'];
	$dana=serialize($dane);
	if(substr($_POST['www'],0,7)!='http://') {
		$strona='http://'.$_POST['www'];
	} else {
		$strona=$_POST['www'];
	}
	if($_GET['rodz']==0){
	$zapytanie="INSERT INTO ".BAZA_PREFIKS."wizyt (nazwa, dane, www, email, branza, opis) VALUES('".$_POST['nazwa']."', '".$dana."','".$strona."','".$_POST['email']."',".$_POST['branza'].",'".$_POST['opis']."')";

Z tym rozwiązaniem nawet przeszukiwanie bazy nie jest za ciężkie ;) A chodziło o to, że klient do ostatniego momentu nie wiedział jakie dane rejestranta chce mieć :/

0
b4rtaz napisał(a)

Gdy admin doda jakieś pole, tworzy się tabela phpbb_custom_fields, oraz tabela phpbb_users rozszerza się o kolejne kolumny user_field_numer oraz user_allow_field_numer.

A, no to zmienia postać rzeczy - pole jest dodawane przez admina, więc wszyscy userzy mają takie same pola. Wówczas nawet dodawanie pól w bazie nie stanowi problemu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1