Php mysql vytvorí tabuľku, ak neexistuje. Ako získať dáta z MySQL – návod pre nešamanov. Ponorenie sa do štruktúrovaného dopytovacieho jazyka

Samostatné články popisujú ďalšie základy práce s databázami a nielen MySQL.

Vytvorenie MySQL tabuľky cez PHP a ďalšie detaily

Teraz vám poviem podrobnejšie pre tých, ktorí sú zvedaví, kde a čo kam umiestniť.

Poďme si teda vytvoriť jednoduchú tabuľku, aby sme látku ľahšie pochopili bez zbytočného fanatizmu a šikovných slov. Nižšie je uvedený skript, ktorý možno ľahko spustiť na karte SQL ovládacieho panela phpmyadmin; všetko, čo musíte urobiť, je skopírovať text a kliknúť na tlačidlo spustiť:

CREATE TABLE `base_name`.`table_name` (`id` INT NULL AUTO_INCREMENT COMMENT "Identifikačné číslo záznamu", `text_` VARCHAR(500) NULL COMMENT "Textové pole", PRIMÁRNY KĽÚČ (`id`)) ENGINE=MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT="Experimentálna tabuľka";

Teraz je v našej databáze (DB) tabuľka s názvom `názov_tabuľky`

Niekoľko dôležitých poznámok.

  • Zvyknite si okamžite vypĺňať komentáre k poliam, umožní vám to vypestovať si zvyk komentovať a následne nebudú žiadne problémy pri vývoji veľkých a dynamických polí, pretože pochybujem, že si budete pamätať 10 000 políčok naspamäť a čo a prečo je každý z nich určený pre pole.
  • Zabudnite na všetky predtým existujúce kódovania a pracujte iba v UTF. sú pre ostatných zrejmé, prečítajte si informácie na odkaze.
  • Všetky polia píšte iba malými alebo veľkými písmenami. Bohužiaľ, PHP je náročné na veľkosť písmen a ak sa veľkosť písmen zmení, mnohé skripty a polia sa vám nemusia zobraziť, alebo sa môžu zobraziť, ale nesprávne.

Takto bude vyzerať úplne hotový kód HTML stránky:

Record id=".$row["id"]". Text: ".$row["text_"]."

"; )// /zatiaľ čo ?>

Problém s kódovaním UTF-8

Ako ukázala štatistika, ide o taký populárny problém, že som sa ho rozhodol zaradiť do samostatnej kapitoly. V skutočnosti však nie sú žiadne problémy, hneď po postupe pripojenia k databáze pridajte tri riadky zvýraznené nižšie, ktoré sú zodpovedné za prepínanie kódovania výstupných výsledkov, tu je príklad:

// nadviazanie spojenia so serverom (@ potlačenie možných chýb) @mysql_connect($sdd_db_host,$sdd_db_user,$sdd_db_pass); // prepnite na požadovanú databázu @mysql_select_db($sdd_db_name); // nastavenie kódovania používaného na odosielanie údajov z PHP skriptu do MySQL @mysql_query("set character_set_client="utf8""); // nastavenie kódovania, v ktorom sa údaje vypisujú z databázy MySQL do PHP skriptu @mysql_query("set character_set_results="utf8""); // nastavenie kódovania, v ktorom sa budú servisné príkazy odosielať na server @mysql_query("set collation_connection="utf8_general_ci"");

Mnoho ľudí používa linku:

Mysql_query("set NAMES utf8");

Funguje to, ale toto volanie bude v budúcich verziách MySQL odstránené. Toto je uvedené na webovej stránke MySQL, preto sa dôrazne neodporúča používať túto formu prepínania kódovania.

Ak ste úplne stratili rozum a rozhodli ste sa vrátiť k programovaniu v 90. rokoch a považujete za svoj ideál mŕtve kódovanie cp1251, tak jednoducho nahraďte UTF príslušnými hodnotami cp1251 A cp1251_general_ci.

Je to nepríjemné, ale je fakt, že ľudia, ktorí sa zaoberajú programovaním, najmä v poslednej dobe, úplne zabudli čítať sprievodnú dokumentáciu, kde je popísaná väčšina problémov.

Základné problémy a triky práce s tabuľkami v MySQL cez PHP

Tu je niekoľko trikov, s ktorými sa začiatočníci často stretávajú:

Prečo potrebujete znak @ pred príkazmi mysql?

Tento znak potláča výstup informácií o chybách na motore. Keďže článok je pre začiatočníkov, nebude to dlho trvať, kým sa dostanete k tomu správnemu, takže aby ste vás nezahltili množstvom zbytočných informácií a nenechali sa ničím rozptyľovať, uvádzam toto znamenie.

Čo sa dá robiť ťažšie?

Pre zložitejšie je na tejto stránke celý a popísané sú aj tie hlavné a najčastejšie, ktoré vám na prvý rok štúdia úplne postačia.

Ďakujeme diego_lott26 za upozornenie na chybu v kóde.

Tu je generická syntax SQL na vytváranie tabuliek MySQL:

CREATE TABLE názov_tabuľky(názov_stĺpca typ_stĺpca);

Teraz vytvoríme nasledujúcu tabuľku v databázových tutoriáloch.

Tutorials_tbl(tutorial_id INT NOT NULL AUTO_INCREMENT, tutorial_title VARCHAR(100) NOT NULL, tutorial_author VARCHAR(40) NOT NULL, submit_date DATE, PRIMARY KEY (tutorial_id));

Tu je niekoľko bodov, ktoré je potrebné objasniť:

  • Pole atribútu nie je NULL, používa sa, pretože nechceme, aby bolo null. Ak sa teda používateľ pokúsi vytvoriť záznam s hodnotou NULL, MySQL vyvolá chybu.
  • Pole atribútu auto_increment v MySQL nehovorí, že treba pokračovať a pridať ďalšie dostupné číslo do poľa ID.
  • Kľúčové slovo primárneho kľúča sa používa na označenie stĺpca ako primárneho kľúča. Na definovanie primárneho kľúča môžete použiť viacero stĺpcov oddelených čiarkami.

Vytváranie tabuliek z príkazového riadku:

Je ľahké vytvoriť tabuľku MySQL z MySQL>prompt. Na vytvorenie tabuľky použijete príkazy SQL create table.

Príklad:

Tu je príklad, ktorý vytvára tutorials_tbl:

Root@host# mysql -u root -p Zadajte heslo:******* mysql> použite NÁVODY; Databáza zmenená mysql> CREATE TABLE tutorials_tbl(-> tutorial_id INT NOT NULL AUTO_INCREMENT, -> tutorial_title VARCHAR(100) NOT NULL, -> tutorial_author VARCHAR(40) NOT NULL, -> submit_date DATE, -> PRIMARY_KEY) ); Dopyt je v poriadku, ovplyvnených 0 riadkov (0,16 s) mysql>

Vytváranie tabuliek pomocou skriptu PHP:

Na vytvorenie novej tabuľky v akejkoľvek existujúcej databáze musíte použiť PHP funkcie mysql_query(). Váš druhý argument odošlete správnemu príkazu SQL na vytvorenie tabuľky.

Príklad:

Tu je príklad vytvorenia tabuľky pomocou PHP skriptu:

Vytváranie tabuliek MySQL "; $sql = "CREATE TABLE tutorials_tbl(". "tutorial_id INT NOT NULL AUTO_INCREMENT, "." "tutorial_title VARCHAR(100) NOT NULL, "." "tutorial_author VARCHAR(40) NOT NULL, "." DATE, ". "PRIMÁRNY KĽÚČ (id_tutorial_id)); "; mysql_select_db("NÁVODY"); $retval = mysql_query($sql, $conn); if(! $retval) ( die("Nepodarilo sa vytvoriť tabuľku: " . mysql_error()); ) echo "Tabuľka bola úspešne vytvorená" ; mysql_close($conn); ?>

Ďalšie príklady:

