Modifikacijų kūrimas, formos, lentelės instaliavimas
Parašė bruzgis 2008 gruodžio 16 22:12:55
[center][color=green][b]Taigi pradėsim nuo duomenų bazės lentelės instaliavimo.[/b] [/color][/center]
Žinoma, tai galima žymiai paprasčiau padaryti:
[b]1)[/b] Tiesiog prisijungus prie phpmyadmin ir ten skiltyje mysql įrašyti norimą kodą
[b]2)[/b] Prie visų lentelių pačioje apačioje yra skiltis "[u]Create new table[/u]" ten įrašote "prefixas_pavadinimas", pasirenkate kiek jums reikės laukelių (id, name, link, url, count ir t.t.) ir spaudžiat go, tada jau visa info susirašot, žinoma galima ir vėliau pridėti tų laukelių, bet apie tai kitą kart.
[b]3)[/b] Na šis būdas jau su failais. Naudojamas dažnai modifikacijų instaliavimui.

Pirmiausia susikuriam failą, pvz pavadinimu [color=red][b]install.php[/b][/color] (būtinai formato *.PHP)

Toliau įkopijuojame tokį turinį:

[code]<?php
/*---------------------------------------------------+
| Sukurė chipass
| El.paštas: chipass@gmail.com
| www.e-studija.lt Internetinių svetainių kūrimas
+----------------------------------------------------*/
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";

//generuojam pranesima apie ivykusia užklausą:
if(isset($status)) {
if($status == 'irasyta') {
opentable('Duomenų bazės instaliavimas');
echo "<center>Lentelės sėkmingai sukurtos</center>";
closetable();
} elseif($status == 'klaida') {
opentable('Duomenų bazės instaliavimas');
echo "<center>Lentelės nesukurtos, įvyko klaida.</center>";
closetable();}
}
//jeigu uzklausa dar nebuvo vykodoma, tai vykdom
else {
//cia visa informacija lenteles, kuria jums reikia patiems pakeisti pagal norima instaliavima lenteles strukturos
$result = dbquery("CREATE TABLE ".$db_prefix."lenteles_pavadinimas (
`1 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL ,
`2 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL ,
`3 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL ,
`4 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL
);");
//cia generuojame redirekta, kuris ivyks ivykus uzklausai
//jeigu uzklausa sekmingai ivykdyta"
if($result) { redirect(FUSION_SELF."?status=irasyta"); }
//jeigu uzklausa neivykdyta:
else { redirect(FUSION_SELF."?status=klaida"); }
}
require_once "side_right.php";
require_once "footer.php";
?>[/code]

Čia prašom skaityti komentarus, ir suprasit.

Papildoma informacija:

[b](M)[/b] Skaičius

Laukelio pasirinktys (tiksliau nurodoma ar į jį bus įrašomas skaičius ar tekstas bei visų šitų ilgiai)
[b]TINYINT[(M)] [/b]
[i]Labai mažas sveikasis: su ženklu – nuo -128 iki 127; be ženklo – nuo 0 iki 255.[/i]

[b]SMALLINT[(M)] [/b]
[i]Mažas sveikasis: su ženklu – nuo -32768 iki 32767; be ženklo – nuo 0 iki 65535.[/i]

[b]MEDIUMINT[(M)][/b]
[i]Vidutinio dydžio sveikasis: su ženklu – nuo -8388608 iki 8388607; be ženklo – nuo 0 iki
16777215.[/i]

[b]INT[(M)][/b]
[i]Normalaus dydžio sveikasis: su ženklu – nuo -2147483648 iki 2147483647; be ženklo – nuo
0 iki 4294967295.[/i]

[b]INTEGER[(M)] [/b]
[i]Tai yra INT sinonimas.[/i]

[b]BIGINT[(M)] [/b]
[i]Didelis sveikasis: su ženklu – nuo -9223372036854775808 iki 9223372036854775807; be
ženklo – nuo 0 iki 18446744073709551615.[/i]

[b]CHAR(M)[/b]
[i]Fiksuoto ilgio eilutė, įrašant glaudžiama prie dešiniojo krašto. M = 1-255. CHAR rikiuojamos ir
palyginamos nepaisant registro.[/i]

[b]TEXT[/b]
[i]Ilgam tekstui[/i]

