Почему я бросил вести этот сайт! Потому, что система ведет себя по-хамски по отношению к посетителям сайта, навязывая последним бесконечное количество баннеров-заглушек контента, особенно пришедшим с мобильных устройств!
Основы работы с базами данных SQL в PHP
DownLoad_Free

Основы работы с базами данных SQL в PHP - Архив

Нашли ошибку или
хотите что-то сообщить -
жмите Ctr+Enter Система Orphus



    [Ленточный вид форума] [Поиск] [RSS]



  • Страница 1 из 2
  • 1
  • 2
  • »
Архив » История мировых и локальных событий » История развития сайта » Основы работы с базами данных SQL в PHP (Памятка для себя и других чайников)
Основы работы с базами данных SQL в PHP
Дата: Пятница, 28.01.2011, 05:46 | Сообщение # 1
Группа: Администраторы
Сообщений: 1530
Подключение к БД. Запрос таблицы и прогон по таблице
-----------------------------

$host="localhost";
$bd_user="user";
$pass="pass";
$bd_name="bd_name";
$link = mysql_connect($host,$bd_user,$pass);
mysql_select_db($bd_name, $link) or die(mysql_error());
$tab="tab_name";

$query = "SELECT * FROM `".$tab."`";

$res = mysql_query($query, $link);
while($row = mysql_fetch_array($res)) {
echo $row["0"]; // выведет всю 1ю колонку таблицы
}

mysql_close ($link);

 
Дата: Пятница, 28.01.2011, 05:56 | Сообщение # 2
Группа: Администраторы
Сообщений: 1530
Запрос создания SQL таблицы онлайн:
-----------------------------------------------

mysql_query("CREATE TABLE `".$bd_name."`.`".$tab_name."` (
`1` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'id',
`2` TEXT NOT NULL COMMENT 'name',
`3` TEXT NOT NULL COMMENT 'title',
`4` INT NOT NULL COMMENT 'dop_num1',
`5` INT NOT NULL COMMENT 'dop_num2')
ENGINE = MyISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;");

--------------------------------------------------------
данный запрос создает таблицу из 5 полей(2 text+3 integer)

Удаление таблицы
делает команда DROP TABLE `".$tab_name."`

 
Дата: Пятница, 28.01.2011, 06:02 | Сообщение # 3
Группа: Администраторы
Сообщений: 1530
Запрос редактирования ячейки SQL таблицы онлайн:
------------------------------------------------

mysql_query("UPDATE `".$bd_name."`.`".$tab_name."` SET `2` = 'page1' WHERE `".$tab_name."`.`1` =1;");

------------------------------------------------
данный запрос присвоит ячейке по адресу (1-я строка, 2-я колонка) значение "page1"

 
Дата: Пятница, 28.01.2011, 06:06 | Сообщение # 4
Группа: Администраторы
Сообщений: 1530
Запрос вставки новой строки в SQL таблицу онлайн:
---------------------------------------------------------------------------

mysql_query("INSERT INTO `".$bd_name."`.`".$tab_name."` (`1`, `2`, `3`, `4`, `5`) VALUES (NULL, 'name', 'title', 'discr', 'tags');");

Запрос на удаление строки в SQL таблице онлайн:
---------------------------------------------------------------------------

mysql_query("DELETE FROM `".$bd_name."`.`".$tab_name."` WHERE `".$tab_name."`.`1` = 1"); // данный запрос удалит первую строку из таблицы

если мы добавляем в поле данные с кавычками и слэшами следует обернуть переменную(данные) в addslashes($html)
 
Дата: Пятница, 28.01.2011, 06:20 | Сообщение # 5
Группа: Администраторы
Сообщений: 1530
Сортировка SQL таблицы по возрастанию и убыванию
------------------------------------------------

$query = "SELECT * FROM `".$tab."` ORDER BY `".$tab_name."`.`1` ASC"; // по возрастанию по 1-й колонке

