Uuuu, ale konkretów. To może i ja pokomentuję:
CREATE TABLE `tutoriale` (
`tut_id` int UNSIGNED NOT NULL AUTO_INCREMENT, // fakt, jakoś mi się 11 dopisało, sam nie wiem skąd :|
`tut_nr` smallint(4) UNSIGNED ZEROFILL NOT NULL, // chcę mieć liczbę 4-cyfrową
`tut_tytul` varchar(255) DEFAULT NULL,
`tut_data` timestamp DEFAULT NULL, // miałem int(10), bo mam jakieś problemy z przetwarzaniem daty
`tut_autor` text , //CZEMU TU MASZ TEXT ? - tu ma BYć nick, imię autora artykułu
`tut_zrodlo` text //CZEMU TU MASZ TEXT ?, - tu ma BYć adres (www) do źródła
`tut_tresc` longtext ,
`tut_kat_id` int UNSIGNED DEFAULT NULL, // tu takie same jaja, nie wiem skąd TO 11...
`tut_stan` tinyint NOT NULL DEFAULT 0, // poprawię - mam rozumieć, że kod php pozostanie ten sam?
`tut_obraz` varchar(20) NOT NULL, // link do obrazka... (img/00/00/obrazek.jpg)
`tut_psd` tinyint NOT NULL DEFAULT 0,
`tut_notatki` text ,
`tut_moderator` text NOT NULL, //CZEMU TU MASZ TEXT ? - hmmm, TO ma BYć nick dodającego
`tut_ktoed` smallint UNSIGNED NOT NULL, // ID edytującego
`tut_czased` timestamp UNSIGNED NOT NULL, // tu zapisuję czas, w jakim można edytować artykuł (czas z przyszłości)
`tut_czytano` mediumint UNSIGNED DEFAULT 0, //CZEMU TU MASZ mediumint ? Nie powinny byc tinyint? nie wiem co tam bedziesz trzymal. - tu ma BYć licznik, ile razy czytano dany artykuł
`tut_zezw_koment` tinyint NOT NULL DEFAULT 0, // czy zezwolić na komentowanie
`tut_zezw_ocenic` tinyint NOT NULL DEFAULT 0,// czy zezwolić na ocenianie
PRIMARY KEY (`tut_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
- jak coś jest datą, to pole ma być typu datowego (DATE,TIME,DATETIME, TIMESTAMP) a nie intJak już pisałem, miałem problemy w przetwarzaniem daty i teraz zapisuję to po prostu tak:
To samo z czasem edycji:
if ($czased == '') {
$czased = time() + 172800; } else {
$czased = $_POST['czased'];
}
A potem:
'.showdate('Y m.j', $dane['tut_data']).'
Funkcja (szczerze mówiąc, "kwietnia" przekłamuje:
// Format polskiej daty i godziny
function showdate($format,$timestamp=null){
'l'=>array('dat'=>'N','str'=>array('Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota','Niedziela')),
'F'=>array('dat'=>'n','str'=>array('styczeń','luty','marzec','kwiecień','maj','czerwiec','lipiec','sierpień','wrzesień','październik','listopad','grudzień')),
'f'=>array('dat'=>'n','str'=>array('stycznia','lutego','marca','kwietnia','maja','czerwca','lipca','sierpnia','września','października','listopada','grudnia'))
);
if ($pieces = split('[:/.\ \-]', $format)){ if ($timestamp === null) { $timestamp = time(); } foreach ($pieces as $datepart){
$replace[] = $to_convert[$datepart]['str'][(date($to_convert[$datepart]['dat'],$timestamp)-1
)]; }else{
$replace[] = date($datepart,$timestamp); }
}
return $result;
}
}
- jak liczba nie jest ZEROFILL to podawanie np. int(11) niczemu nie służy. samo int wystarczyNo to łapię...
- jak coś jest auto_increment, i to coś jest też unikalne, to znaczy ze to jest klucz głowny. rób więc z tego klucz głównyTego nie łapię - myślałem, że właśnie to wykorzystuję...
- jak coś ma przyjmowac małe liczby, to rób z tego tinyintCzyli na ID kategorii lub ID_kto_edytuje się nada - ja miałem smallint...
- jak coś jest liczbą to masz tam wkładać liczbę a nie tekst.
czyli nie '0', '1' ...
a: 0, 1 ...- nie rób enum z wartosci liczbowych. to sie mija z celem. Jak chcesz robic to rób z wartości tekstowych, wtedy ma to sens.W sumie, mógłbym się pokusić o trzymanie w ENUM, wystarczyło by zmienić co nieco w formularzu, bo teraz mam:
<input type="radio" name="stan" value="0" checked="checked" /> <input type="radio" name="stan" value="1" />
- mogłbys się pokusic o typ INNOD_DB zamiast MyIsam - móglbys robić wówczas relacje. No ale to narazie zostawmyTak, żart się udał
- twórz indexy na polach, które będą brały udział np. w wyszukiwaniachTematu wogóle nie łapię, mam co prawda wyszukiwarkę spłodzoną, ale wzorowałem się na php-fusion...
- jesli pole będzie miało tylko dodatnie liczby, dodawaj UNSIGNEDTo już wiedziałem, ale mogłem przeoczyć.
I na koniec:
ps: czyzbyś był starszy ode mnie? eee, nie
Wiek: Kobiet i nospora o wiek się nie pyta
Ale swoje lata już mam. 
Serio??