Základy MySQL – část. 2 ( Spojení PHP a MySQL )

 2012-06-14 00:00:00
 Dmitry Burobin

V tomto článku spojíme MySQL s PHP. Ukážu Vám jak pracovat s MySQL databázi pomocí PHP s příkazy, které jsem Vám ukázal v prvním článku o MySQL. Taktéž spojení s databází.

Série článků:
1) Základy MySQL - část 1.
2) Základy MySQL – část. 2 ( Spojení PHP a MySQL )

Spojení

Zaprvé vytvoříme tabulku pokus v databázi test:

CREATE TABLE `pokus`(                      
`id` INT( 5 ) NOT NULL AUTO_INCREMENT,    
`name` VARCHAR ( 255 ) NOT NULL,          
`zprava` TEXT NOT NULL,                   
PRIMARY KEY(`id`)                          
)ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci

Druhá věc, kterou potřebujeme udělat pro práci s databází je připojit se k ní. K navázání spojení použíjeme funkce mysql_connect a mysql_select_db. Vytvořime nový soubor a uložíme ho jako config.inc.php, bude mít následující obsah:

<?php
$DBSERVER 'localhost'//server, který bude použít pro navázáníspojení s DB
$DBUSER 'root'//Váš mysql login, nejspíš je stejný jako u mě pro localhost, tudiž root
$DBPASS '****'//heslo, které jste zadavali při instalaci MySQL

$DB 'test'//databáze, s kterou budeme pracovat

//navazení spojení pomoci mysql_connect 
$link mysql_connect($DBSERVER$DBUSER$DBPASS)  or die("Could not connect: " mysql_error());
//vybírame databázi
mysql_select_db($DB$link) or die ('Can\'t use test : ' mysql_error());
//řekněme MySQL, že všechná data jsou ve formatu UTF-8
mysql_query("SET NAMES UTF8");
?>

Vložíme do tabulky nějaká data ( INSERT )

Pro operace s tabulkama se používa funkce mysql_query(). Teď vložíme do tabulky data, s kterýma budeme pracovat. Vytvořte si nový soubor ve stejné složce a uložte ho třeba jako index.php.

<?php
//Zaprvé načteme do něj náš soubor s připojením k DB. Použávam rád funkci require_once, 
//ale můžete taký použít include, require a další funkce.
require_once ("config.inc.php"); 

//Vložíme nějaka data: Pavel, Pavel_message a Lenka, Lenka_message
$query "INSERT INTO `pokus`(`name`,`zprava`) VALUES
 ('Pavel','Pavel_message'), 
('Lenka','Lenka_message')"
;
$result mysql_query($query);
if(!
$result) echo  mysql_error() . " - " mysql_errno();
else echo 
'Data jsou uspesne vlozena do tabulky';
?>
mělo by se Vám vyvést na obrazovku, že data jsou úspěšně vložena do tabulky.

Vybírání dat ( SELECT )

Teď vypíšeme obsah naše tabulky na obrazovku, k tomu abysme prošli celou tabulkou použíjeme funkci mysql_fetch_assoc() a cyklus while. Do stejného souboru index.php ( dále budeme pracovat jen s index.php ) doplňime:

<?php
//vyber všechno z tabulky pokus a seřaď podle id
$query_sel "SELECT * FROM `pokus` ORDER BY `id`";
//dalším řádkem řekněme, že $query_sel je MySQL příkazem.
//Jde to napsat i do jednoho řádku, ale já preferuji tuhle metodu 
$result_sel mysql_query($query_sel);
//jestli příkaz nebyl vykonán
if(!$result_sel
    {
//pak se vypiše chybné hlášení
        
echo  mysql_error() . " - " mysql_errno();
    }
//v případě, že chyba nenastla
    
else
    {
//projdeme celou tabulku pomoci cyklusu while a 
//každý řádek tabulky a vrátime asociativní pole 
        
while($row mysql_fetch_assoc($result_sel))
        {
//dopsal jsem značku p jen proto, aby se každý záznam vypisoval
//do samostatného bloku 
            
echo "<p>";
//konstrukce volání dat z tabulky je poměrně jednoduchá řádek['pole']
            
echo "Jmeno: " $row['name'] . "<br>";
            echo 
"Zprava: " $row['zprava'];
            echo 
"</p>";
        }
    }
?>

Výsledek by měl být následující:

Jmeno: Pavel
Zprava: Pavel_message

Jmeno: Lenka
Zprava: Lenka_message

Uděláme jěště jeden příklad, jelikož při každém načtení stránky se nám vkládájí stejná data do tabulky, projdeme celou tabulkou a zjístime zda v ní už jsou záznamy se jmény Pavel a Lenka. Jestli jsou tak už je do tabulky vkládát nebudeme a vyvedeme hlášení. Pro realizaci použíjeme ještě jednu funkci mysql_num_rows(), která vráci počet dotčených řádků. Najdeme tuhle část kódu:

<?php
//Vložíme nějaka data: Pavel, Pavel_message a Lenka, Lenka_message
$query "INSERT INTO `pokus`(`name`,`zprava`) VALUES
 ('Pavel','Pavel_message'), 
('Lenka','Lenka_message')"
;
$result mysql_query($query);
if(!
$result) echo  mysql_error() . " - " mysql_errno();
else echo 
'Data jsou uspesne vlozena do tabulky';
?>
a modifikujeme ji:
<?php
//Vyber všechno z tabulky pokus se jménem buď Pavel nebo Lenka 
$q_name "SELECT * FROM `pokus` WHERE `name` IN('Pavel','Lenka')";
$r_name mysql_query($q_name);
if(!
$r_name)
{
     echo  
mysql_error() . " - " mysql_errno();
}else{
//jestli počet dotčených řádků je nula jinými slovy
//jestli v tabulce není záznam u kterého pole name se rovná
//Pavel nebo Lenka, pak vložíme tyto záznamy
     
if(mysql_num_rows($r_name)==0)
     {
         
//Vložíme nějaka data: Pavel, Pavel_message a Lenka, Lenka_message
$query "INSERT INTO `pokus`(`name`,`zprava`) VALUES ('Pavel','Pavel_message'), ('Lenka','Lenka_message'), ('dsf','Lenkasdfmessage')";
$result mysql_query($query);
if(!
$result) echo  mysql_error() . " - " mysql_errno();
else echo 
'Data uspesne vlozena do tabulky';
//v případě, že už jsou vyvedemé hlášení
     
} else { echo 'Zaznam s timto jmenem uz je v tabulce'; }
}
?>
abyste si to mohli vyzkoušet tak vložte někam do souboru tento řádek:
<?php
//tento příkaz vyprázdní tabulku pokus
$q mysql_query("TRUNCATE TABLE `pokus`");
?>
nebo to můžete udělat ručně pomocí phpmyadmin.

Upravování dat ( UPDATE ) a odstraňování dat ( DELETE )

Ukážu Vám jenom příklady, protože k tomuto není třeba něco psat =)

<?php
/*Upravovani dat*/

