Как сделать mysql базу данных


Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных



Создание таблицы в MySQL

Решение: Для примера создадим таблицу «country» для хранения названий стран и соответствующего им кода ISO (полагается что база данных «testbase» уже создана):

CREATE TABLE country ( country_id smallint(6) NOT NULL auto_increment, country_iso_code char(2) NOT NULL, country_name varchar(60) NOT NULL, PRIMARY KEY (country_id), UNIQUE country_id (country_id, country_iso_code, country_name), KEY country_id_2 (country_id, country_iso_code, country_name) );

Внесение данных в MySQL средствами

Теперь, занесем в нее немножко данных:

<?php // Ассоциативный массив где: // индекс=код ISO, // значение=страна $country=array(); $country['AF']='Afghanistan'; $country['AL']='Albania'; $country['DZ']='Algeria'; $country['AD']='Andorra'; $country['AO']='Angola'; $country['AQ']='Antarctica'; $country['AR']='Argentina'; $country['AM']='Armenia'; $country['AU']='Australia'; $country['AT']='Austria'; $country['AZ']='Azerbaijan'; $country['BS']='Bahamas'; $country['BH']='Bahrain'; $country['BD']='Bangladesh'; $country['BY']='Belarus'; $country['BE']='Belgium'; $country['BJ']='Benin'; $country['BM']='Bermuda'; $country['BT']='Bhutan'; $country['BO']='Bolivia'; $country['BA']='Bosnia-Herzegovinia'; $country['BW']='Botswana'; $country['BR']='Brazil'; $country['BN']='Brunei Darussalam'; $country['BG']='Bulgaria'; $country['BF']='Burkina Faso'; $country['BI']='Burundi'; $country['KH']='Cambodia'; $country['CM']='Cameroon'; $country['CA']='Canada'; $country['CV']='Cape Verde'; $country['CF']='Central African Republic'; $country['TD']='Chad'; $country['CL']='Chile'; $country['CN']='China'; $country['CO']='Colombia'; $country['KM']='Comoros'; $country['CG']='Congo'; $country['CR']='Costa Rica'; $country['HR']='Croatia'; $country['CU']='Cuba'; $country['CY']='Cyprus'; $country['CZ']='Czech Republic'; $country['DK']='Denmark'; $country['DJ']='Djibouti'; $country['DO']='Dominikanische Republik'; $country['EC']='Ecuador'; $country['EG']='Egypt'; $country['SV']='El Salvador'; $country['GQ']='Equatorial Guinea'; $country['EE']='Estonia'; $country['ET']='Ethiopia'; $country['FЦ']='Faroe Islands'; $country['FI']='Finland'; $country['FR']='France'; $country['GF']='French Guiana'; $country['PF']='French Polynesia'; $country['GA']='Gabon'; $country['GM']='Gambia'; $country['GE']='Georgia'; $country['DE']='Germany'; $country['GH']='Ghana'; $country['GI']='Gibraltar'; $country['GR']='Greece'; $country['GL']='Greenland'; $country['GP']='Guadeloupe'; $country['GT']='Guatemala'; $country['GN']='Guinea'; $country['GW']='Guinea-Bissau'; $country['GY']='Guyana'; $country['HT']='Haiti'; $country['VA']='Holy See'; $country['HN']='Honduras'; $country['HK']='Hong Kong'; $country['HU']='Hungary'; $country['IS']='Iceland'; $country['IN']='India'; $country['id']='Indonesia'; $country['IQ']='Irak'; $country['IR']='Iran (Islamic Republic of)'; $country['IE']='Ireland'; $country['IL']='Israel'; $country['IT']='Italy'; $country['CI']='Ivory Coast'; $country['JM']='Jamaica'; $country['JP']='Japan'; $country['JO']='Jordan'; $country['KZ']='Kazakhstan'; $country['KE']='Kenya'; $country['KP']='Korea (democratic Peoples Republic of)'; $country['KR']='Korea (Republic of)'; $country['KW']='Kuwait'; $country['LA']='Laos '; $country['LV']='Latvia'; $country['LB']='Lebanon'; $country['LS']='Lesotho'; $country['LR']='Liberia'; $country['LI']='Liechtenstein'; $country['LT']='Lithuania'; $country['LU']='Luxembourg'; $country['MO']='Macau'; $country['MG']='Madagascar'; $country['MW']='Malawi'; $country['MY']='Malaysia'; $country['MV']='Maldives'; $country['ML']='Mali'; $country['MT']='Malta'; $country['MQ']='Martinique'; $country['MR']='Mauritania'; $country['MU']='Mauritius'; $country['MX']='Mexiko'; $country['MD']='Modavia'; $country['MC']='Monaco'; $country['MN']='Mongolia'; $country['MA']='Morocco'; $country['MZ']='Mozambique'; $country['NA']='Namibia'; $country['NP']='Nepal'; $country['NL']='Netherlands'; $country['NC']='New Caledonia'; $country['NZ']='New Zealand'; $country['NI']='Nicaragua'; $country['NE']='Niger'; $country['NG']='Nigeria'; $country['NO']='Norway'; $country['PK']='Pakistan'; $country['PA']='Panama'; $country['PG']='Papua New Guinea'; $country['PY']='Paraguay'; $country['PE']='Peru'; $country['PH']='Philippines'; $country['PL']='Poland'; $country['PT']='Portugal'; $country['PR']='Puerto Rico'; $country['RO']='Romania'; $country['RU']='Russian Federation'; $country['RW']='Rwanda'; $country['SM']='San Marino'; $country['SA']='Saudi Arabia'; $country['SN']='Senegal'; $country['SC']='Seychelles'; $country['SL']='Sierra Leone'; $country['SG']='Singapore'; $country['SK']='Slovakia'; $country['SI']='Slovenia'; $country['SB']='Solomon Islands'; $country['SO']='Somalia'; $country['ZA']='South Africa'; $country['ES']='Spain'; $country['LK']='Sri Lanka'; $country['SD']='Sudan'; $country['SR']='Suriname'; $country['SZ']='Swaziland'; $country['SE']='Sweden'; $country['CH']='Switzerland'; $country['SY']='Syrian Arab Republic'; $country['TW']='Taiwan'; $country['TZ']='Tanzania'; $country['TH']='Thailand'; $country['MK']='The former Yugoslav Republic of Macedonia'; $country['TG']='Togo'; $country['TT']='Trinidad and Tobago'; $country['TN']='Tunisia'; $country['TR']='Turkey'; $country['UG']='Uganda'; $country['UA']='Ukraine'; $country['AE']='United Arab Emirates'; $country['GB']='United Kingdom'; $country['US']='United States'; $country['UY']='Uruguay'; $country['UZ']='Uzbekistan'; $country['VE']='Venezuela'; $country['VN']='Vietnam'; $country['YE']='Yemen'; $country['YU']='Yugoslavia'; $country['ZR']='Zaire'; $country['ZM']='Zambia'; $country['ZW']='Zimbabwe'; // Не забудте изменить! mysql_connect('localhost','',''); mysql_select_db('testbase'); while (list($key,$name)=each($country)) { $sql='INSERT `country` SET `country_iso_code`="'.$key.'", `country_name`="'.$name.'"'; $error=mysql_query($sql,$link); if (!$error) { echo '<pre>Ошибка ввода строки '.$key.':'.mysql_error($link).'</pre>'; // остановка работы скрипта die; } } echo 'Everything is nishtyak!'; ?>

