Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Выборка данных из таблицы mysql

Ответить
Настройки темы
Выборка данных из таблицы mysql

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте, уважаемые завсегдатые этого форума.
Есть сайт квест игры Zomby day. Для участия нужна регистрация участников( самая примитивная). И когда человек регистрируется, на e-mail, а так же SMS отправляется номер участника. Номер это id. Только есть одна проблема.
Как извлечь id из базы и вставить в ссылку.
PHP код: Выделить весь код

<?php 

header
('Content-Type: text/html; charset=utf-8'); 
require_once 
'lib/Zelenin/smsru.php'
$sms = new Zeleninsmsrublah blah blah ); 
//заносим введенный пользователем логин в переменную $surname, если он пустой, то уничтожаем переменную 
if (isset($_POST['surname'])) { $surname $_POST['surname']; if ($surname == '') { unset($surname);} }  
if (isset(
$_POST['name'])) { $name $_POST['name']; if ($name == '') { unset($name);} }  
if (isset(
$_POST['last_name'])) { $last_name=$_POST['last_name']; if ($last_name =='') { unset($last_name);} } 
if (isset(
$_POST['tel'])) { $tel=$_POST['tel']; if ($tel =='') { unset($tel);} } 
if (isset(
$_POST['mail'])) { $mail=$_POST['mail']; if ($mail =='') { unset($mail);} } 

//$email=$_POST[email]; //ТУт полЬзоВатель вВел ЕМАил 
//$name=$_POST[name]; //Тут польЗоватеЛь написал имя 
//$perference=$_POST[perference]; // ТУт Что то ещё =) 
//$q="insert into apple values('$n','$name','$email','$perference')"; 

