Soul_Stealler
Registered
Тъй като много хора питат за определени неща свързани със заявките към база данни, създавам тази тема.
Първо трябва да се свържете към базата данни.
На $dbuser пишете потребителя. Попринцип на localhost e root
На $dbpasswd пишете паролата за потребителя ($dbuser). Ако няма парола може да се остави празно.
На $dbname пишете името на базата данни.
Това е началото. Сега е време за малко примери на заявки.
$query="SELECT * from ТАБЛИЦА where КОЛОНА='ДУМА'";
Търси в таблицата "ТАБЛИЦА" в колоната "КОЛОНА" за редове съдържащи думата "ДУМА"
Резултатите се изкарват с:
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
}
Пример:
Имате таблица "privmsg", колона "user" и търсите думата "baf".
----------------------------------------------------------------------------------------------------------------
Преброяване на редове.
Ще използваме заявката от горния пример:
$query="SELECT * from privmsg where user='baf'";
$result=mysql_query($query);
И после вместо да изкарваме резулатати - ще ги преброим.
$num=mysql_num_rows($result);
$num придобива стойноста на броя на редовете където в колоната user пише baf
Пример:
----------------------------------------------------------------------------------------------------------------
Изтриване на ред.
[/b]$query = "delete from privmsg where id='1'";
mysql_query($query);
В таблицата privmsg изтриват редовете където в колоната id пише 1
Може да се добави и допълнително условие.
Пример
$query = "delete from privmsg where id='1' and user='S_Soul'";
Тогава трие редовете където колоната id е 1 и колоната user е S_Soul
----------------------------------------------------------------------------------------------------------------
Добавяне на ред.
$query = "insert into users (user, pass) values ('S_Soul', '123456')";
mysql_query($query);
В таблицата users се добавя нов ред като в колона user се записва S_Soul, а в pass - 123456
----------------------------------------------------------------------------------------------------------------
Промяна на ред.
$query = "UPDATE users SET user = 'Our' WHERE id = '5'";
mysql_query($query);
В таблица users на реда където id стойноста му е 5 променя записа в колона user и го прави Our
----------------------------------------------------------------------------------------------------------------
Допълнителни условия.
------
Order by
Преведено на български означава - подреждане по.
В заявката добавяме order by КОЛОНА
В случая ще извади всички стойности от колоната user, НО ще са подредени според стойноста в колона id.
Пример:
Ако обаче след order by КОЛОНА се добави desc ще ги подреди по обратния ред.
----------------------------------------------------------------------------------------------------------------
LIMIT
С няколко думи - колко реда да се покажат.
Може да се направи и след колко реда да започне да се показват и колко на брой да са.
Ако нещо не сте разбрали нека го обясня в примери
Показване на първите 2 реда.
Ще го комбинирам с order by id за да може да се покажат подредени по id.
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from users order by id LIMIT 2";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
echo $red[id]." | ".$red[user]."<br>"; //Показва всичко от колона user. Разделя ги с <br>
}
Ще покаже:
Ако обаче на LIMIT се добави една запетая, т.е. LIMIT 1,2 - Ще пропусне 1 реди ще се покажат следващите 2.
Пример:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from users order by id LIMIT 1,2";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
echo $red[id]." | ".$red[user]."<br>"; //Показва всичко от колона user. Разделя ги с <br>
}
Ще покаже:
Също така може да се комбинира и с desc.
$query="SELECT * from users order by id desc LIMIT 1,2";
Ще пропусне 1 ред в обратен ред и ще покаже следвашите 2 реда.
----------------------------------------------------------------------------------------------------------------
Импортване на .sql файл.
Първо трябва да разясня нещо преди да дам скрипта.
Трябва да имате създадена база данни + таблица.
Скрипта който намерих работи засега само ако ги има тези неща създадени, и в бекъпа данните са подредени по следния ред:
Тоест - между различните стойности за колоните трябва да настиснете TAB. Не Space, а TAB !
Ето го кода:
По същия принцип може да се направи да се export-ват данни.
----------------------------------------------------------------------------------------------------------------
Засега толкоз.
Утре или в други ден ще напиша още.
Ако някой види някъде грешка - нека каже
Първо трябва да се свържете към базата данни.
Код:
$dbuser="";
$dbpasswd="";
$dbname="";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
На $dbuser пишете потребителя. Попринцип на localhost e root
На $dbpasswd пишете паролата за потребителя ($dbuser). Ако няма парола може да се остави празно.
На $dbname пишете името на базата данни.
Това е началото. Сега е време за малко примери на заявки.
$query="SELECT * from ТАБЛИЦА where КОЛОНА='ДУМА'";
Търси в таблицата "ТАБЛИЦА" в колоната "КОЛОНА" за редове съдържащи думата "ДУМА"
Резултатите се изкарват с:
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
}
Пример:
Имате таблица "privmsg", колона "user" и търсите думата "baf".
Код:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from privmsg where user='baf'";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
echo $red[msg]."<hr>"; //Показва всичко от колона msg където на същия ред в колона user пише baf. Разделя ги с <hr>
}
----------------------------------------------------------------------------------------------------------------
Преброяване на редове.
Ще използваме заявката от горния пример:
$query="SELECT * from privmsg where user='baf'";
$result=mysql_query($query);
И после вместо да изкарваме резулатати - ще ги преброим.
$num=mysql_num_rows($result);
$num придобива стойноста на броя на редовете където в колоната user пише baf
Пример:
Код:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from privmsg where user='baf'";
$result=mysql_query($query);
$num=mysql_num_rows($result);
Изтриване на ред.
[/b]$query = "delete from privmsg where id='1'";
mysql_query($query);
В таблицата privmsg изтриват редовете където в колоната id пише 1
Може да се добави и допълнително условие.
Пример
$query = "delete from privmsg where id='1' and user='S_Soul'";
Тогава трие редовете където колоната id е 1 и колоната user е S_Soul
----------------------------------------------------------------------------------------------------------------
Добавяне на ред.
$query = "insert into users (user, pass) values ('S_Soul', '123456')";
mysql_query($query);
В таблицата users се добавя нов ред като в колона user се записва S_Soul, а в pass - 123456
----------------------------------------------------------------------------------------------------------------
Промяна на ред.
$query = "UPDATE users SET user = 'Our' WHERE id = '5'";
mysql_query($query);
В таблица users на реда където id стойноста му е 5 променя записа в колона user и го прави Our
----------------------------------------------------------------------------------------------------------------
Допълнителни условия.
------
Order by
Преведено на български означава - подреждане по.
В заявката добавяме order by КОЛОНА
Код:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from users order by id";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
echo $red[user]."<br>"; //Показва всичко от колона user. Разделя ги с <br>
}
Пример:
Ще покаже:+---------- ----+
| id | user
|----------------|
| 1 | DiDo
| 2 | S_Soul
| 3 | baf
| 4 | Our
+---------------+
DiDo
S_Soul
baf
Our
Ако обаче след order by КОЛОНА се добави desc ще ги подреди по обратния ред.
$query="SELECT * from users order by id desc";Our
baf
S_Soul
DiDo
----------------------------------------------------------------------------------------------------------------
LIMIT
С няколко думи - колко реда да се покажат.
Може да се направи и след колко реда да започне да се показват и колко на брой да са.
Ако нещо не сте разбрали нека го обясня в примери
Показване на първите 2 реда.
Ще го комбинирам с order by id за да може да се покажат подредени по id.
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from users order by id LIMIT 2";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
echo $red[id]." | ".$red[user]."<br>"; //Показва всичко от колона user. Разделя ги с <br>
}
Ще покаже:
1 | DiDo
2 | S_Soul
Ако обаче на LIMIT се добави една запетая, т.е. LIMIT 1,2 - Ще пропусне 1 реди ще се покажат следващите 2.
Пример:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "MySQL Error.");
$query="SELECT * from users order by id LIMIT 1,2";
$result=mysql_query($query);
while ( $red = mysql_fetch_array( $result )){
echo $red[id]." | ".$red[user]."<br>"; //Показва всичко от колона user. Разделя ги с <br>
}
Ще покаже:
2 | S_Soul
3 | baf
Също така може да се комбинира и с desc.
$query="SELECT * from users order by id desc LIMIT 1,2";
Ще пропусне 1 ред в обратен ред и ще покаже следвашите 2 реда.
Our се пропуска тъй като id-то му е най-голямо.3 | baf
2 | S_Soul
----------------------------------------------------------------------------------------------------------------
Импортване на .sql файл.
Първо трябва да разясня нещо преди да дам скрипта.
Трябва да имате създадена база данни + таблица.
Скрипта който намерих работи засега само ако ги има тези неща създадени, и в бекъпа данните са подредени по следния ред:
Код:
1 654 123123
Ето го кода:
Код:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "Unable to select database");
$tableName = 'test';
$backupFile = 'C:/appserv/www/backup.sql'; //ВАЖНО - трябва да е зададен ЦЕЛИЯ път до файла !
$query = "LOAD DATA INFILE '$backupFile' INTO TABLE $tableName";
$result = mysql_query($query) or die (mysql_error());
По същия принцип може да се направи да се export-ват данни.
Код:
$dbuser="root";
$dbpasswd="";
$dbname="test";
mysql_connect(localhost,$dbuser,$dbpasswd);
mysql_select_db($dbname) or die( "Unable to select database");
$tableName = 'test';
$backupFile = 'C:/appserv/www/backup.sql'; //ВАЖНО - трябва да е зададен ЦЕЛИЯ път до файла !
$query = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";
$result = mysql_query($query) or die (mysql_error());
----------------------------------------------------------------------------------------------------------------
Засега толкоз.
Утре или в други ден ще напиша още.
Ако някой види някъде грешка - нека каже