Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ф-ция для нахождения элемента в базе MySQL, должна возвращать True или False 
:(
    Опции темы
HappyMan
  Дата 30.10.2004, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



Сабж + SomeFunction( 'people', 'women', 'name', 'alisa' )

'people '- название базы
'women' - название таблицы в базе
'name' - название поля в таблице :)
'alisa' - имя (данные), существование которого мы должны проверить.

Возвращает TRUE или FALSE (существует или нет)

З.Ы БУДЕМ СЧИТАТЬ ЧТО ПОЛЕ 'name' УНИКАЛЬНО.....

заранее спасибо :cool


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Secandr
Дата 31.10.2004, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



HappyMan А зачем такой изврат? Обычный селект чем не нравится?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Song
Дата 31.10.2004, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



HappyMan
т.е. ты хочешь внутри этой функции каждый раз подключаться к базе people ?


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Secandr
Дата 31.10.2004, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Связист
****


Профиль
Группа: Экс. модератор
Сообщений: 4043
Регистрация: 3.8.2003
Где: Russia, Volgograd

Репутация: 5
Всего: 39



Поясни задачу, где и для чего это применяться будет?


--------------------
Мышки плакали, кололись, но продолжали жрать кактусы (с) cisco
PM ICQ AOL   Вверх
Black Rabbit
Дата 31.10.2004, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 21.10.2004

Репутация: нет
Всего: 2



Действительно, почему бы тебе не воспользоваться SELECT-ом и функциейmysql_num_rows()
PM MAIL ICQ   Вверх
HappyMan
Дата 31.10.2004, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



ПОЯСНЯЮ!:

Song
да! т.к в функцию один раз написал и все! а потом просто нужные параметры укажываешь и она делает свое дело!


Black Rabbit и
Secandr

просто так легче! меньше кода! красивее выглядит.

Пример кода с этой ф-цией:
Цитата
if (SomeFunction( 'people', 'women', 'name', 'alisa' ) ) {echo "User with such name is already registered!"; } :)


Пример кода без этой функции:
Цитата

$hostname = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "people";

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbname) or die(mysql_error());
mysql_connect("$hostname","$username","$password");

$sql = "SELECT * FROM `women` WHERE $name = 'alisa'";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    $mRes = $row["name"];
}
mysql_free_result($result);

if ($mRes == "alisa" ) { echo "-----------" };


Вроде так.

Так как легче? А если учесть что мне нужно использовать эту ф-цию не один раз.......

Так есть такая фу-ция? Я бы сам написал, на чувствую если я напишу что потом..... Вобщем.... буду рад если какой-нить гуру напишет...................а не я ламо.......


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Ignat
Дата 1.11.2004, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Написать-то не проблема, вот только коннектиться каждый раз не стоит к базе.


--------------------
Теперь при чем :P
PM   Вверх
HappyMan
Дата 1.11.2004, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



Ignat
А что в этом такого? много ресурсов требует :p ? как тогда решить мою задачу?
Добавлено @ 19:38
ну чтобы тыщу раз этот кусок кода не писать.....


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Ignat
Дата 1.11.2004, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Пользоваться существующим коннектом.


--------------------
Теперь при чем :P
PM   Вверх
HappyMan
Дата 1.11.2004, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



Ignat
так у меня модулей много. Конект сохраняется для всех модулей?
Добавлено @ 20:54
т.е каждый раз заново не надо писать:
Цитата

$hostname = "127.0.0.1";
$username = "root";
$password = "";
$dbname = "people";

mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbname) or die(mysql_error());
mysql_connect("$hostname","$username","$password");


Один раз написал гденить(в модуле который загружается всегда) и все? или как?
Добавлено @ 20:56
Под "модулем" я понимаю ПХП Скрипт


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Ignat
Дата 1.11.2004, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Цитата(HappyMan @ 1.11.2004, 20:52)

Один раз написал гденить(в модуле который загружается всегда) и все?

Именно!
Если, он инклюдится к каждому скрипту. В противном случае можно использовать mysql_pconnect();


--------------------
Теперь при чем :P
PM   Вверх
HappyMan
Дата 1.11.2004, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



Ignat

Кул! :p

А так можно:
В модуле с функциями:

<?

Connect k Baze

?>

function a1 {
$sql="SELECT FROM....";
...
}

function a2 {
$sql="SELECT FROM....";
...
}

и получается в теле функции уже не нада коннектится каждый раз?
Добавлено @ 22:11
дык почему нежелательно к базе коннектится каждый раз? :stena


--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
Song
Дата 1.11.2004, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: 2
Всего: 4



Как-то так: (тестировать лень)

Код
function query($base, $tablename, $field, $param, $value, $host = 'localhost', $username = 'root', $pass = '') {

$cid = mysql_pconnect($host,$username,$pass);
if ( !mysql_select_db($base, $cid) ) return FALSE;
$query_id = mysql_query("SELECT ".$field." FROM ".$tablename." WHERE ".$param."=".$value,$cid);
return mysql_num_rows($query_id);
}


Раз ф-ия должна инициировать всю последовательность действий (начиная от подключения к СУБД и заканчивая запросом), то разумней использовать pconnect.

Это сообщение отредактировал(а) Song - 1.11.2004, 22:15


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
HappyMan
Дата 2.11.2004, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



Наконец-то нашел отличие! На всякий случай приважу сдесь:
Цитата

mysql_pconnect() работает аналогично mysql_connect() с двумя отличиями.

Во-первых, при соединении, функция пытается найти уже открытый (постоянный) указатель на тот же сервер с тем же пользователем и паролем. Если он найден, возвращён функцией будет именно он, вместо открытия нового соединения.

Во-вторых, соединение с SQL-сервером не будет закрыто, когда работа скрипта закончится. Вместо этого, оно останется рабочим для будущего использования (mysql_close() также не закрывает постоянные соединения)



--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
HappyMan
Дата 18.11.2004, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 347
Регистрация: 29.7.2004

Репутация: 2
Всего: 2



Song
Лучше так (ато не пашет):

Код

...
$query_id = mysql_query("SELECT * FROM `$tablename` WHERE $param='$value', $cid);
...



--------------------
Цитата
Желательно на 100%.
© Mal Hack
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.