if (empty($surname) or empty($name) or empty($last_name) or empty($tel) or empty($mail)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт 

exit (
"Вы ввели не всю информацию, венитесь назад и заполните все поля!"); 

//если логин и пароль введены,то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести 
$surname stripslashes($surname); 
$surname htmlspecialchars($surname); 

$last_name stripslashes($last_name); 
$last_name htmlspecialchars($last_name); 

$name stripslashes($name); 
$name htmlspecialchars($name); 

//$tel = stripslashes($tel); 
//$tel = htmlspecialchars($tel); 

$mail stripslashes($mail); 
$mail htmlspecialchars($mail); 

//удаляем лишние пробелы 
$surname trim($surname); 
$name trim($name); 
$last_name trim($last_name); 
//$tel = trim($tel); 
$mail trim($mail); 


// подключаемся к базе 
include ("bd.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь  

//проверка на существование пользователя с таким же логином 
//$result = mysql_query("SELECT id FROM users WHERE surname='$surname'",$db); 
//$myrow = mysql_fetch_array($result); 
//if (!empty($myrow['id'])) { 
//exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин."); 
//} 

// если такого нет, то сохраняем данные 
$result2 mysql_query ("INSERT INTO users (surname,name,last_name,tel,mail) VALUES('$surname','$name','$_lastname','$tel','$mail')"); 

// Проверяем, есть ли ошибки 
if ($result2=='TRUE'

echo 
"Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>"


else { 
echo 
"Ошибка! Вы не зарегистрированы."
     } 

// вот тут мне и нужна помощь 


$result mysql_query("SELECT tel FROM users WHERE tel = $tel",$db); //извлекаем из базы все данные о пользователе с введенным логином 
$myrow mysql_fetch_array($result);      


//$sms->sms_send( $tel, 'Ваш номер:'.$id1.'. Ждем вас:)' ); 



$result mysql_query("SELECT tel FROM users "); 
echo 
"$result"
echo 
"nghfgd"
echo 
$result->insert_id
?>


Отправлено: 10:52, 11-08-2013

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата vinbongun:
Номер это id. Только есть одна проблема.
Как извлечь id из базы и вставить в ссылку. »

Вас интересует ID добавленной записи?

Вы вставили в базу данные: INSERT INTO users (surname,name,last_name,tel,mail) VALUES('$surname','$name','$_lastname','$tel','$mail')" возьмите и сделайте селект по всем введённым полям - по идее должен вывалиться нужный вам ID. Но если вы не сделали ни одно из этих полей ключевым то никто не запрещает ещё раз создать пользователя с такими данными. Задумайтесь над этим.

Ещё в SQL есть запрос, возвращающий последний созданный индекс. Но опять же нужно будет продумать механизм транзакции чтобы не вернуть другой, только что созданный ID.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:42, 12-08-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Спасибо Tonny_Bennet, что ответили на мой вопрос.
Только я очень плохо разбираюсь с sql запросами. И поэтому не особо понял, что нужно сделать.
Не могли бы Вы помочь. Нужно что бы когда человек регистрировался, ему отсылалось сообщение с его id. За это отвечает такая строка:
PHP код: Выделить весь код

$sms->sms_send$tel'Ваш номер:'.$id1.'. Ждем вас:)' ); 


И вот как то нужно передать id человека в сообщение. Подскажите пожалуйста как?

Отправлено: 06:34, 13-08-2013 | #3


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


vinbongun, на php не писал уже несколько лет. Специфика вашей базы мне неизвестна... так что пишу как бы я это делал.

У вас должно быть установлено соединение с базой, и должна быть переменная возвращающая то-ли ID этого соединения то ли ещё что-то подобное. Т.к. вы можете одновеременно из скрипта соединяться и отправлять запросы в разные базы в каждом запросе нужно указать эту ссылку. У меня это переменная $link.

Код: Выделить весь код
define(database,"base_of_web_site");// База данных
$link = mysql_connect(db_ip_port, login, password) or die("Не могу соединиться");
mysql_select_db(database, $link);
mysql_query("SET NAMES 'cp1251'"); // выбираем кодировку

Дальше всё просто: текст запроса, команда запроса(текст, ссылка на подключение к базе, преобразование результата ответа в массив.

Код: Выделить весь код
$query= "SELECT * FROM users WHERE surname=".$surname." AND name=".$name." AND last_name=".$_lastname." AND tel=".$tel." AND mail=".$mail.";"

$result = mysql_query($query, $link);
$row = mysql_fetch_array($result)
     //Нужный вам ID ниже.

        $id=$row['id']
В тексте запроса мог ошибиться с расстановкой кавычек.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Последний раз редактировалось Tonny_Bennet, 13-08-2013 в 10:22. Причина: Случайно отправил недописанное сообщение

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:15, 13-08-2013 | #4


Аватара для Habetdin


Автор проектов


Сообщения: 3650
Благодарности: 1499

Профиль | Сайт | Отправить PM | Цитировать


vinbongun, попробуйте так:
PHP код: Выделить весь код

$result mysql_query("SELECT id,tel FROM users WHERE tel = $tel",$db);
$myrow mysql_fetch_array($result);

$sms->sms_send$myrow['tel'], 'Ваш номер:'.$myrow['id'].'. Ждем вас:)' ); 


PHP код: Выделить весь код

$result mysql_query("SELECT tel FROM users WHERE tel = $tel",$db);
//извлекаем из базы все данные о пользователе с введенным логином 

Неверно. Если нужно всё - вместо SELECT tel пишем SELECT *, а в вашем коде извлекается лишь значение поля tel
(странный вообще запрос - «мне нужен tel юзера с tel=%tel»)

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Последний раз редактировалось Habetdin, 13-08-2013 в 13:58. Причина: Добавлено: Про оригинальный код

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:51, 13-08-2013 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Ребят. Большое спасибо за помощь. Но я ничего не понимаю .
Помогите пжл написать уже действующий код. Возможно нужно переписать так как Вам удобно. Лишь бы это работало.
Заранее благодарен

Отправлено: 17:02, 13-08-2013 | #6


Аватара для Habetdin


Автор проектов


Сообщения: 3650
Благодарности: 1499

Профиль | Сайт | Отправить PM | Цитировать


vinbongun, вставьте в свой код после "// вот тут мне и нужна помощь" код из поста #5, и проверьте.
PHP код: Выделить весь код

// правда строку с отправкой SMS:
$sms->sms_send$myrow['tel'], 'Ваш номер:'.$myrow['id'].'. Ждем вас:)' ); 
// лучше заменить на тестовое сообщение:
echo 'SMS to '.$myrow['tel'].': Ваш номер:'.$myrow['id'].'. Ждем вас:)'

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 23:36, 13-08-2013 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Большое спасибо Вам за помощь. Я Вам так благодарен .
Чем могу отблагодарить?

Отправлено: 06:23, 14-08-2013 | #8



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » Выборка данных из таблицы mysql

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MySQL - Выборка данных из таблицы mysql vinbongun Программирование и базы данных 0 11-08-2013 09:10
CMD/BAT - выборка данных из лога MrVest Скриптовые языки администрирования Windows 0 20-11-2012 16:50
MySQL - Выборка из таблицы Sergey666 Программирование и базы данных 1 23-03-2010 06:19
[решено] Выборка данных из mysql и сортировка на php dima1981 Вебмастеру 4 11-11-2008 15:06
выборка случайной строки из таблицы на MySQL Vlad Drakula Вебмастеру 5 19-10-2004 05:55




 
Переход