Войти

Показать полную графическую версию : phpmysql.


Страниц : [1] 2

slaine
23-03-2005, 00:09
hail.
Объясните я не пойму.
в
$db_connect = @mysql_connect($dblocation, $dbuser,$dbpassword);
что должно находится в переменой $dblocation, я так понял имя компьютера?
И, что в $dbuser, какой логин, логин для чего?
и здесь $dbpassword, что мне здесь писать, какой пароль, для чего?

Объясните пожалуцта, мне в одиночку разбираться трудновато,
я только вчера открыл книжку.

vadimiron
23-03-2005, 00:58
$dblocation: адрес базы данных (например айпи адрес)
$dbuser, $dbpassword - соответственно логин и пароль пользователя, чтобы в базу данных не каждый залезть смог бы, админ устанавливает пароли и раздаёт права пользователям
Насколько я понимаю, у вас база данных на локальной машине?? То есть дома??
Если так, то обычно достаточно $dblocation="localhost", а в $dbuser и $dbpassword - ничего не надо, то есть "", можно ещё попробывать в $dbuser написать "root" и никакого пароля.

slaine
23-03-2005, 02:00
А вот при таком коде:
<?
$dblocation ="127.0.0.1";
$dbname = "test";
$dbuser = "root";
$dbpassword = "";

if ($db_connect = mysql_connect($dblocation, $dbuser,$dbpassword)){
echo "OK";
}
?>
мне пишут вот это:

Fatal error: Call to undefined function mysql_connect() in E:\x\xxx.php on line 7

чё мне не делать?

Prisoner
23-03-2005, 08:46
Глядеть в php.ini на предмет включения модуля mysql. Ибо он, как говорится, имеет место наличия отсутствия. Или не подключен, или не вкомпилирован, или не настроен - все зависит от версии используемого интерпретатора.

slaine
23-03-2005, 11:58
Вот, что у меня написано в ini d php5.

[MySQL]

mysql.allow_persistent = On
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket =
mysql.default_host =
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off

slaine
23-03-2005, 16:02
Всё моё время уходит на насторйки, и не могу занятся программированием.
Может мне поставить "denwer", что скажете?

vadimiron
23-03-2005, 18:14
Я его поставил в первый же день и потом занялся сразу программированием :)
Просто знание, как там всё в сервере устроено по началу не нужно - так что если цель - научиться писать скрипты, то Денвер то, что нужно
А уже потом, написав солидное количество работающих строк, уже будет легче самому что то настраивать и изменять на сервере, так как придёт понимание
Кстати денвер - это русский Вариант, есть ещё и другие аналогичные пакеты (но попробовав Денвер, я сразу к нему привык и другие мне показались неинтересными - но то кому как....)

Dutchman Mihel
23-03-2005, 18:51
slaine

В пхп 5 поддержка mysql по умолчанию выключена. Чтобы включить в php.ini в разделе Dynamic Extensions убери ; перед строкой extension=php_mysql.dll. В разделе Paths and Directories должен быть прописан путь к extensions'ам. На всякий можно скопировать в php_mysql.dll в папку windows\system32. Должно работать.

slaine
31-03-2005, 19:20
Спасибо всем.

А, что значат вот такие вот команды:

id_forum int(6) not null auto_increment
pos int(6) default null
name varchar(10) not null
) TYPE=MyISAM;

Prisoner
31-03-2005, 20:43
Это кусок команды создания таблицы определенного типа. Каждая строка в скобках есть описание поля таблицы в формате имя тип атрибуты. Подробнее тут (http://dev.mysql.com/doc/mysql/en/create-table.html).

slaine
07-04-2005, 19:16
Спасибо.

А как мне вытащить из базы данных только последнее сообщение?
как будет выглядеть запрос?

Prisoner
07-04-2005, 21:13
Необходимо поле по которому будет производиться сортировка для выявления последней строки (строк). Это может быть автоинкрементное поле (ID) или же дата, в общем все что угодно из мысли "последние чего_то_там". Тогда так:
SELECT
field1, field2, field3, ...
FROM
table
ORDER BY
some_field
LIMIT
some_limit

Смысл: выбрать some_limit строк с необходимыми полями из таблицы table с сортировкой по полю some_field (необязательно из списка полей после SELECT). Причем сортировку необходимо указать в зависимости от нужд: по возрастанию или по убыванию.

slaine
15-04-2005, 16:21
спасибо всё прекрасно работает.
И ещё я хотел спрорсить как мне в таблице обнулить 'm_id int unique auto_increment' ?
я делаю запрос 'delete from table_name', а 'm_id int unique auto_increment остаётся' прежним.

Prisoner
16-04-2005, 08:39
ЕМНИП, TRUNCATE TABLE table_name - быстрое удаление всех записей, обнуление поля auto_increment и многое другое. Намного быстрее чем DELETE т.к. просто удаляет таблицу и воссоздает ее заново.

slaine
26-04-2005, 13:37
А как мне использовать данные из двух таблиц?
Например:
table1:
name

table2:
name

select table1.name table2.name from table1, table2;
-так правильно?
и как сделать их вывод на зкран в php?

Prisoner
26-04-2005, 14:08
Вопрос неполный (или же мне лично непонятный).Точнее неполное описание. Таблички (как представление некоторых сущностей) могут быть связанными, а могут и нет. Если первое, то:
SELECT
table1.some_field1, table1.some_field2, ... , table2.some_field1, table2.some_field2, ...
FROM
table1,
table2
WHERE
table1.relation_field = table2.relation_field

Условием в WHERE мы задаем связь по какому-то полю двух таблиц.
Если второй вариант, то обратите внимание на такую штуку запроса как JOIN.

slaine
26-04-2005, 15:35
В моей базе есть две таблицы:

ENTER:
======
m_id,
login,
passw.

LINKS:
======
m_id,
name,
mesg.

мне нужно вывести 'login' из ENTER и 'mesg' из LINKS.

$a = mysql_query(" ??? ");
while ($b = mysql_fetch_array($a)){
echo $b['login'];
echo $b['mesg'];
}

какой мне сделать запрос?

mar
26-04-2005, 18:20
Маленькая поправка:
таблица1 JOIN таблица2 ON условие
- то же, что и
SELECT что-то FROM таблица1, таблица2 WHERE условие

mar
26-04-2005, 18:23
slaine
В моей базе есть две таблицы:
ENTER:
======
m_id,
login,
passw.

LINKS:
======
m_id,
name,
mesg.

мне нужно вывести 'login' из ENTER и 'mesg' из LINKS.

если они связаны по m_id, то
SELECT e.login, l.mesg FROM ENTER e, LINKS l WHERE e.m_id = l.m_id
Если ни по чему не связаны, то бессмысленно

slaine
26-04-2005, 21:44
А если мне надо будет сделать так:



$a = mysql_query(" SELECT e.login, l.login FROM ENTER e, LINKS l WHERE e.m_id = l.m_id");

где в таблицах одинаковые столбы login.

то что мне писать здесь?



while ($b = mysql_fetch_array($a)){
echo $b['???'];
echo $b['???'];




© OSzone.net 2001-2012