VYTVORIŤ TABUĽKU, AK NEEXISTUJE `users` (`id` int(11) NOT NULL auto_increment, `role_id` int(11) NOT NULL predvolená "1", `username` varchar(25) collate utf8_bin NOT NULL, `password` varchar (34) collate utf8_bin NOT NULL, `email` varchar(100) collate utf8_bin NOT NULL, `banned` tinyint(1) NOT NULL predvolená "0", `ban_reason` varchar(255) collate utf8_bin predvolená hodnota NULL, `newpass` (34) collate utf8_bin predvolená hodnota NULL, `newpass_key` varchar(32) collate utf8_bin default NULL, `newpass_time` datetime default NULL, `last_ip` varchar(40) collate utf8_bin NOT NULL, `last_login` date time NOT 0 -00 00:00:00", "vytvorené" dátum a čas NOT NULL predvolené "0000-00-00 00:00:00", "upravená" časová pečiatka NOT NULL predvolená CURRENT_TIMESTAMP pri aktualizácii CURRENT_TIMESTAMP, PRIMÁRNY KĽÚČ (`id`)) ENGINE =InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ; //S dvoma kľúčmi: CREATE TABLE IF NOT EXISTS `ci_sessions` (session_id varchar(40) DEFAULT "0" NOT NULL, ip_address varchar(16) DEFAULT "0" NOT NULL, user_agent varchar(120) NOT NULL, last_activity int( 10) unsigned DEFAULT 0 NOT NULL, text user_data NOT NULL, PRIMARY KEY (session_id), KEY `last_activity_idx` (`posledná_aktivita`));

V predchádzajúcej lekcii sme sa naučili, ako vytvoriť pripojenie k databázovému serveru. Ďalším krokom je vytvorenie databázy a tabuliek.

Pozrime sa na dva spôsoby vytvorenia databázy a tabuliek. Prvým je spôsob, akým sa to robí v PHP, druhým je použitie priateľskejšej pomôcky PhpMyAdmin, ktorá je štandardom na väčšine webových hostiteľov a v XAMPP.

Ak hosťujete stránku s podporou PHP a MySQL, databáza už môže byť pre vás vytvorená a túto časť návodu môžete preskočiť a začať vytvárať tabuľky. Nezabudnite sa pozrieť na stránky pomocníka hostiteľa.

Vytváranie databáz a tabuliek pomocou PHP

Funkcia mysql_query sa používa na dopytovanie databázy MySQL. Žiadosti sú písané v jazyku Sštruktúrovaný Q uery L uhol (SQL). SQL je najpoužívanejší databázový dotazovací jazyk – nielen pre databázy MySQL – je veľmi logický a ľahko sa učí. V tejto a nasledujúcich lekciách sa dozviete všetko dôležité o SQL dotazoch.

Pri vytváraní databázy sa používa SQL dotaz CREATE DATABASE s nasledujúcou syntaxou:

VYTVORIŤ DATABÁZU názov db

Jednoduché a jednoduché, však!? Skúsme to vložiť do PHP skriptu:

Mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_query("VYTVORIŤ DATABÁZU mojadatabáza") alebo zomrieť(mysql_error()); mysql_close();

Najprv sa pripojíme k serveru MySQL. Potom vytvoríme databázu "mydatabase". Nakoniec zatvorte pripojenie k serveru MySQL.

Zatiaľ je to dobré... ale veci sa trochu skomplikujú, keď chceme vytvárať tabuľky v PHP. Pri vytváraní tabuliek používame SQL dotaz CREATE TABLE s nasledujúcou syntaxou:

VYTVORIŤ TABUĽKU názov tabuľky (column_name1 DATA_TYPE, column_name2 DATA_TYPE, column_name3 DATA_TYPE, ...)

názov_tabuľky A názov_stĺpca to sú, samozrejme, vhodné mená. DÁTOVÝ TYP používa sa na určenie typu údajov vložených do stĺpca. Tu sú najbežnejšie typy:

Celé čísla Desatinné čísla Krátky text do 255 znakov Bežný text do 65 535 znakov Dlhý text do 4 294 967 295 znakov Dátumy vo formáte RRRR-MM-DD Čas vo formáte HH:MM:SS Čas a dátum vo formáte RRRR-MM- DD HH:MM :SS

Vo všeobecnosti je to logické a pomerne jednoduché. Skúsme to vložiť do nášho príkladu:

Mysql_connect("mysql.myhost.com", "user", "sesame") or die(mysql_error()); mysql_select_db("ľudia") alebo zomrieť(mysql_error()); mysql_query("VYTVORIŤ TABUĽKU MyTable (id INT AUTO_INCREMENT, Meno CHAR, Priezvisko CHAR, Telefón INT, Dátum narodenia DÁTUM PRIMÁRNY KĽÚČ(id)")) Alebo zomrieť(mysql_error()); mysql_close();

V tomto príklade začneme pripojením k serveru MySQL. Potom pomocou funkcie vyberieme databázu „ľudí“. Ďalej vytvoríme tabuľku „osoby“ s 5 stĺpcami.

Všimnite si, že pre stĺpec „id“ určujeme, že stĺpec obsahuje čísla, a potom pridávame, aby sa tieto čísla automaticky zvýšili a zabezpečilo sa, že pre každý riadok sa vygeneruje jedinečné ID.

Na konci používame na nastavenie stĺpca „id“ ako primárny kľúč. Primárny kľúč jedinečne identifikuje každý záznam (/riadok) v tabuľke, čo je užitočné najmä pri následných aktualizáciách databázy.