$query_update "UPDATE `pokus` SET `zprava`='nova_zprava' WHERE `name`='Pavel'";
$result_update mysql_query($query_update);
//jestli příkaz nebyl vykonán
if(!$result_update
    {
//pak se vypiše chybné hlášení
        
echo  mysql_error() . " - " mysql_errno();
    }
//v případě, že chyba nenastla
    
else
    {
        echo 
"Zmena probehla uspesne";
    }
    
?>
<?php
/*Odstranovani dat*/

$query_delete "DELETE FROM `pokus` WHERE `name`='Pavel'";
$result_delete mysql_query($query_delete);
//jestli příkaz nebyl vykonán
if(!$result_delete
    {
//pak se vypiše chybné hlášení
        
echo  mysql_error() . " - " mysql_errno();
    }
//v případě, že chyba nenastla
    
else
    {
        echo 
"Zaznam vymazan uspesne";
    }
?>

Konfigurační soubor a Index.php: archiv
Systém Orphus
Napište komentář.
Celkem komenrářů(55)
Kamagra oral jelly review - 2018-03-30  10:42:59
 kamagra rendelГ©s budapest
kamagra oral jelly india online
kamagra oral jelly in australia
[url=http://kamagradxt.com/]kamagra online bestellen nederland[/url]
kamagra store info erfahrungen
http://kamagradxt.com/
kamagra 100mg oral jelly price in egypt
India kamagra 100 chewable tablets - 2018-03-28  23:50:11
 kamagra kopen waar
kamagra oral jelly amazon nederland texas
kamagra tablets 100mg reviews
[url=http://kamagradxt.com/]kamagra oral jelly wirkungszeit[/url]
kamagra kopen belgie
http://kamagradxt.com/
kamagra 100 gold upotreba
Effectiveness of cialis vs viagra vs levitra vs kamagra - 2018-03-28  09:46:50
 the sleep store kamagra
[url=http://kamagradxt.com/]buy kamagra 100mg[/url]
kamagra store
kamagra 100mg oral jelly review
kamagra forum hr
Kamagra oral jelly side effects - 2018-03-28  07:45:42
 kamagra bestellen utrecht
[url=http://kamagradxt.com/]buy kamagra 100 mg oral jelly[/url]
kamagra forum srpski
kamagra store erfahrung
kamagra london reviews
Kamagra oral jelly come si usa - 2018-03-28  07:45:28
 kamagra 100mg tablets australia
buy kamagra 100 mg oral jelly
kamagra oral jelly india price
[url=http://kamagradxt.com/]kamagra 100mg oral jelly price in egypt[/url]
kamagra oral jelly wirkung bei frauen
Kamagra 100 mg - 2018-03-28  05:24:05
 kamagra 100mg oral jelly
[url=http://kamagradxt.com/]kamagra 100mg oral jelly review[/url]
kamagra jelly
kamagra tablets 100mg reviews
kamagra oral jelly 100mg sildenafil citrate
JustSugs - 2017-12-21  23:45:29
 Low Cost Cialis Online Pet Doxycyline Where To Buy [url=http://costofcial.com]cialis[/url] Prix Kamagra Allemagne Nebenwirkungen Viagra Ohne Rezept Chemical Mechanism Forming Amoxicillin From Benzene Cialis Precio Lilly Acquistare Viagra In Sicurezza cialis online On Line Pharmacy France Viagra Generika Scilla Order Viagra Online Female Buy Canadian Viagra Online http://costofcial.com - cialis Claravis
Haroreab - 2017-12-04  15:31:09
 Viagra 100mg Tablets Retail Price Que Es Cialis Cialis Cialis Viagra Efficacite [url=http://cheapvia100mg.com]generic viagra[/url] Levitra Solubile Four Co
ers Pharmacy New Zealand Order Synthroid No Prescription
Haroreab - 2017-12-04  15:31:08
 Viagra 100mg Tablets Retail Price Que Es Cialis Cialis Cialis Viagra Efficacite [url=http://cheapvia100mg.com]generic viagra[/url] Levitra Solubile Four Co
ers Pharmacy New Zealand Order Synthroid No Prescription
Haroreab - 2017-12-04  15:31:07
 Viagra 100mg Tablets Retail Price Que Es Cialis Cialis Cialis Viagra Efficacite [url=http://cheapvia100mg.com]generic viagra[/url] Levitra Solubile Four Co
ers Pharmacy New Zealand Order Synthroid No Prescription
Haroreab - 2017-12-04  15:31:06
 Viagra 100mg Tablets Retail Price Que Es Cialis Cialis Cialis Viagra Efficacite [url=http://cheapvia100mg.com]generic viagra[/url] Levitra Solubile Four Co
ers Pharmacy New Zealand Order Synthroid No Prescription
Jeffpoonia - 2017-11-30  03:31:55
 Hot Flashes And Keflex Prescription Drugs Amphetamine [url=http://costofcial.com ]online pharmacy[/url] Cialis Esiste Il Generico
Jeffpoonia - 2017-11-30  03:31:54
 Hot Flashes And Keflex Prescription Drugs Amphetamine [url=http://costofcial.com ]online pharmacy[/url] Cialis Esiste Il Generico
Jeffpoonia - 2017-11-30  03:31:52
 Hot Flashes And Keflex Prescription Drugs Amphetamine [url=http://costofcial.com ]online pharmacy[/url] Cialis Esiste Il Generico
Jeffpoonia - 2017-11-30  03:31:51
 Hot Flashes And Keflex Prescription Drugs Amphetamine [url=http://costofcial.com ]online pharmacy[/url] Cialis Esiste Il Generico
Haroreab - 2017-11-22  07:55:12
 Asthma Inhalers Over The Counter Naturliche Levitra Cialis 5 Mg Benefici [url=http://levibuying.com]levitra[/url] Levitra Stripes Bestellen Abilify Via Mail Order Levitra Sirve Para La Mujer
Haroreab - 2017-11-21  14:44:53
 Macrobid Antibiotic In Inte
et Tablet Ed Meds Ove
ight Delivery Doxycycline On Line [url=http://levibuyus.com]buy levitra on line[/url] Viagra Y Cialis
Haroreab - 2017-11-21  14:44:52
 Macrobid Antibiotic In Inte
et Tablet Ed Meds Ove
ight Delivery Doxycycline On Line [url=http://levibuyus.com]buy levitra on line[/url] Viagra Y Cialis
Haroreab - 2017-11-21  14:44:51
 Macrobid Antibiotic In Inte
et Tablet Ed Meds Ove
ight Delivery Doxycycline On Line [url=http://levibuyus.com]buy levitra on line[/url] Viagra Y Cialis
Haroreab - 2017-11-21  14:44:50
 Macrobid Antibiotic In Inte
et Tablet Ed Meds Ove
ight Delivery Doxycycline On Line [url=http://levibuyus.com]buy levitra on line[/url] Viagra Y Cialis
[1] [2] [3] 
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.