Segédletek.hu

Segédletek weblap szerkesztéshez!
ingyen letöltés

| Mind | PHP | HTML | CSS | Java |
|Legújabbak |Legtöbbször olvasottak|

MySQL alapfokon - 3:

Sorozat - mysql alapok a kezdetekhez:

Az előző kettő folytatása, amelyben kicsit összesítjuk az eddig tanultakat és meg is írunk egy kisebb adatbázis-kezelő programot.

A segédlet megértéshez szügség lehet az előző kettőre, amelyeket az alábbi linkeket érhetsz el:
- MySQL alapfokon - 1
- MySQL alapfokon - 2

Mint a bevezetésben is említettem, létre fogunk hozni egy egyszerűbb adatbázis-kezelő programot.
Mint azt remélhetően tudjuk, vaktában soha nem állunk neki programot írni.
Először a program szerkezete:

index.php (alapban az elérhető adatbázisok listázása)
| - ?p=Console (az SQL consol)
| - ?p=ViewDB (adatbázis tábláinak a listázása)

A program nagyon egyszerű, nélkülöz minden design-t.
A Console része csak szemléltetésre használható, de tetszőlegesen kibővíthető akár phpMyAdmin-szerű kimenetre is.

<?php
// csatlakozunk az adatbázishoz
$db['host'] = 'localhost';
$db['login'] = 'root';
$db['pass'] = '';
// vegyük észtre, hogy $db['name'] -t nem definiálunk, szal egyelore nem választunk ki seemilyen adatbázist.
$cnn = mysql_connect($db['host'], $db['login'], $db['pass']) or die(mysql_error());

// SELF konstant definiálása
$self = 'index.php';
$counter = false;
// itt végigfutunk az összes $_GET-en és hozzáadjuk az értéküket a selfhez
while(list($k, $v) = each($_GET))
{
        if($counter == false)
        {
                $self .= '?'.$k.'='.$v;
                $counter = true;
        }
        else
        {
                $self .= '&'.$k.'='.$v;
        }
}
define('SELF', $self);

// menüsor
echo '
<html>

<head>
<title>Egyszeru adatbázis-kezelo program</title>
<style type="text/css">
a {
color: Blue;
text-decoration:none;
}
a:hover {
text-decoration:underline
}
</style>
</head>

<body>
<div style="background-color:#CCC"><b>
<a href="index.php">Adatbázisok listája</a>
 -
<a href="index.php?p=Console">SQL Console</a>
</b></div>
<hr size="1" />'
;

// néhány verzió notice hibát ad vissza, ha esetleg a switch()-ben levő $_GET['p'] nem létezik
if(isset($_GET['p']))
{
        $p = $_GET['p'];
}
else
{
        $p = '';
}

switch($p)
{
        case 'Console':
                // ez a consol, ahol beírhatunk MySQL utasításokat
                if(isset($_POST['query']))
                {
                        // ha kaptunk SQL utasítást, akkor azt végrehajtjuk
                        $qr = mysql_real_escape_string($_POST['query'], $cnn);
                        $result = mysql_query($qr, $cnn) or die(mysql_error().'
<a onclick="history.go(-1)">Vissza</a>'
);
                        // további info errol az utasításról itt található
                       
                        echo '
        SQL utasítás:
        <div style="border:1px solid #999;background-color:#CCC">
        '
.$_POST['query'].'
        </div>
       
        Kimenet:
        '
.$output;
                }
                else
                {
                        // form
                        echo '
                <form method="post" action="'
.SELF.'">
                SQL utasítás:
                <textarea name="query" cols="45" rows="8"></textarea>
                <input type="submit" value="Küldés" />
                </form>'
;
                }
        break;
       
        case 'ViewDB':
                // egy $_GET['db']-ben megadott adatbázis tábláinak listázása
                $db = $_GET['sdb'];
                $dbh = mysql_select_db($db, $cnn); // adatbázis kiválasztása
               
                echo '
Adatbázis tábláinak listázása - '
.$db.'
<ul>'
;
               
                $query = @mysql_query("SHOW TABLES FROM ".$db) or die(mysql_error());
                $result_num = mysql_affected_rows();
                while($res = mysql_fetch_row($query))
                {
                        echo '
  <li>'
.$res[0].'</li>';
                }
                echo '
</ul>
Összesen <i>'
.$result_num.'</i> tábla kilistázva.';
        break;
       
        default:
                // alap index.php - adatbázisok listája
               
                echo '
Adatbázisok listája:
<ul>'
;
               
                $dbs = mysql_list_dbs($cnn);
                $counter = 0;
                while($db = mysql_fetch_assoc($dbs))
                {
                        $counter++;
                        $name = $db['Database'];
                        echo '
                  <li><a href="index.php?p=ViewDB&sdb='
.$name.'">'.$name.'</a></li>';
                }
                echo '
</ul>
Összesen <i>'
.$counter.'</i> adatbázis kilistázva.';
        break; // ez a break itt nem feltétlenül szügséges, mert nincs több elágazás, de biztos, ami biztos..
}
?>

A felhasznált utasítások:
- mysql_connect()
- mysql_select_db()
- mysql_query()
- mysql_fetch_row()
- mysql_fetch_assoc()
- mysql_real_escape_string()
- mysql_list_dbs()

Gaia

Írta: Gaia - 2006-12-14 18:17:11

* Nem vagy bejelentkezve!
* Nem töltheted le a segédlet forrását egyben!
* Nem szavazhatsz a segédletre!
* Nem írhatsz a segédlethez tartozó fórum témába!


Firith 2007-02-27 08:00:21
mit szólnátok egy SQL burkolóhoz?
Gaia 2006-12-15 21:27:51
A szint már inkább haladóknak szól, mint kezdőknek, de a kezdők is megérhetik az előző kettő átolvasásával..
American Tennis Challenge
10.000 €, pénzvisszatérítés, VIP út vár! Regisztrálj és <b>fogadj</b> most a bwin-en!
www.bwin.com

10.000 €-t keresni havonta
Hogyan keressünk pénzt könnyedén? Kezdjen pénzt keresni még ma!
www.penzt-keresni.net

Toyota készletakció
Auris Optimis modellek 1 000 000 Ft árelőnnyel! Részletek
www.toyota.hu

Élje át a valódi izgalmat
A valóság élményét nyújtja az új Samsung 3D TV, Nézze meg ön is:
www.samsung.com

Licitálj, és nyerj egy
feledhetetlen kávézást a kedvenc sztároddal! További részletek itt:
www.ellenallhatatlanmeghivas.hu

Hirdessen itt