Основа PHP функции

Теперь, если все прошло без ошибок :), можно приступить к главному. Для начала решим в каком виде мы хотели бы видеть дискриптор <select>? Положим что вам быть не раз придется решать подобную задачу, да и просто ради удобства выделим наш код в отдельную функцию, которая будет находится в отдельном файле и подключаться по мере необходимости.

Назовем ее незатейливо - «select»:

<!-- select.inc.php -->

<?php function select($result,$value_index=0,$text_index=1,$selected=1,$param=array()) // $result результат запроса SQL // $value_index индекс в массиве для значения value (необязательный) // $text_index индекс в массиве для текстового значения option (необязательный) // $selected индекс в массиве для выбранного значения option (необязательный) // $parametrs ассоциативный массив атрибутов дискриптора SELECT (необязательный) { echo '<select'; if (isset($param)) { // Добавляем переданные через массив атрибуты while (list($param_name,$param_value)=each($param)) {if ($param_value=='multiple')// Здесь, по необходимости, можно добавить обработку JS {echo ' '.$param_value; continue; } echo ' $param_name='.$param_value; } } echo '>'; while ($row=mysql_fetch_row($result)) {if ($row[$value_index]==$selected) {echo '<option value="'.$row[$value_index].' selected="selected">'; echo $row[$text_index]; echo '</option>'."\n"; } echo '<option value="'.$row[$value_index].'>'.$row[$text_index].'</option>'."\n"; } echo '</select>'; }