$query = "SELECT * FROM `".$tab."` ORDER BY `".$tab_name."`.`2` DESC"; // по убыванию по 2-й колонке

 
Дата: Пятница, 28.01.2011, 06:37 | Сообщение # 6
Группа: Администраторы
Сообщений: 1530
Ограничения на вывод результатов строк SQL таблицы

"SELECT * FROM `".$tab_name."` LIMIT 10"; //выведет первые 10 строк

"SELECT * FROM `".$tab_name."` LIMIT 0,10"; //выведет строки с 1й по10ю

"SELECT * FROM `".$tab_name." WHERE `".$tab_name."`.`2` %like% 'name' //выведет все строки, во 2-й ячейке которых приcутствует фрагмент "name"

 
Дата: Понедельник, 04.06.2012, 22:46 | Сообщение # 7
Группа: Администраторы
Сообщений: 1530
Новый(универсальный) метод подключения БД:

myDatabase="BD";
$username="user";
$password="pass";
$pdo = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);

-----------------------// подключение с защитой от ошибок
try {
$pdo = new PDO('mysql:host=localhost;dbname=myDatabase', $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
-----------------------// подключение с защитой от ошибок

$data = $pdo->query('SELECT * FROM myTable WHERE name = ' . $conn->quote($name));

/*
// выполнить действия с таблицей
$stmt = $pdo->exec('INSERT INTO someTable (`name`) VALUES('name')');
*/

foreach($data as $row) {
echo $row['name'];
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}

---------------------------------------------------
Хорошо описано в http://www.lux-d.ru/2011/01/pdo-php-data-objects-and-mysql/
 
Дата: Воскресенье, 07.10.2012, 07:13 | Сообщение # 8
Группа: Администраторы
Сообщений: 1530
Работа с LiteSQL

LiteSQL замечательна тем, что эта база хранится в файле и ее можно скачать по FTP, как любой другой файл, минусом является то, что править этот файл руками без специальных
программ невозможно. Только выполнением SQL запросов.

Создание Базы данных и таблицы в LiteSQL

$db = sqlite_open("sample.sqlite");
//создаем пустой файл базы данных
sqlite_close($db);

Создание таблицы и внесение в нее первой строки в LiteSQL

$db = sqlite_open("sample.sqlite");
$sql = "CREATE TABLE table (
id integer primary key,
pole1 text,
pole2 integer
);";
sqlite_query($db, $sql);
$sql = "INSERT INTO table VALUES(1,'Pole1',1)";
//в последующих строках первой ячейке присваиваем NULL, так как она самозаполняется
sqlite_query($db, $sql);
sqlite_close($db);

Добавление записи в таблицу LiteSQL

$db = sqlite_open("mydb.sqlite");
$sql = "INSERT INTO table VALUES(NULL,
'text', 'text',data,number)";
//устанавливаются значения для всех полей новой строки
sqlite_query($db, $sql);
sqlite_close($db);

Удаление строки(записи) из таблицы LiteSQL

$db = sqlite_open("mydb.sqlite");
$sql = "DELETE FROM table WHERE ID=[номер строки]";
sqlite_query($db, $sql);
sqlite_close($db);

Чтение таблицы LiteSQL

$db = sqlite_open("mydb.sqlite");
$sql = "select * from table order by ID desc";
$res = sqlite_query($db, $sql);

while ($row = sqlite_fetch_array($res)) {
echo $row['0']." ".$row['1']." и так далее ";
}
sqlite_close($db);

Пример сайта, работающего на sqlite http://54plus.ru/realty/
 
Дата: Четверг, 02.01.2014, 10:47 | Сообщение # 9
Группа: Администраторы
Сообщений: 1530
Запрос mySql на выбор случайной строки

select * from `table` order by RAND() limit 1

Поиск дубликатов в базе данных

SELECT id, COUNT(*) as n FROM my_table GROUP BY id HAVING n >1;

SQL запрос на загрузку(импорт) файла .cvs в базу данных

LOAD DATA local INFILE 'file.csv' INTO TABLE table
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(col1, col2, col3)

SQL запрос на сохранение(экспорт) таблицы в файл. csv

SELECT a,b,c FROM my_table
INTO OUTFILE 'file.csv'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
 
Дата: Среда, 26.03.2014, 15:16 | Сообщение # 10
Группа: Администраторы
Сообщений: 1530
<?php
//------------------------get_bd.php--------------------------------
$host="localhost";
$bd_user="bd_user";
$pass="pass";
$bd_name="bd_name";
$link = mysql_connect($host,$bd_user,$pass);
mysql_select_db($bd_name, $link) or die(mysql_error());
mysql_query("SET NAMES 'utf8'");
//-----------------------------------------------------------------------
//include("get_bd.php");

$tab="brends";
$query = "SELECT * FROM `".$tab."`";

//------------------------get_sql.php--------------------------------
$result = mysql_query($query, $link);
$posts = array();
while ($row = mysql_fetch_array($result)) {
$posts[] = $row;
}
mysql_close($link);
//-----------------------------------------------------------------------
//include("get_sql.php");

foreach ($posts as $post):

$id.="<li>".$post["id"]; // где $post["id"] значение текущей строки столбца данных("id") таблицы "tab_name"

endforeach;

echo $id;

?>
 
Дата: Вторник, 24.06.2014, 12:53 | Сообщение # 11
Группа: Администраторы
Сообщений: 1530
Копирование и авторедактирование данных поля таблицы в новый столбец в sql таблице

1. Создаем новое поле(new_column) в таблице(table)

2. Выполняем следующий запрос:
UPDATE `table` SET new_column = column

Пример более сложного запроса, который копируя данные в столбец `new_column`
заменяет все пробелы столбца `column` на запятые

UPDATE `table` SET new_column = replace(column," ",",");
 
Дата: Четверг, 07.08.2014, 14:28 | Сообщение # 12
Группа: Администраторы
Сообщений: 1530
Копирование строки таблицы в sql

insert into table1 select * from table1 where `id`=1
 
Дата: Среда, 17.09.2014, 10:16 | Сообщение # 13
Группа: Администраторы
Сообщений: 1530
Запрос: показать только уникальные значения строки(колонки) таблицы

Таблица street1

id/name/city
-------------------------------
1 Ленина  Москва
2 Ленина  Москва
3 Тургенева  Москва
4 Ленина  Новосибирск

Sql запрос

SELECT `name` FROM `test_street` WHERE `id_city`='Москва' group by `name`

Результат sql запроса
-------------------------------
Ленина
Тургенева
-------------------------------

Если хотим сохранить результаты sql запроса в таблицу(street2), делаем следующий sql запрос

insert into `street2` SELECT `id`,`name`,`city` FROM `street1` WHERE `city`='Москва' group by `name`

Примечание:
предварительно надо создать таблицу "street2"(руками или sql запросом) с полями - id/name/city
 
Дата: Среда, 17.09.2014, 11:49 | Сообщение # 14
Группа: Администраторы
Сообщений: 1530
Sql запрос на заполнение значений строки таблицы
значениями строки другой таблицы
по определенному условию:


Update `street`set id_name =
(select id_street from `street2` where ((street2.name = street.name) and (street2.id_city= street.id_city)) limit 1)
 
Дата: Среда, 17.09.2014, 12:15 | Сообщение # 15
Группа: Администраторы
Сообщений: 1530
sql запрос переписать записи поля автоинскримент(AUTO INCREMENT)
чтобы цифры шли по порядку


сначала удалаяем индексное поле запросом

ALTER TABLE `test_street2` DROP `id`

потом вставим новое индексное поле

ALTER TABLE `test_street2` ADD `id_street` INT NOT NULL AUTO_INCREMENT FIRST ,
ADD PRIMARY KEY ( `id` )
 
Архив » История мировых и локальных событий » История развития сайта » Основы работы с базами данных SQL в PHP (Памятка для себя и других чайников)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:


Copyright kachay.ucoz.org © 2008-2024Хостинг от uCoz
^ Наверх ^
Пригодилось!