Vytvorenie databázy a tabuliek pomocou phpMyAdmin

Užitočná môže byť možnosť vytvárať databázy a tabuľky priamo v PHP. Často je však jednoduchšie použiť phpMyAdmin (alebo akýkoľvek iný nástroj na správu MySQL), ktorý je štandardom na väčšine webových hostiteľov a XAMPP. Snímka obrazovky nižšie ukazuje, ako vytvoriť databázu a tabuľky pomocou phpMyAdmin.

Poznámka: Aktivuje sa adaptívna verzia stránky, ktorá sa automaticky prispôsobí malej veľkosti vášho prehliadača a skryje niektoré detaily stránky pre ľahšie čítanie. Príjemné sledovanie!

Dobrý deň, milí čitatelia blogu stránky na! V minulom článku sme sa pozreli na všetko o PHP, ale na konsolidáciu získaných teoretických materiálov navrhujem vykonať praktickú úlohu, ktorá je v každodennom živote vývojára webových stránok celkom bežná.

V našom obľúbenom CMS sa na vykreslenie akejkoľvek HTML tabuľky používajú slučky, iná cesta neexistuje. Napríklad produkt (smartfón) má vlastnosti: šírka, výška, hĺbka, farba, veľkosť displeja, kapacita pamäte atď. Všetky tieto vlastnosti sú zvyčajne vykreslené vo forme HTML tabuľky, je to veľmi pohodlné a dobré, vyzerá to hladko.

Aby sme pochopili, ako sa to robí, dnes vyriešime taký jednoduchý problém, ako je vytvorenie tabuľky násobenia:

Začnime

Najprv musíme prísť s a pochopiť algoritmus, ktorý budeme nasledovať. Z čoho pozostáva HTML tabuľka? Nechaj ma kresliť:

Ako môžeme vidieť z obrázku, tabuľkový tag sa vyskytuje len raz, takže musí byť jednoznačne mimo slučky. Opakujeme len riadok (tr) a bunky v ňom, nazývané aj stĺpce (td). To je všetko, u nás sa už nič nedeje.

Teraz sa musíte rozhodnúť, ktorá slučka je najlepšie použiť pre túto úlohu. Toto je klasická možnosť a najlepším riešením je slučka for, aj keď môžete použiť chvíľu, ak ste na to viac zvyknutí. Budeme však potrebovať nie jednu slučku, ale dve: prvá bude kresliť a počítať riadky (tr) a druhá stĺpce (td).

// počet riadkov, tr$cols = 20; // počet stĺpcov, td ozvena"

"; pre ($tr=1; $tr<=$rows; $tr++){ // v tejto slučke počítadlo $tr // sleduje počet riadkov a vždy sa rovná aktuálnemu číslu riadku. // Teda na začiatku $tr=1, keďže na začiatku máme 1 riadok, potom // pridávame zakaždým jeden, kým nedosiahneme zadaný počet // $riadkov. ozvena" "; pre ($td=1; $td<=$cols; $td++){ // v tejto slučke je počítadlo $td podobné // počítadlu $tr. ozvena" ";) echo"";) echo"
". $tr*$td."
"; ?>

Pripravený! výsledok:

V prvej slučke nakreslíme tr, s td vo vnútri. Tento kód by sa dal nazvať ideálnou šablónou na vykreslenie akejkoľvek tabuľky, no ja to viem urobiť ešte lepšie. Nie je potrebné zakaždým namáhať PHP a tlačiť na obrazovku (echo) po každej iterácii, je oveľa lepšie umiestniť všetko na jedno miesto (variabilné) a echo na samom konci, jedenkrát:

// počet riadkov, tr$cols = 20; // počet stĺpcov, td$table = "

"; pre ($tr=1; $tr<=$rows; $tr++){ $table .= ""; pre ($td=1; $td<=$cols; $td++){ $table .= "";) $table .="";) $table .="
". $tr*$td."
"; echo $tabuľka; // ozvena iba 1 krát ?>

Na tento účel sme použili operátora .= priradenie cez . Výsledok bude úplne rovnaký. To však nie je všetko. Musíme priniesť náš stôl tak, aby vyzeral ako úplne prvý obrázok v tomto článku. To znamená, že prvý riadok a stĺpec urobte tučným a dajte zelené pozadie. Tento výsledok možno dosiahnuť dvoma spôsobmi:

  • Použitie CSS3 (správny spôsob);
  • Používanie PHP (nesprávna metóda, ale budeme ju používať, keďže sa v tejto časti učíme PHP);

Takže urobme to pomocou PHP:

// počet riadkov, tr$cols = 20; // počet stĺpcov, td$table = "

"; pre ($tr=1; $tr<=$rows; $tr++){ $table .= ""; pre ($td=1; $td<=$cols; $td++){ if ($tr===1 or $td===1){ $table .= ""; // vypočítal prvý riadok alebo stĺpec)else( $table .=" "; // všetky bunky okrem buniek z prvého stĺpca a prvého riadku) ) $table .="";) $table .="
". $tr*$td."". $tr*$td."
"; echo $tabuľka; // ozvena iba 1 krát ?>

Krása:) Môžete zobraziť tabuľku aspoň 100 x 100. Hrajte sa, ako chcete, je to užitočné pre skúsenosti. Ďakujem za pozornosť a prajem pekný víkend!

Otvorte databázu. Na vytvorenie tabuľky potrebujete mať databázu, ktorá ju bude obsahovať. Databázu môžete otvoriť zadaním USE databázu na príkazovom riadku MySQL.

  • Ak si nepamätáte názov databázy, napíšte ZOBRAZIŤ DATABÁZY na zoznam databáz na serveri MySQL.
  • Ak ešte nemáte databázu, môžete si ju vytvoriť zadaním VYTVORIŤ DATABÁZU. Názov databázy nemôže obsahovať medzery.

Naučte sa základné typy údajov. Každý záznam v tabuľke je uložený ako špecifický dátový typ. To umožňuje MySQL interagovať s nimi rôznymi spôsobmi. Typy údajov, ktoré použijete, závisia od účelu vašej tabuľky. Existuje mnoho iných typov ako sú nasledujúce, ale môžete ich použiť na vytvorenie základnej použiteľnej tabuľky:

Vytvorte tabuľku. Ak chcete vytvoriť tabuľku z príkazového riadka, musíte vytvoriť všetky polia pomocou jedného príkazu. Tabuľky vytvárate pomocou príkazu VYTVORIŤ TABUĽKU nasledujú informácie o tabuľke. Ak chcete vytvoriť základný záznam zamestnanca, musíte zadať nasledujúci príkaz:

CREATE TABLE zamestnanci (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , priezvisko VARCHAR (20 ) , meno VARCHAR (20 ) , telefón VARCHAR (20 ), dátum narodenia DATE )

  • INT NOT NULL PRIMARY KEY AUTO_INCREMENT vytvorí číselné ID pre každého zamestnanca, ktorý sa pridá do záznamu. Toto číslo sa zakaždým automaticky zvýši. To vám umožňuje jednoducho odkazovať na zamestnancov prostredníctvom iných funkcií.
  • Hoci VARCHAR umožňuje zmenšiť veľkosť na základe zadaných údajov, môžete preň nastaviť maximum, aby ste zabránili používateľovi zadávať reťazce, ktoré sú príliš dlhé. Vo vyššie uvedenom príklade sú mená a priezviská obmedzené na 20 znakov.
  • Všimnite si, že záznam telefónneho čísla je uložený ako VARCHAR, takže aj znaky sú spracované správne.
  • Skontrolujte, či bola vaša tabuľka vytvorená správne. Po vytvorení tabuľky dostanete správu, že bola úspešne vytvorená. Teraz môžete použiť príkaz POPISOVAŤ aby ste sa uistili, že ste zahrnuli všetky polia, ktoré ste chceli, a že majú správne typy údajov. Vytočiť DESCRIBE databáza; a pozrite sa na zobrazený graf a skontrolujte štruktúru tabuľky.

    Vytvorte tabuľku pomocou PHP. Ak používate PHP na správu databázy MySQL cez webový server, môžete vytvoriť tabuľku pomocou jednoduchého súboru PHP. Predpokladá sa, že databáza už na serveri MySQL existuje. Ak chcete vytvoriť rovnakú tabuľku ako v kroku 3, zadajte nasledujúci kód a nahraďte informácie o pripojení tým, čo je pre vás relevantné:

    "Nepodarilo sa pripojiť k MySQL: ". mysqli_connect_error(); ) $sql = Zamestnanci CREATE TABLE (ID INT NOT NULL PRIMARY KEY AUTO_INCREMENT, priezvisko VARCHAR(20), meno VARCHAR(20), telefón VARCHAR(20), dátum narodenia DATE)“; if (mysqli_query ($connection, $sql)) ( echo "Zamestnanci tabuľky boli úspešne vytvorení"; ) else ( echo "Chyba pri vytváraní tabuľky: " . mysqli_error ($connection) ; ) ?>