Programozás és adatbázis kezelés PHP ben Készítette: Pető László
I. A programozási környezet A PHP platformfüggetlen programozási nyelv. A szkriptek futtatása szerveroldalon történik. Ezt a szerepet leggyakrabban Apache webszerver végzi. Az adatbázis kezeléshez pedig vagy MySQL, vagy PostgreSQL szervert használhatunk. Mi a PHP t, Apache segítségével tanulmányozzuk, és MySQL t is fogunk használni. Ezen környezetek Windows operációs rendszerekhez is beszerezhetők, mi viszont Linux környezetben ismerkedünk meg azok működésével. Javasolt, olyan disztribúció használata, amelynek ezek az összetevők a részei. A magam részéről a feladatokat Mandriva 2007.0 környezetben oldottam meg. II. Szöveg kiírása Példaprogram: <TITLE>Szöveg kiírása</title> print "Üdvözlet"; //A PHP utasítások mindig pontosvesszőre végződnek. III. Szöveg beolvasása, változó értékének átadása A html kód: <TITLE>Szöveg kiírása 2</TITLE>
<FORM METHOD=POST ACTION="2_kiiras.php"> //Itt hívjuk meg a php kódot. <INPUT TYPE="text" NAME="kuldott_nev">//Ezzel a névvel hivatkozunk a beírt szövegre. <INPUT TYPE="submit" VALUE="Mehet!"> </FORM> A php kód: <TITLE>Szöveg kiírása 2</TITLE> $nev=$_post[kuldott_nev]; //A PHP változók nevei mindig $ jellel kezdődnek. //= Az értékadó egyenlőség. //Itt vesszük át a szövegbeviteli mezőbe beírt szöveget. print "Üdvözlet ".$nev; //. A stringek összefűzésének művelete.
IV. Számológép, matematikai műveletek, elágazások A html kód: <TITLE>Számológép</TITLE> <FORM METHOD=POST ACTION="3_szamologep.php"> <INPUT TYPE="text" NAME="kuld_a"><BR> <INPUT TYPE="text" NAME="kuld_b"><BR> <INPUT TYPE="radio" NAME="kuld_muvelet" VALUE="+" default>+<br> <INPUT TYPE="radio" NAME="kuld_muvelet" VALUE=" "> <BR> <INPUT TYPE="radio" NAME="kuld_muvelet" VALUE="*">*<BR> <INPUT TYPE="radio" NAME="kuld_muvelet" VALUE="/">/<BR> // A műveletet rádiógombok segítségével választhatjuk ki. A + az alapétrelmezett. Az első számot a kuld_a, a második számot a kuld_b, a műveleti jelet a kuld_muvelet tartalmazza. <INPUT TYPE="submit" VALUE="Számít!"> </FORM> <TITLE>Szöveg kiírása 2</TITLE>
$a=$_post[kuld_a]; $b=$_post[kuld_b]; $muvelet=$_post[kuld_muvelet]; if ($muvelet=="+"){$c=$a+$b;} // if (feltétel) {utasítások} else {utasítások}; //+ összeadás; kivonás; * szorzás; / osztás //Összehasonlító műveletek: == egyenlő;!= nem egyenlő; > nagyobb; < kisebb; >= nagyobb, vagy //egyenlő; <= kisebb, vagy egyenlő. if ($muvelet==" "){$c=$a $b;} if ($muvelet=="*"){$c=$a*$b;} if ($muvelet=="/"){$c=$a/$b;} print $c; V. A másodfokú egyenlet megoldóképlete A html kód: <TITLE>Másodfokú egyenlet</title> <FORM METHOD=POST ACTION="4_masodfoku.php"> <INPUT TYPE="text" NAME="kuld_a"><BR> <INPUT TYPE="text" NAME="kuld_b"><BR> <INPUT TYPE="text" NAME="kuld_c"><BR> <INPUT TYPE="submit" VALUE="Számít!"> </FORM>
<TITLE>Másodfokú egyenlet</title> $a=$_post[kuld_a]; $b=$_post[kuld_b]; $c=$_post[kuld_c]; $d=$b*$b 4*$a*$c; if ($a==0){print "Az egyenlet nem másodfokú.";} else { if ($d<0) {print "Az egyenletnek nincs valós gyöke.";} else { $x1=( $b+sqrt($d))/(2*$a); //sqrt négyzetgyök $x2=( $b sqrt($d))/(2*$a); print "<H1>X<SUB>1</SUB>= ".$x1."</h1><br>"; //A string html kódot is tartalmazhat, tehát a print utasítással formázhatjuk is a kimenetet. print "<H1>X<SUB>2</SUB>= ".$x2."</h1>"; } }
VI. A számtani sorozat, ciklusok A html kód: <TITLE>Számtani sorozat</title> <FORM METHOD=POST ACTION="5_szamtanisorozat.php"> Első elem:<br> <INPUT TYPE="text" NAME="kuld_a1"><BR> Különbség:<BR> <INPUT TYPE="text" NAME="kuld_d"><BR> Elemek száma:<br> <INPUT TYPE="text" NAME="kuld_n"><BR> <INPUT TYPE="submit" VALUE="Számít!"> </FORM> <TITLE>Számtani sorozat</title>
$a1=$_post[kuld_a1]; $d=$_post[kuld_d]; $n=$_post[kuld_n]; for($i=1;$i<=$n;$i=$i+1) { $x=$a1+($i 1)*$d; print $x."<br>"; } VII. Mértani sorozat A html kód: <TITLE>Mértani sorozat</title> <FORM METHOD=POST ACTION="6_mertanisorozat.php"> Első elem:<br> <INPUT TYPE="text" NAME="kuld_a1"><BR> Hányados:<BR> <INPUT TYPE="text" NAME="kuld_q"><BR> Elemek száma:<br> <INPUT TYPE="text" NAME="kuld_n"><BR>
<INPUT TYPE="submit" VALUE="Számít!"> </FORM> <TITLE>Mértani sorozat</title> $a1=$_post[kuld_a1]; $q=$_post[kuld_q]; $n=$_post[kuld_n]; for($i=1;$i<=$n;$i=$i+1) { print $a1."<br>"; $a1=$a1*$q; }
VIII. Szorzótábla A html kód: <TITLE>Szorzótábla</TITLE> <FORM METHOD=POST ACTION="7_szorzotabla.php"> Melyik szorzótáblát listázzam?<br> <INPUT TYPE="text" NAME="kuld_szorzo"><BR> Meddig?<BR> <INPUT TYPE="text" NAME="kuld_meddig"><BR> <INPUT TYPE="submit" VALUE="Számít!"> </FORM> <TITLE>Szorzótábla</TITLE> $szorzo=$_post[kuld_szorzo]; $meddig=$_post[kuld_meddig]; print "<TABLE BORDER=3 BORDERCOLOR='#00ff00' CELLPADDING=4 CELLSPACING=3 BGCOLOR='#ff00ff'>"; for($i=1;$i<=$meddig;$i=$i+1) {
print "<TR>"; for($j=1;$j<=$szorzo;$j=$j+1) { print "<TD WIDTH=30 ALIGN=CENTER>".$i*$j."</TD>"; } print "</TR>"; } print "</TABLE>"; IX. Értéktáblázat; Függvények alkalmazása A html kód: <TITLE>Másodfokú függvény</title> Másodfokú függvény helyettesítési értékei:<br> <FORM METHOD=POST ACTION="8_ertektablazat.php"> Alsó határ:<br> <INPUT TYPE="text" NAME="kuld_ah"><BR> Felső határ:<br> <INPUT TYPE="text" NAME="kuld_fh"><BR> Lépésköz:<BR> <INPUT TYPE="text" NAME="kuld_lk"><BR> a:<br> <INPUT TYPE="text" NAME="kuld_a"><BR>
b:<br> <INPUT TYPE="text" NAME="kuld_b"><BR> c:<br> <INPUT TYPE="text" NAME="kuld_c"><BR> <INPUT TYPE="submit" VALUE="Számít!"> </FORM> <TITLE>Másodfokú függvény</title> $ah=$_post[kuld_ah]; $fh=$_post[kuld_fh]; $lk=$_post[kuld_lk]; $a=$_post[kuld_a]; $b=$_post[kuld_b]; $c=$_post[kuld_c]; function masodfoku($a,$b,$c,$x) //paraméterlista { $eredmeny=$a*$x*$x+$b*$x+$c; return $eredmeny; //visszatérési érték (eredmény)
} print "<TABLE BORDER=1>"; print "<TR>"; for($i=$ah;$i<=$fh;$i=$i+$lk) { print "<TD ALIGN=CENTER WIDTH=50>".$i."</TD>"; } print "</TR>"; print "<TR>"; for($i=$ah;$i<=$fh;$i=$i+$lk) { print "<TD ALIGN=CENTER WIDTH=50>".masodfoku($a,$b,$c,$i)."</TD>"; //függvényhívás } print "</TR>"; print "</TABLE>"; X. Diagram készítése A html kód: <TITLE>Másodfokú függvény</title> Másodfokú függvény helyettesítési értékei:<br> <FORM METHOD=POST ACTION="9_diagram.php"> Alsó határ:<br>
<INPUT TYPE="text" NAME="kuld_ah"><BR> Felső határ:<br> <INPUT TYPE="text" NAME="kuld_fh"><BR> Lépésköz:<BR> <INPUT TYPE="text" NAME="kuld_lk"><BR> a:<br> <INPUT TYPE="text" NAME="kuld_a"><BR> b:<br> <INPUT TYPE="text" NAME="kuld_b"><BR> c:<br> <INPUT TYPE="text" NAME="kuld_c"><BR> <INPUT TYPE="submit" VALUE="Számít!"> </FORM> <TITLE>Szöveg kiírása 2</TITLE> $ah=$_post[kuld_ah]; $fh=$_post[kuld_fh]; $lk=$_post[kuld_lk];
$a=$_post[kuld_a]; $b=$_post[kuld_b]; $c=$_post[kuld_c]; function masodfoku($a,$b,$c,$x) { $eredmeny=$a*$x*$x+$b*$x+$c; return $eredmeny; } for($i=$ah;$i<=$fh;$i=$i+$lk) { $magassag=masodfoku($a,$b,$c,$i); print "<HR ALIGN=LEFT WIDTH=".$magassag*10." > "; } XI. Az ismeros(nev, irsz, lakcim) adattábla létrehozása A html kód: <TITLE>Adattábla létrehozása</title> <FORM METHOD=POST ACTION="10_tablaletrehoz.php">
<INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Adattábla létrehozása</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","");//szerver neve, címe; felhasználó neve; jelszó //Adatbázis kiválasztása mysql_select_db("proba",$ossz);//adatbázis neve //Táblakészítő lekérdezés $sql="create TABLE ismeros(nev varchar(30), irsz int, lakcim varchar(40))"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} Ha újra lefuttatjuk:
XII. Adatbeviteli űrlap az ismeros(nev, irsz, lakcim) táblához A html kód: <TITLE>Adatbeviteli űrlap</title> <FORM METHOD=POST ACTION="11_bevitel.php"> Név:<BR> <INPUT TYPE="text" NAME="kuld_nev"><BR> Irányítószám:<BR> <INPUT TYPE="text" NAME="kuld_irsz"><BR> Lakcím:<BR> <INPUT TYPE="text" NAME="kuld_lakcim"><BR> <INPUT TYPE="submit" VALUE="Adatbevitel"> </FORM> <TITLE>Szöveg kiírása 2</TITLE>
//Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Sor beszúró lekérdezés $sql="insert INTO ismeros values ('".$_POST[kuld_nev]."','".$_POST[kuld_irsz]."','".$_POST[kuld_lakcim]."')"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "Az adatbevitel sikeres";} Töltsük fel a táblát legalább 5 6 rekorddal! XIII. Lekérdezés az ismeros(nev, irsz, lakcim) táblából A html kód: <TITLE>Lekérdezés</TITLE> <FORM METHOD=POST ACTION="12_lekerdezes.php"> <INPUT TYPE="submit" VALUE="Végrehajt!"> </FORM>
<TITLE>Lekérdezés</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Lekérdezés $sql="select * FROM ismeros"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); print "<TABLE BORDER=1>"; print "<TR><TD>NÉV</TD><TD>IRÁNYÍTÓSZÁM</TD><TD>LAKCÍM</TD></TR>"; while ($kerdestomb=mysql_fetch_array($eredmeny)) { $nev=$kerdestomb['nev']; print "<TR><TD>".$nev."</TD>"; $irsz=$kerdestomb['irsz']; print "<TD>".$irsz."</TD>"; $lakcim=$kerdestomb['lakcim']; print "<TD>".$lakcim."</TD></TR>"; } print "</TABLE>";
XIV. A posta(szam, varos) tábla létrehozása A html kód: <TITLE>Posta tábla</title> <FORM METHOD=POST ACTION="13_tablaletrehoz.php"> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Szöveg kiírása 2</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Táblakészítő lekérdezés $sql="create TABLE posta(szam int, varos varchar(40))"; //Végrehajtás
$eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} Töltsük fel a táblát a megfelelő irányítószámokhoz tartozó városokkal! A html kód: <TITLE>Adatbevitel</TITLE> <FORM METHOD=POST ACTION="13_bevitel.php"> Irányítószám:<BR> <INPUT TYPE="text" NAME="kuld_szam"><BR> Város:<BR> <INPUT TYPE="text" NAME="kuld_varos"><BR> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Adatbevitel</TITLE>
//Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Sor beszúró lekérdezés $sql="insert INTO posta values ('".$_POST[kuld_szam]."','".$_POST[kuld_varos]."')"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "Az adatbevitel sikeres";} XV. Az ismeros(nev, irsz, lakcim) és a posta(szam, varos) tábla összekapcsolása A html kód: <TITLE>Összekapcsolás</TITLE> <FORM METHOD=POST ACTION="13_lekerdezes.php"> <INPUT TYPE="submit" VALUE="Végrehajt!"> </FORM> <TITLE>Összekapcsolás</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","");
//Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Lekérdezés $sql="select nev,varos FROM ismeros,posta WHERE irsz=szam"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); print "<TABLE BORDER=1>"; print "<TR><TD>NÉV</TD><TD>VÁROS</TD></TR>"; while ($kerdestomb=mysql_fetch_array($eredmeny)) { $nev=$kerdestomb['nev']; print "<TR><TD>".$nev."</TD>"; $varos=$kerdestomb['varos']; print "<TD>".$varos."</TD></TR>"; } print "</TABLE>"; XVI. Fórum létrehozása A html kód: <TITLE>Fórum létrehozása</title>
<FORM METHOD=POST ACTION="14_forumletrehoz.php"> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Fórum létrehozása</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Táblakészítő lekérdezés $sql="create TABLE forum(fhnev varchar(20), uzenet text)"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} XVII. Hozzászólás a fórumhoz Az adatbevitel html kódja: <TITLE>Hozzászólás</TITLE> <FORM METHOD=POST ACTION="14_forumbevitel.php"> Név:<BR> <INPUT TYPE="text" NAME="kuld_nev"><BR>
Üzenet:<BR> <TEXTAREA NAME="kuld_uzenet" ROWS="10" COLS="70"></TEXTAREA><BR> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Hozzászólás</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Sor beszúró lekérdezés $sql="insert INTO forum values ('".$_POST[kuld_nev]."','".$_POST[kuld_uzenet]."')"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "Az adatbevitel sikeres";} print "<BR><A HREF='14_forum.html'>RENDBEN</A>";
A listázás html kódja: <TITLE>Fórum</TITLE> <FORM METHOD=POST ACTION="14_forum.php"> <INPUT TYPE="submit" VALUE="Vissza a fórumhoz!"> </FORM> <TITLE>Fórum</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Lekérdezés $sql="select * FROM forum"; //Végrehajtás
$eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); while ($kerdestomb=mysql_fetch_array($eredmeny)) { print "<TABLE WIDTH=600 BORDER=1>"; $fhnev=$kerdestomb['fhnev']; print "<TR><TD>".$fhnev."</TD></TR>"; $uzenet=$kerdestomb['uzenet']; print "<TR><TD>".$uzenet."</TD></TR>"; print "</TABLE>"; print "<HR>"; } print "<A HREF='14_forumbevitel.html'>Hozzászól</A>"; XVIII. A fórum moderálása A html kód: <TITLE>Törlés</TITLE>
<FORM METHOD=POST ACTION="14_forummoderal.php"> Moderátori jelszó:<br> <INPUT TYPE="text" NAME="kuld_jelszo"><BR> Törlendő hozzászóló: <INPUT TYPE="text" NAME="kuld_nev"><BR> <INPUT TYPE="submit" VALUE="Gyerünk!"> </FORM> <TITLE>Törlés</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Törlő lekérdezés $jelszo=$_post[kuld_jelszo]; $nev=$_post[kuld_nev]; if ($jelszo=='qwertz') { $sql="delete FROM forum WHERE fhnev='".$nev."'"; //Végrehajtás
$eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "Az törlés sikeres";} } else { print "<H1>Hibás jelszó</h1>"; } print "<BR><A HREF='14_forum.php'>RENDBEN</A>"; XIX. Szavazógép létrehozása A html kód: <TITLE>Szavazógép</TITLE> <FORM METHOD=POST ACTION="15_szavazoletrehoz.php"> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM>
<TITLE>Szöveg kiírása 2</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Táblakészítő lekérdezés $sql="create TABLE szavazo(igen int, nem int)"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} XX. Szavazat leadása A html kód: <TITLE>Szavazás</TITLE> <FORM METHOD=POST ACTION="15_szavazobevitel.php"> A Windows Vista szuper operációs rendszer.<br> <INPUT TYPE="radio" NAME="kuld_szavaz" VALUE="igen">Egyetértek<BR> <INPUT TYPE="radio" NAME="kuld_szavaz" VALUE="nem">Nem egészen<br> <INPUT TYPE="submit" VALUE="Szavazás!"> </FORM>
<TITLE>Szöveg kiírása 2</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Sor beszúró lekérdezés if ($_POST[kuld_szavaz]=="igen") { $sql="insert INTO szavazo values ('1','0')"; } else { $sql="insert INTO szavazo values ('0','1')"; } //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "Az adatbevitel sikeres";} print "<BR><A HREF='15_szavazas.html'>RENDBEN</A>";
XXI. A szavazás eredménye A html kód: <TITLE>A szavazás állása</title> <FORM METHOD=POST ACTION="15_szavazas.php"> <INPUT TYPE="submit" VALUE="Vissza a szavazáshoz!"> </FORM> <TITLE>Szavazás állása</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("proba",$ossz); //Az összegek lekérdezése $sql="select sum(igen) as jo, sum(nem) as rossz FROM szavazo"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); while ($kerdestomb=mysql_fetch_array($eredmeny)) {
$jo=$kerdestomb['jo']; $rossz=$kerdestomb['rossz']; $osszes=$jo+$rossz; $joszazalek=$jo/$osszes*100; $rosszszazalek=$rossz/$osszes*100; } print "<H1>A VISTA JÓ: ".$joszazalek."%</h1>"; print "<H1>A VISTA ROSSZ: ".$rosszszazalek."%</h1>"; for ($i=1;$i<=$joszazalek/2;$i=$i+1) { print "<IMG SRC='piros.jpg'>";//Négyzetek elhelyezése } print "<BR>"; for ($i=1;$i<=$rosszszazalek/2;$i=$i+1) { print "<IMG SRC='kek.jpg'>"; } print "<BR>"; print "<A HREF='15_szavazobevitel.html'>Én is szavazni akarok</a>"; XXII. Állomány feltöltése A feltöltés célkönyvtárának jogosultságait a szkript használata előtt megfelelő módon be kell állítani! A html kód:
<TITLE>UPLOAD</TITLE> <FORM ENCTYPE="multipart/form data" ACTION="16_feltoltes.php" METHOD="POST"> //A MAX_FILE_SIZE meg kell előzze a fájlkiválasztó űrlapelemet <INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="10000000" > //A name ben megadott név szerinti tömbelemben kapunk adatokat a $_FILES tömbben Állomány elküldése: <INPUT NAME="userfile" TYPE="file" > <INPUT TYPE="submit" VALUE="OK" > </FORM> <TITLE>Második példa</title> $uploaddir = '/var/www/html/uploads/';//a feltöltés célja $uploadfile = $uploaddir. basename($_files['userfile']['name']); print "<pre>"; if (move_uploaded_file($_files['userfile']['tmp_name'], $uploadfile)) { print "A fájl megfelelő. sikeresen feltöltésre került.<br>"; } else {
print "Lehetséges fájlfeltöltés támadás!<br>"; } print "Íme egy kis információ hibakereséshez:"; print_r($_files); print "</pre>";?> XXIII. Több témát tartalmazó fórum tábláinak elkészítése A témákat tartalmazó tábla létrehozásának html kódja: <TITLE>Témák létrehozása</title>
<FORM METHOD=POST ACTION="20_tematablaletrehoz.php"> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Témák létrehozása</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz); //Táblakészítő lekérdezés $sql="create TABLE tematabla(azonosito int not null primary key auto_increment, cim varchar(140), letredatum datetime, tulaj varchar(140))"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} A hozzászólásokat tartalmazó tábla html kódja: <TITLE>Hozzászólások létrehozása</title> <FORM METHOD=POST ACTION="20_hozzaszolastablaletrehoz.php"> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM>
<TITLE>Hozzászólások</TITLE> <?php //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz); //Táblakészítő lekérdezés $sql="create TABLE hozzaszolastabla(azonosito int not null primary key auto_increment, temaazon int not null, szoveg text, letrehozas datetime, bekuldo varchar(140))"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} XXIV. Új téma létrehozása A html kód: <TITLE>Új témák létrehozása</title> <H1> Új téma felvétele </H1> <BR> <FORM METHOD=POST ACTION="20_ujtemaurlap.php"> E mail cím:<br> <INPUT TYPE="text" NAME="tulaj"><BR> Téma címe:<br>
<INPUT TYPE="text" NAME="cim"><BR> Hozzászólás:<BR> <TEXTAREA NAME="szoveg" ROWS=7 COLS=50></TEXTAREA><BR> <INPUT TYPE="submit" VALUE="Létrehozás"> </FORM> <TITLE>Új téma</title> //Ki vannak e töltve a szükséges mezők? if ((!$_POST[tulaj]) (!$_POST[cim]) (!$_POST[szoveg])) { header("location:20_ujtemaurlap.html"); exit; } //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error());
//A téma adatainak rögzítése $sql="insert INTO tematabla values ('','$_POST[cim]',now(),'$_POST[tulaj]')"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A téma létrehozása sikeres<br>";} //Az új téma kulcsának lekérdezése $tema_azonosito=mysql_insert_id(); //A hozzászólás rögzítése $sql="insert INTO hozzaszolastabla values ('','$tema_azonosito','$_post[szoveg]',now(),'$_post[tulaj]')"; $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A hozzászólás létrehozása sikeres<br>";} XXV. A témák listája <TITLE>Témalista</TITLE> <H1> A fórum témái </H1> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); //A témák lekérdezése
$sql="select azonosito,cim,letredatum,tulaj FROM tematabla ORDER BY letredatum DESC"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); //Ha nincs még téma if (mysql_num_rows($eredmeny)<1) { print "<P>Nincsenek témák a fórumban.</p>"; } else { print "<TABLE BORDER=1><TR><TD>TÉMA CÍME</TD><TD>HOZZÁSZÓLÁSOK SZÁMA</TD></TR>"; while ($temakadatai=mysql_fetch_array($eredmeny)) { $azonosito=$temakadatai['azonosito']; $cim=$temakadatai['cim']; $letredatum=$temakadatai['letredatum']; $tulaj=$temakadatai['tulaj']; $darabsql="select COUNT(azonosito) FROM hozzaszolastabla where temaazon=$azonosito";//hozzászólások leszámlálása $daraberedmeny=mysql_query($darabsql,$ossz) or die(mysql_error()); $darabszam=mysql_result($daraberedmeny,0,'count(azonosito)'); print "<TR><TD><A HREF=\"20_hozzaszolasok.php?azonosito=$azonosito\">$cim</A><BR> A témát $tulaj hozta létre. Dátum: $letredatum</td><td ALIGN=CENTER>$darabszam</TD></TR>"; } } <P><A HREF="20_ujtemaurlap.html">Új téma létrehozása</a></p>
XXVI. Hozzászólások Erre a lapra a témalista lapról lehet eljutni, ahol az URL be bekerül az azonosító is. <TITLE>Hozzászólások 2</TITLE> //Az URL ellenőrzése if (!$_GET[azonosito]) { header("location:20_temalista.php"); exit; } //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); //A téma címének lekérdezése $sql="select cim FROM tematabla WHERE azonosito=$_get[azonosito]"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); //Ha nincs ilyen téma if (mysql_num_rows($eredmeny)<1) { print "<P>Nincsen ilyen téma a fórumban.</p>";
print "<P><A HREF='20_temalista.php'>Újabb próbálkozás</a></p>"; } else { //A téma címének kiolvasása $cim=stripslashes(mysql_result($eredmeny,0,'cim')); //A hozzászólások lekérdezése $hszsql="select azonosito,szoveg,letrehozas,bekuldo FROM hozzaszolastabla WHERE temaazon=$_get[azonosito] ORDER BY letrehozas"; $hszeredmeny=mysql_query($hszsql,$ossz) or die(mysql_error()); print "<H1>A <B>$cim</B> című téma hozzászólásai:</h1><br>"; while ($hozzaszolasadatai=mysql_fetch_array($hszeredmeny)) { $azonosito=$hozzaszolasadatai['azonosito']; $szoveg=$hozzaszolasadatai['szoveg']; $letrehozas=$hozzaszolasadatai['letrehozas']; $bekuldo=$hozzaszolasadatai['bekuldo']; print "<TABLE BORDER=1 WIDTH=700>"; print "<TR><TD>$bekuldo<BR>$letrehozas</TD></TR>"; print "<TR><TD>$szoveg<BR><A HREF=\"20_valasz.php?azonosito=$azonosito\">VÁLASZ ERRE</A></TD></TR>"; print "</TABLE><HR>"; } } Eredmény például:
XXVI. Válaszok a hozzászólásokra Erre a lapra, a hozzászólásokról juthatunk, tehát itt is fontos szerepe van az URL ben szereplő azonosítónak. <TITLE>Hozzászólások 3</TITLE> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); //Megtörtént e a beküldés if ($_POST[muvelet]!= "bekuldes") { //Meg kell jeleníteni az űrlapot //Van e ilyen téma if (!$_GET[azonosito]) { header("location:20_temalista.php"); exit; } //Téma és hozzászólás ellenőrzése $ellsql="select temaazon,cim FROM hozzaszolastabla,tematabla WHERE tematabla.azonosito=temaazon AND hozzaszolastabla.azonosito=$_get[azonosito]"; $elleredmeny=mysql_query($ellsql,$ossz) or die(mysql_error()); if (mysql_num_rows($elleredmeny)<1) { header("location:20_temalista.php"); exit; } else {
//Téma címének és azonosítójának kiolvasása $temaazon=mysql_result($elleredmeny,0,'temaazon'); $cim=stripslashes(mysql_result($elleredmeny,0,'cim')); print "<H1> Hozzászólás a <B>$cim</B> című témához: </H1>"; print "<FORM METHOD=POST ACTION=\"$_SERVER[PHP_SELF]\">"; print "E mail cím:<br>"; print "<INPUT TYPE=\"text\" NAME=\"bekuldo\"><BR>"; print "Hozzászólás:<BR>"; print "<TEXTAREA NAME=\"szoveg\" ROWS=10 COLS=50></TEXTAREA><BR>"; print "<INPUT TYPE=\"hidden\" NAME=\"muvelet\" VALUE=\"bekuldes\">"; print "<INPUT TYPE=\"hidden\" NAME=\"temaazon\" VALUE=\"$temaazon\">"; print "<INPUT TYPE=\"submit\" VALUE=\"Mehet\"><BR>"; print "</FORM>"; } } else if ($_POST[muvelet]=="bekuldes") { //A szükséges mezők ki vannak e töltve? if ((!$_POST[temaazon]) (!$_POST[szoveg]) (!$_POST[bekuldo])) { header("location: 20_temalista.php"); exit; } //Hozzászólás felvétele $sql="insert INTO hozzaszolastabla VALUES ('','$_POST[temaazon]','$_POST[szoveg]',now(),'$_POST[bekuldo]')"; mysql_query($sql,$ossz) or die(mysql_error()); //Visszairányítás a hozzászólásokhoz $link="20_hozzaszolasok.php?azonosito=$_post[temaazon]"; header("location: $link"); exit; }
Eredmény például: XXVII. Adatkezelő rendszer <TITLE>Magyarország királyai</title> <H1>Magyarország királyai</h1> <H3>Módosítás</H3> <UL> <LI><A HREF="30_uj.php">Új adatok felvitele</a> <LI><A HREF="30_modosit.php">Adatok módosítása</a> <LI><A HREF="30_torol.php">Adatok törlése</a> </UL> <H3>Böngészés</H3> <UL> <LI><A HREF="30_megtekint.php">Bejegyzések megtekintése</a> </UL>
A táblát létrehozó html kód: <TITLE>Tábla létrehozása</title> <FORM METHOD=POST ACTION="30_combotablaletrehoz.php"> <INPUT TYPE="submit" VALUE="Létrehoz!"> </FORM> <TITLE>Tábla létrehozása</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root",""); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz); //Táblakészítő lekérdezés $sql="create TABLE magyartabla(azonosito int not null primary key auto_increment, nev varchar(140), kezdet int, veg int, apa varchar(140), anya varchar(140), szoveg text)";
//Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if ($eredmeny==1){print "A létrehozás sikeres";} XXVIII. Új rekord felvétele <TITLE>Adatbevitel</TITLE> if ($_POST[x]=='uj')//A php lap önmagát fogja meghívni { //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); //A form adatainak rögzítése $sql="insert INTO magyartabla VALUES ('','$_POST[nev]','$_POST[kezdet]','$_POST[veg]','$_POST[apa]','$_POST[anya]','$_POST[szoveg]')" ; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); } <BODY BGCOLOR="#FF00FF"> <H3>Királyok adatainak felvitele</h3> <FORM METHOD=POST ACTION="<?php print $_SERVER[PHP_SELF]?>"> NÉV:<BR> <INPUT TYPE='text' NAME='nev'><BR> URALKODÁS KEZDETE:<BR> <INPUT TYPE='text' NAME='kezdet'><BR> URALKODÁS VÉGE:<BR>
<INPUT TYPE='text' NAME='veg'><BR> APA:<BR> <INPUT TYPE='text' NAME='apa'><BR> ANYA:<BR> <INPUT TYPE='text' NAME='anya'><BR> RÖVID LEÍRÁS:<BR> <TEXTAREA NAME='szoveg' ROWS=10 COLS=50></TEXTAREA><BR> <INPUT TYPE='hidden' NAME='x' VALUE='uj'> <INPUT TYPE='submit' VALUE='Rögzít'><BR> </FORM> XXIX. Bejegyzések megtekintése <TITLE>Adatok megtekintése</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error());
//Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); if ($_POST[x]!='megnez') { //A form adatainak rögzítése $sql="select * FROM magyartabla ORDER BY azonosito"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if (mysql_num_rows($eredmeny)<1) { print "Nincsenek bejegyzések."; } else { print "<FORM METHOD=POST ACTION='$_SERVER[PHP_SELF]'>"; print "Válasszon királyt!<br>"; print "<SELECT NAME='kiralynev'>"; print "<OPTION VALUE=''> Válasszon! </OPTION>"; while ($kiiras=mysql_fetch_array($eredmeny)) { $azonosito=$kiiras['azonosito']; $nev=$kiiras['nev']; print "<OPTION VALUE='$azonosito'>$nev</OPTION>";//A lista feltöltése } print "</SELECT>"; print "<INPUT TYPE='hidden' NAME='x' VALUE='megnez'>"; print "<P><INPUT TYPE='submit' VALUE='Részletek'></P>"; print "</FORM>"; } } else if ($_POST[x]=="megnez") { if ($_POST[kiralynev]=="") {
header("location:30_megtekint.php"); exit; } $kiralysql="select * FROM magyartabla WHERE azonosito=$_post[kiralynev]"; $kireredm=mysql_query($kiralysql); $nev=mysql_result($kireredm,0,'nev'); print "<H1>$nev adatai:</h1>"; $kezdet=mysql_result($kireredm,0,'kezdet'); print "Uralkodásának kezdete: $kezdet<br>"; $veg=mysql_result($kireredm,0,'veg'); print "Uralkodásának vége: $veg<br>"; $apa=mysql_result($kireredm,0,'apa'); print "Apja: $apa<br>"; $anya=mysql_result($kireredm,0,'anya'); print "Anyja: $anya<br>"; $szoveg=mysql_result($kireredm,0,'szoveg'); print "Adatok:<BR> $szoveg<br>"; print "<P></P>"; print "<A HREF='30_megtekint.php'>Vissza</A>"; } <BODY BGCOLOR="#00FFFF">
XXX. Módosítás <TITLE>Adatbevitel</TITLE> if ($_POST[x]=='modosit') { //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); //A form adatainak rögzítése $sql="update magyartabla SET kezdet = $_POST[kezdet] WHERE nev='$_post[nev]'"; $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); $sql="update magyartabla SET veg = $_POST[veg] WHERE nev='$_post[nev]'"; $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); $sql="update magyartabla SET apa = '$_POST[apa]' WHERE nev='$_post[nev]'"; $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); $sql="update magyartabla SET anya = '$_POST[anya]' WHERE nev='$_post[nev]'"; $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); $sql="update magyartabla SET szoveg = '$_POST[szoveg]' WHERE nev='$_post[nev]'"; $eredmeny=mysql_query($sql,$ossz) or die(mysql_error());
} <BODY BGCOLOR="#226655"> <H3>Királyok adatainak módosítása</h3> <FORM METHOD=POST ACTION="<?php print $_SERVER[PHP_SELF]?>"> NÉV:<BR> <INPUT TYPE='text' NAME='nev'><BR> URALKODÁS KEZDETE:<BR> <INPUT TYPE='text' NAME='kezdet'><BR> URALKODÁS VÉGE:<BR> <INPUT TYPE='text' NAME='veg'><BR> APA:<BR> <INPUT TYPE='text' NAME='apa'><BR> ANYA:<BR> <INPUT TYPE='text' NAME='anya'><BR> RÖVID LEÍRÁS:<BR> <TEXTAREA NAME='szoveg' ROWS=10 COLS=50></TEXTAREA><BR> <INPUT TYPE='hidden' NAME='x' VALUE='modosit'> <INPUT TYPE='submit' VALUE='Módosít'><BR> </FORM>
XXXI. Törlés <TITLE>Adatok megtekintése</title> //Összeköttetés kiépítése $ossz=mysql_connect("localhost","root","") or die(mysql_error()); //Adatbázis kiválasztása mysql_select_db("sajatforum",$ossz) or die(mysql_error()); if ($_POST[x]!='torol') { //A form adatainak rögzítése $sql="select * FROM magyartabla ORDER BY azonosito"; //Végrehajtás $eredmeny=mysql_query($sql,$ossz) or die(mysql_error()); if (mysql_num_rows($eredmeny)<1) { print "Nincsenek bejegyzések."; } else { print "<FORM METHOD=POST ACTION='$_SERVER[PHP_SELF]'>"; print "Válasszon királyt!<br>"; print "<SELECT NAME='kiralynev'>"; print "<OPTION VALUE=''> Válasszon! </OPTION>"; while ($kiiras=mysql_fetch_array($eredmeny))
{ $azonosito=$kiiras['azonosito']; $nev=$kiiras['nev']; print "<OPTION VALUE='$azonosito'>$nev</OPTION>"; } print "</SELECT>"; print "<INPUT TYPE='hidden' NAME='x' VALUE='torol'>"; print "<P><INPUT TYPE='submit' VALUE='Törlés'></P>"; print "</FORM>"; } } else if ($_POST[x]=="torol") { if ($_POST[kiralynev]=="") { header("location:30_torol.php"); exit; } $torolsql="delete FROM magyartabla WHERE azonosito=$_post[kiralynev]"; $toroleredm=mysql_query($torolsql); $nev=mysql_result($kireredm,0,'nev'); print "<H3>Bejegyzés törölve</h3>"; print "<P><A HREF='$_SERVER[PHP_SELF]'>Másik bejegyzés törlése</a></p>"; } <BODY BGCOLOR="#6600EE">
Tartalomjegyzék I. A programozási környezet...2 II. Szöveg kiírása...2 III. Szöveg beolvasása, változó értékének átadása...2 IV. Számológép, matematikai műveletek, elágazások...4 V. A másodfokú egyenlet megoldóképlete...5 VI. A számtani sorozat, ciklusok...7 VII. Mértani sorozat...8 VIII. Szorzótábla...10 IX. Értéktáblázat; Függvények alkalmazása...11 X. Diagram készítése...13 XI. Az ismeros(nev, irsz, lakcim) adattábla létrehozása...15 XII. Adatbeviteli űrlap az ismeros(nev, irsz, lakcim) táblához...17 XIII. Lekérdezés az ismeros(nev, irsz, lakcim) táblából...18 XIV. A posta(szam, varos) tábla létrehozása...20 XV. Az ismeros(nev, irsz, lakcim) és a posta(szam, varos) tábla összekapcsolása...22 XVI. Fórum létrehozása...23 XVII. Hozzászólás a fórumhoz...24 XVIII. A fórum moderálása...27 XIX. Szavazógép létrehozása...29 XX. Szavazat leadása...30 XXI. A szavazás eredménye...32 XXII. Állomány feltöltése...33 XXIII. Több témát tartalmazó fórum tábláinak elkészítése...35 XXIV. Új téma létrehozása...37 XXV. A témák listája...39 XXVI. Hozzászólások...41 XXVI. Válaszok a hozzászólásokra...43 XXVII. Adatkezelő rendszer...45 XXVIII. Új rekord felvétele...47 XXIX. Bejegyzések megtekintése...48 XXX. Módosítás...51 XXXI. Törlés...53