Přehled nejjednodušších úkonů při práci php s databází MySQL

Odkaz na manuál dev.mysql.com

<?php
// globals.php  (tento soubor by měl být umístěn v nepřístupném adresáři)

$hostName "nejakysqlserver.com" ;
$userName "mujlogin" ;
$password "meheslo" ;
$databaseName "dbnazev" ;

$link=MySQL_pconnect($hostName$userName$password) or die ("Nepodařilo se spojení s databází.");
MySQL_select_db($databaseName$link) or die ("Nepodařilo se označit databázi.");

extract($_REQUEST,EXTR_SKIP); //získání proměnných ze superglobálního pole
?>
____________________________________________________________________________________

<?php
//vytvorTb.php

require("globals.php") ;

$vytvortb "CREATE TABLE mojetb(
    endatum INT(11),
    datum VARCHAR(20),
    autor VARCHAR(100) BINARY NOT NULL,
    celyobsah MEDIUMTEXT,
    constraint mojetb PRIMARY KEY(autor,celyobsah)
)" 
;
//MEDIUMTEXT či VARCHAR je case insensitivní pro vyhledávání,
//MEDIUMBLOB (binární) či VARCHAR BINARY je case sensitivní (to už dodatečně zpravidla nelze změnit na ASCII)
//constraint mojetb PRIMARY KEY(autor,celyobsah) - zabrání duplikování řádků se stejným autorem i dílem.
//rowid INT AUTO_INCREMENT PRIMARY KEY - automaticky se generuje číslo řádku (nepřečísluje se pak při vymazání některých řádků)

if (MySQL_Query($vytvortb)) echo "Tabulka mojetb vytvořena"; else exit("Tabulka mojetb nevytvořena: ".mysql_error());
?>
____________________________________________________________________________________

<?php
//pridejRadek.php

require("globals.php") ;
$endatum date('U');

MySQL_Query("INSERT into mojetb(endatum, datum, autor, celyobsah) values('$endatum','$datum', '$autor', '$celyobsah')") or die ("Chyba při zpracování dotazu");
/// Pokud jsou nastaveny  magic_quotes_gpc is na "on", přidávají se automaticky pro data zaslaná v post či get backslashe před: jednoduché a dvojité uvozovky, backslashe a null.
/// V ostatních případech (vypnuté magic_quotes_gpc, proměnná získaná ze scriptu) je třeba vkládaná data opatřit addslashes(), ve výpisu pak stripslashes() a  ev.: $str = str_replace("%","%%",$str); ev. i ošetřit podtržítka _.
?>
____________________________________________________________________________________

<?
//pridejRadky.php

require("globals.php") ;

$filename "anglicko-cesky.txt";
$pole file ($filename);
while (list (, 
$line) = each ($pole)) {
list(
$cs,$en) = explode("=",$line);
$cs addslashes($cs);
$en addslashes($en);
MySQL_Query("INSERT into slovnik(cs,en) values('$cs','$en')") or die ("Chyba při zpracování dotazu: ".mysql_error());
}

echo 
"hotovo";
 
?>
____________________________________________________________________________________

<?php
//zmenRadek.php

require("globals.php") ;

MySQL_Query("UPDATE mojetb SET datum='$datum', autor='$autor', celyobsah='$celyobsah'
             WHERE endatum LIKE '$endatum'"
) or die("Chyba při zpracování dotazu"); //pokud je endatum číslo, pak endatum = $endatum
?>
____________________________________________________________________________________

<?php
//vypisData.php

require("globals.php");

$sel MySQL_Query("SELECT * FROM mojetb ORDER by cas DESC");//vybere vše   // odstranit duplicity: "SELECT DISTINCT * FROM

echo "<h4>".mysql_result($sel,0)."</h4>";//vypíše první položku prvního (tj. nultého) řádku
mysql_data_seek($sel0); //vrátí se znovu na nulu, jinak by se po každé iteraci přešlo na další řádek

echo "<h4>".mysql_result($sel,0,"autor")."</h4>";//vypíše položku  autor z prvního (tj. nultého) řádku
mysql_data_seek($sel0); //vrátí se znovu na nulu

//vypíše všechny řádky:
while ($polozka mysql_fetch_assoc($sel)){  //mysql_fetch_assoc() - associativní pole, podobné jsou mysql_fetch_row() - číselné pole, a mysql_fetch_array() - oboje
echo '<input value="'.htmlspecialchars($polozka[autor]).'"><br>';
echo 
'<textarea>'.htmlspecialchars($polozka[celyobsah])."</textarea>";
}
?>
____________________________________________________________________________________

<?php
//search.php

require("globals.php") ;

$oznac MySQL_Query("
 SELECT endatum,autor,celyobsah
 FROM mojetb
 WHERE celyobsah LIKE '%$vyraz%' OR autor LIKE '%$vyraz%'
 ORDER BY endatum DESC
 LIMIT $zacatek,$pocetnastranku
"
)  or die("Chyba při zpracování dotazu");  // % nahrazuje libovolnou skupinu znaků, _ nahrazuje jeden libovolný znak

echo 'Nalezeno <b>'.MySQL_num_rows($oznac).'</b> záznamů.<br>';

while (
$polozka mysql_fetch_array($oznac)){
echo 
'<li><a href="stranka.php?ed='.$polozka[endatum].'">'.$polozka[autor].'</a></li>'."\n";
}

?>
____________________________________________________________________________________

<?
//propojeniDvouTabulek.php

require("globals.php") ;

$sel MySQL_Query("
SELECT mojetb.jmeno, mojetb2.dilo
FROM mojetb, mojetb2
WHERE mojetb.spolecne = mojetb2.spolecne
AND mojetb.spolecne LIKE 'hrabal'
);

echo 
"<h4>".mysql_result($sel,0)."</h4>";
mysql_data_seek($sel0); //vrátí se znovu na nulu
 
while ($polozka mysql_fetch_array($sel)){
echo 
$polozka[jmeno].": ";
echo 
$polozka[dilo]."<br>";
}
?>
____________________________________________________________________________________

<?php
//dalsiDotazy.php

require("globals.php") ;

if (
MySQL_Query"TRUNCATE TABLE slovnik")) echo "Tabulka vyprázdněna"; else exit("Tabulka nevyprázdněna: ".mysql_error());; //vyprázdní tabulku
if (MySQL_Query"DROP TABLE IF EXISTS slovnik")) echo "Tabulka smazána"; else exit("Tabulka nesmazána: ".mysql_error());; //smaže tabulku
if (MySQL_Query"ALTER TABLE `slovnik2` CHANGE `en` `en` VARCHAR( 100 ) NOT NULL ,
CHANGE `cs` `cs` VARCHAR( 100 ) BINARY NOT NULL "
)) echo "Sloupec změněn"; else exit("Sloupec nezměněn: ".mysql_error());; //změní sloupec
if (MySQL_Query"DELETE FROM slovnik WHERE tensloupec = `sloup`")) echo "Řádek smazán"; else exit("Řádek nesmazán: ".mysql_error());; //smaže řádek;
if (MySQL_Query"ALTER TABLE `mojetb` ADD `novysloup` VARCHAR( 3 ) NOT NULL AFTER `nejakysloup`")) echo "Sloupec přidán"; else exit("Sloupec nepřidán: ".mysql_error()); //přidá sloupec;
if (MySQL_Query"ALTER TABLE `mojetb` DROP `novysloup` ")) echo "Sloupec smazán"; else exit("Sloupec smazán: ".mysql_error()); //smaže sloupec;
MySQL_Query"UPDATE mojetb SET sloupec = REPLACE (sloupec,`neco`, `zaneco`)"); //nahradí slova ve sloupci;
MySQL_Query"ALTER TABLE mojet ADD PRIMARY KEY (rok, mesic, den, hodina); "); //primární klíč (zabrání duplicitám řádků);
MySQL_Query("ALTER TABLE mojet MODIFY COLUMN jeden char(3) not null AFTER jiny" );  //změní pořadí slopuců
MySQL_Query("SELECT LENGTH(`neco`) AS neco FROM `tabulka` WHERE `ID` LIKE mysql_real_escape_string($_REQUEST[zaznam]) ");

//
$celkem MySQL_Query("SELECT SUM(hodnota) FROM mojetb"); //suma
$suma mysql_result($celkem,0);
//
$pocet MySQL_Query("SELECT COUNT(*) AS hodnota FROM mojetb"); //počet prvků
$count mysql_result($pocet,0);

MySQL_Query"SELECT hlasu1+hlasu2+hlasu3+hlasu4+hlasu5+hlasu6 AS hlasu FROM ankety ORDER BY hlasu"); //sečte sloupce v řádku

MySQL_Query"SELECT neco FROM  $tableName  WHERE neco REGEXP '[il]{2}' ");// regulární výrazy

MySQL_Query("SELECT `slovo` AS oboje FROM novaslova UNION SELECT `slovo` AS oboje FROM kratkaslova ORDER BY RAND()"); // ze dvou tabulek  a náhodně seřadit
?>
____________________________________________________________________________________

<?php
//fulltextoveVyhledavani.php

require("globals.php") ;

$oznac MySQL_Query("SELECT * FROM $tableName WHERE MATCH(DESCRIPTION) AGAINST('požádání' IN BOOLEAN MODE)")  or die(mysql_error());

echo 
'Nalezeno <b>'.MySQL_num_rows($oznac).'</b> záznamů.<br>';

while (
$polozka mysql_fetch_array($oznac)){
echo 
'<li><a href="cz.php?st='.$polozka[nazevascii].'">'.$polozka[nazev].'</a></li>'."\n";
}
// IN BOOLEAN MODE - v tomto případě nemusí být vytvořen fulltext.
// toto umožňuje vyhledávání s operátory +, -, "", *, <, >, (). V případě vytvořeného fulltextu lze řadit výsledky dle počtu v jednotlivých stránkách, hledání je rychlejší, avšak ukládání do DB pomalejší.
?>

____________________________________________________________________________________
Odkazy na: Fultext 1 Fultext 2 Fultext 3