bei kiti, kuriuos tingiu rašyt.
Šitie visi rašomi ten kur pažymėjau raudonai.


Toliau, dažnai žmonėms prireikia kad id generuotų automatiškai, ta prasme vis vienu vienetu didesnį (taip kaip yra pvz vartotojo id), tai taip galima padaryti laukeliui nustačius auto_increment, kode atrodytų taip:

[b]`id` INT( 10 ) NOT NULL AUTO_INCREMENT[/b]

nu ir visas kodas:

$result = dbquery("CREATE TABLE ".$db_prefix."lenteles_pavadinimas (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT,
`2 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL ,
`3 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL ,
`4 laukelis` [color=red]VARCHAR( 255 )[/color] NOT NULL
);");



[center][color=green][b]Sekanti kaip ir pamoka, formos kūrimas.[/b][/color][/center]


Susikurkime failą, pvz pavadinimu kaledos.php ir jame toki turini:

[code]<?php
/*---------------------------------------------------+
|Sukure chipass
|chipass@gmail.com
|www.e-studija.lt Internetinių svetainių kūrimas
+----------------------------------------------------*/
require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";
//jeigu jau gavom atsakyma is scripto apie duomenu irasyma, tai juos ir atvaizduokim.
if(isset($status) && $status == 'pateikta') {
opentable('Jusu aprasymas sekmingai pridetas');
echo "Sveikiname, jus sekmingai uzsiregistravote kalediniame zaidime. Aciu jums uz informacija<br><br>";
echo "<center><a href='".BASEDIR."'>Grįžti į pagrindinį</a> | <a href='".FUSION_SELF."'>Grįžti į skripto pradžią</a></center>";
closetable();
}
elseif($status == 'atmesta') {
//cia info jeigu neirase....
}



//jeigu duomenu nepostinom irasymui i db, tuomet atvaizduojame formą:
if(!isset($_POST['pateikti']) && !isset($status)) {
opentable('Kažkoks pavadinimas formos');
echo "
<form method='POST' action='".FUSION_SELF."'>
<table border='0' cellspacing='1' width='100%' class='tbl-border'>
<tr>
<td width='50%'>
<p align='right'>Vartotojas:</td>
<td width='50%'>
<input type='text' name='vardas' style='width:250px;' size='20'></td>
</tr>
<tr>
<td width='50%' valign='top'>
<p align='right'>Gautos dovanos:</td>
<td width='50%'>
<textarea rows='8' name='dovanos' style='width:250px;' cols='20'>Cia irasom gautas dovanas</textarea></td>
</tr>
<tr>
<td width='50%'>
<p align='right'>Laimingas?</td>
<td width='50%'><select size='1' name='laimingas' style='width:250px;'>
<option selected value='0'>Taip</option>
<option value='1'>Ne</option>
</select></td>
</tr>
<tr>
<td width='100%' colspan='2'>
<p align='center'><input type='submit' value='Pateikti' name='pateikti'>&nbsp;
<input type='reset' value='Isvalyti laukelius'></td>
</tr>
</table>
</form>";
closetable();
}
//jeigu paspaude prideti, tai vykdom skripta
elseif (isset($_POST['pateikti'])) {
//laukelio informacija perduodama POST rezimu, kuri galime isgauti parase ".$_POST['laukelio_pavadinimas']." (pvz: name='laimingas')
$result = dbquery("INSERT INTO ".$db_prefix."lentele (id, vartotojas, dovanos, laiminas) VALUES ('', '".$_POST['vartotojas']."', '".$_POST['dovanos']."', '".$_POST['laimingas']."')");
//jeigu pridejo, griztam ir parodom kad pridejo
if($result) { redirect(FUSION_SELF."?status=pateikta"); }
//jeigu nepridejo griztam ir parodom kad nepridejo
else { redirect(FUSION_SELF."?status=atmesta"); }
}


require_once "side_right.php";
require_once "footer.php";
?>[/code]

Na viska galite koreguoti pagal save.


Zinoma, Postintus duomenis reiktu filtruoti nuo kenksmingo kodo, toliau jeigu postinama koks nors id reiktu tikrint ar postinamas skaicius ir t.t.

bet apie tai ir apie atvaizdavima kada nors veliau... gal kas nors kitas teiksis parasyt...


Autorius: [color=green][b]@chipass[/b][/color]