Тест PHP функции

Теперь оттестируем нашу функцию:

<!-- test_select.php -->

<?php require_once('select.inc.php');// Убедитесь, что оба файла находятся в одном каталоге $host='localhost';// Не забудте изменить! $user=''; $pass=''; $db='"testbase'; if (!$link=mysql_connect($host,$user,$pass)) {echo 'Не могу соедениться с MySQL'; die; } if (!mysql_select_db($db,$link)) {echo 'Не могу выбрать базу '.$db.'. Ошибка: '.mysql_error($link); die;// остановка работы скрипта } if (!$r=mysql_query('SELECT FROM country')) {echo 'Ошибка запроса '.mysql_error($link); die;// остановка работы скрипта }

Выборка из таблицы MySQL

Теперь в переменной $r находится результат выборки из таблицы «country». Важно заметить, что в результате могут быть задействованы множество полей таблицы (в нашем случае 3), так как мы полагаем, что запрос используется не только для генерации нашей менюшки, но еще для каких-то целей; а нам для <select>`а нужно только 2, поэтому в качестве параметров фунции могут передаваться также и номера полей. Помните, что после SQL запроса вида:

SELECT FROM table_name

В результате, поля будут располагаться так, как они были расположены в таблице при ее создании (В нашем случае порядок такой: country_id country_iso_code country_name) Так что перед тем как передавать эти параметры, убедитесь в том, что вы представляете себе структуру вашей таблицы, либо не используйте () а перечисляйте поля ручками :) Можно,также использовать функции mysql_list_fields(), mysql_num_fields(), mysql_field_name(). По умолчанию установлены данные из 1-го поля для значения value, из второго - для текстового значения option.

echo '<form>'; // Передаем атрибуты, для подробной информации читайте спецификацию $discriptor_param=array(name=>'select_1',size=>'5',multiple); // то есть, для значения value выводить строки из поля country_iso_code $value_index=1; // то есть, для текстового значения option выводит строки из поля country_name $text_index=2; // установить выбранным опцию, где value='RU' $selected='RU'; select($result,$value_index,$text_index,$selected,$discriptor_param); echo '<br /><br />'; // И еще разок: $discriptor_param=array(name=>'select_2'); // то есть, для значения value выводить строки из поля country_id $value_index=0; // то есть, для текстового значения option выводит строки из поля country_name $text_index=2; // установить выбранным опцию где value='136'; $selected='136'; // сбросим внутренний указатель результата mysql_data_seek($result,0); select($result,$value_index,$text_index,$selected,$discriptor_param); echo '</form>'; // на любителя mysql_free_result($result); // Также на любителя :) mysql_close($link); ?>

Можно также, доработать функцию и добавить в нее обработку переданного в качестве параметра JavaScript. Функция не совсем оптимальна, но главное, что она показывает как решать подобные задачи. Удачи!

Есть вопросы, замечания, дополнения? Пишите в комментариях.


Источник: http://sd-company.su/article/php/mysql_select


Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных

Как сделать mysql базу данных

Сейчас читают: