|
|
|
| Народ помогите разобраться! Сляпал я код для проверки логина в БД. Но так как я еще толком ПХП не знаю прошу помощи: при большой БД скрипт виснет, может есть другой способ?
include "conf.php";//Соединяемся с БД
//поиск сходных логинов в таблице
$res=mysql_query("SELECT * FROM log WHERE login = $logain");
if($res){
echo "Такой логин уже есть";}
else {echo "Запись занесена";
//Добавление записи в таблицу
mysql_query("INSERT INTO log VALUES ($log, $pass,$e_mail)", $msconnect);
mysql_close($msconnect); //Закрыть подключение
|
| |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 18:02)
| |
include "conf.php";//Соединяемся с БД
//поиск сходных логинов в таблице
$res=mysql_query("SELECT * FROM log WHERE login = $logain");
$res = mysql_fetch_array($res);
if($res){
echo "Такой логин уже есть";}
else {echo "Запись занесена";
//Добавление записи в таблицу
mysql_query("INSERT INTO log VALUES ($log, $pass,$e_mail)", $msconnect); }
mysql_close($msconnect); //Закрыть подключение
|
пробуй) | |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 18:23)
| | А можно пояснить, как из за этого увеличится скорость поиска? | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 18:34)
| | Да никак неувеличиться, смотря с чем сравнивать. У вас там ошибочки были просто....
include "conf.php";//Соединяемся с БД
//поиск сходных логинов в таблице
$res=mysql_query("SELECT * FROM log WHERE login = $logain;");
$res = mysql_fetch_array($res);
if($res){
echo "Такой логин уже есть";}
else {echo "Запись занесена";
//Добавление записи в таблицу
mysql_query("INSERT INTO log VALUES ($log, $pass,$e_mail)", $msconnect); }
mysql_close($msconnect); //Закрыть подключение
|
Вы сначало проверте работоспособность этого.....
Насчет скорости зависит от таблицы....виснуть недолжно , это и так самое простое. | |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 18:39)
| | На счет ошибок не знаю, но код работал нормально. Просто я попробывал занести в БД 1000 записей и при запросе логина сервер выдавал тайм аут.
зы 1000 записей заносил в цикле не подумайте что в ручную :) | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 18:55)
| | 1000 записей для такого запроса это немного, недолжен он больше полуминуты это делать(конечно все от сервера зависит), если вышел тайм аут значит гдето чтото неправильно , скорея всего такое происходит не по причине неуспеваемости Mysql обработать всего 1000 записей а ошибке в коде.
Вы провиряли что стало с таблицей после скрипта?
И если нетрудно выложите код с циклом. | |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 19:04)
| | Трудно. Скрипт оставил на другом компе он выключен, а я в другом городе. | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 19:07)
| | Напишите новый.
include "conf.php";//Соединяемся с БД
//поиск сходных логинов в таблице
$a=mysql_query("SELECT xxx_поле_с_логином FROM xxx_таблица;");
while($b = mysql_fetch_array($a)){
$logain=$b[0];
$res=mysql_query("SELECT * FROM log WHERE login = $logain;");
$res = mysql_fetch_array($res);
if($res){
echo "Такой логин уже есть";}
else {echo "Запись занесена";
//Добавление записи в таблицу
mysql_query("INSERT INTO log VALUES ($log, $pass,$e_mail)", $msconnect); } }
mysql_close($msconnect); //Закрыть подключение
|
Вот пример цикла который добавляет пользователя с логином xxx_поле_с_логином из таблицы xxx_таблица если такого логина нет в таблице log. | |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 19:15)
| | Сейчас попробую, тока БД создам, а то все на том компе осталось. | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 19:24)
| | ага и таблицу xxx_таблица с полем xxx_поле_с_логином и внести туда сколько хотите записей | |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 19:27)
| | Заносит записи даже если есть совпадения | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 19:38)
| | тогда так
include "conf.php";//Соединяемся с БД
//поиск сходных логинов в таблице
$a=mysql_query("SELECT xxx_поле_с_логином FROM xxx_таблица;");
while($b = mysql_fetch_array($a)){
$logain=$b[0];
$res=mysql_query("SELECT * FROM log WHERE login = $logain;");
$res2 = mysql_fetch_array($res);
if($res2[login]!=""){
echo "Такой логин уже есть";}
else {echo "Запись занесена";
//Добавление записи в таблицу
mysql_query("INSERT INTO log VALUES ($log, $pass,$e_mail)", $msconnect); } }
mysql_close($msconnect); //Закрыть подключение
|
| |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 19:51)
| | Сейчас попробую | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 20:21)
| | Блина никак не получается.
Можа по другому как?
Нашел код
<?php
if(!$_Q = mysql_query("select template from TABLE_NAME where name = 'reg_mail' limit 1"))
{
exit(mysql_error());
}
list($template) = mysql_fetch_row($_Q));
?>
| пробывал подстроить под свой ни как, невров не хватает, замудохался.
Ну помогите, что ли!!!(пжалуста) | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 21:36)
| | все у вас должно работать
include "conf.php";//Соединяемся с БД
//поиск сходных логинов в таблице
$a=mysql_query("SELECT xxx_поле_с_логином FROM xxx_таблица;");
while($b = mysql_fetch_array($a)){
$logain=$b[0];
$res=mysql_query("SELECT * FROM log WHERE login = $logain;");
$res2 = mysql_fetch_array($res);
if($res2[login]!=""){
echo "Такой логин уже есть";}
else {echo "Запись занесена";
//Добавление записи в таблицу
$с=mysql_query("INSERT INTO log VALUES ($log, $pass,$e_mail);"); } }
mysql_close($msconnect); //Закрыть подключение
|
| |
|
|
|
|
|
|
|
для: tim333
(15.02.2008 в 21:42)
| | Ну ни как я блин голова кыпит
Тим333 помоги!
Вот что есть:
имя таблицы = log
3 поля (login, password, mail)
из формы регистрации приходят 3 переменные ($logain, $pass, $e_mail)
Можа ошибки в коде? Можа дело не в бабине...
Тим333 помоги!!! | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 21:59)
| | Что такое бабене?)
include "conf.php";
$res=mysql_query("SELECT count(*) FROM log WHERE login = '$logain';");
$res2 = mysql_fetch_array($res);
if($res2[0]>0){
echo "Такой логин уже есть";}else{
echo "Запись занесена";
//Добавление записи в таблицу
$с=mysql_query("INSERT INTO log VALUES ('$logain','$pass','$e_mail');");
}
mysql_close($msconnect); //Закрыть подключение
|
100% должно работать)
P.S там при добавлении в форму была переменая $log а не $logain.Возможно создавалась пустое поле......хотя хз. Должно все работать. | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 18:02)
| | Наверно вам надо следующее
<?php
include "conf.php";
$res=mysql_query("SELECT * FROM log WHERE login = '$logain'");
if(mysql_num_rows($res)>0){
echo "Такой логин уже есть";
}
else{
mysql_query("INSERT INTO log VALUES ('$log', '$pass','$e_mail')", $msconnect);
mysql_close($msconnect);
echo "Save Ok";
}
?>
|
| |
|
|
|
|
|
|
|
для: Faraon
(15.02.2008 в 22:03)
| | В независимости от того есть ли такой логин или нет пишет:Такой логин уже есть
И выдает ошибку в 5 строке (if(mysql_num_rows($res)>0){ ) | |
|
|
|
|
|
|
|
для: alex123434
(15.02.2008 в 22:11)
| | >И выдает ошибку в 5 строке (if(mysql_num_rows($res)>0){ )
И какую ошибку выдает?
P.S.
>В независимости от того есть ли такой логин или нет пишет:Такой логин уже есть
Без моего вопроса, в данном моменте могу сказать, что такой логин есть! | |
|
|
|
|
|
|
|
для: Faraon
(15.02.2008 в 22:27)
| | Ооооогромное спасибо все работает! :))))) | |
|
|
|