[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите решить задачу
votia
Я только учусь, так что не судите строго...
Будет два окна, из них одно не активно. В активное окно водится число и жмется кнопка проверить. Скрипт проверяет есть ли данное число в базе данных, если есть, пишет, что такой номер есть, если нет, пишет, что такого номера нет.
Самого кода мало, хочу понять сам процесс. Заранее спасибо!



Спустя 7 минут, 47 секунд (18.09.2011 - 17:54) caballero написал(а):
во первых зачем упоминать второе окно которое в процессе не участвует

во вторых процесс чего тебя интересует - ты ж сам все описал что надо делать это и есть процес взял число полез в базу проверил выдал на экран результат





Спустя 1 минута, 49 секунд (18.09.2011 - 17:56) Pulse написал(а):
votia
Что в Вашем понятии два окна? Два фрейма на странице?

Спустя 16 часов, 49 минут, 31 секунда (19.09.2011 - 10:45) walerus написал(а):
Я так понял, ТС имел ввиду две textarea, одна активна другая нет... как сказал caballero - в условии уже как бы и есть решение задачи...

Спустя 30 минут, 36 секунд (19.09.2011 - 11:16) votia написал(а):
Задача мне ясна, но так как я только пытаюсь освоить PHP, мне не ясно как создать две textarea, как сделать запрос в базу данных и как добавлять в базу числа через веб интерфейс. Я понимаю, что наверное задаю элементарные вопросы, но не судите строго.

Спустя 18 минут, 29 секунд (19.09.2011 - 11:34) m4a1fox написал(а):
Ага! Ну смтри! Во первых позакомься с form! Это поможет! У формы есть свои параметры. Для тебя, по данному этапу нужно input.
Пишется от так <input type="text" name="number1"> - это первый input. Так же есть свойства и у формы. Это (на данном этапе будет достаточно) - <form action="" method="post">(вот тут пишутся input'ы)</form>. Теперь по порядку значений у формы
action - в двойных кавычках пишется файл в кот. будут приходить данные. Если данные будут приходить на эту же страницу, на кот. расположенн файл - то в кавычках - пустота.
Далее method - это способ передачи данных. Он бывает post или get. В чем разница? POST - отправляет данные скрыто и практически не имеет ограничений по объему переданных данных. Get - этот способ передачи видимых данных. Часто используется в качестве ссылок!

Ах, да. Забыл! INPUT. В нем так же есть значения, параметры - назвать можно как угодно. Итак.
type - это тип каких данных нужно передать. В данном случае у тебя - text. Поэтому type="text". Name - это парамет по кот. скрипт поймет какое именно имя дано переданному значению.

И еще! Забыл упомянуть. Еще нужна кнопка для отправки. Она как правило пишется так - <input type="submit" name="send" value="отправить">. Где...
type(прол него чуть выше) - это непосредсвтенно сама кнопка отправить, ну или send - назови это как хочешь. Name - вы уже вкурсе. Параметр по кот. скрипт понимает что ты именно на нее нажал, и сто именно из нее(формы кот. принадлежит кнопка) надо вытаскивать все данные. Ну а value - это то что будет написанно внутри кнопки.

P.S. Если после прочтения этого есть вопросы - а они должны быть, то пиши - помогу пока время свободное есть...

Спустя 7 минут, 59 секунд (19.09.2011 - 11:42) m4a1fox написал(а):
В твоем случае форма будет выглядеть так

<form action="" method="post">
<input
type="text" name="number1" />
<input
type="submit" name="send" value="Отправить" />
</form>


Спустя 9 минут, 58 секунд (19.09.2011 - 11:52) votia написал(а):
Спасибо за помощь!
С form вроде ясно (разберусь). Смотри не понятно вот что... Делаю сайт на joomla. Идея такова, в статье (не видима для все пользователей) администратор делает таблицу в которой в первой колонке пишет логин пользователя, а напротив него во второй колонке 5ти значное число. Так вот не понятно, как заставить скрипт искать это 5ти значное число во второй колонке. Спасибо!

Спустя 25 минут, 39 секунд (19.09.2011 - 12:18) m4a1fox написал(а):
Откровенно говоря, зря вы за joomlu взялись! Я бы на вашем месте сначало чисто php поднял бы свой уровень! Вот не поверите. Я тоже когда то с jooml'ы начинал! Но не зная основ - всю прелесть CMS (некот. так считаю - я например нет) - оценить вы не сможете. ИМХО - так учитесь! Не поверите - гораздо полезнее. Вам конечно решать но так будет лучше - ИМХО!

Спустя 5 часов, 7 минут, 41 секунда (19.09.2011 - 17:26) votia написал(а):
Я постепенно тоже прихожу к этому выводу, но текучка не дает стоять на месте.

Спустя 1 час, 28 минут, 33 секунды (19.09.2011 - 18:54) votia написал(а):
В результате мучительных изысканий и помощи Уважаемого m4a1fox получилось следующее.
html форма:

<form action="script.php" method="post">
Введите номер счета: <input type="text" size="20px" maxlength="10" name="number1" />
<input
type="submit" name="send" value="Отправить" />
</form>


script.php:

<?php
$myconnect = @mysql_connect('Хост сервера MySQL','Пользователь MySQL','Пароль MySQL') or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db('Выбранная База') or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$myquery = "SELECT number FROM `ID 5";
$query_result = mysql_query($myquery) or die("Не могу выполнить запрос" . mysql_error());
$number2 = mysql_num_rows($query_result);

echo "<ul>";

if ($number12 = 0)//не уверен, что правильно
{
echo "<li>Такого номера нет в базе данных, обратитесь к администратору</li>";
} else {
while ($number1 = $query_result)//не уверен, что правильно {
echo "<li>";
echo $number1 . "<li>Ваш номер действителен</li>";
}
}

echo "</ul>";
?
php>

По поводу скрипта не уверен, поправьте меня пожалуйста.

Спустя 37 минут, 18 секунд (19.09.2011 - 19:31) Игорь_Vasinsky написал(а):
Цитата
$myquery = "SELECT number FROM `ID 5";


у тя таблица ID 5 (с пробелом??????) и в запросе имена столбцов и таблиц экранируют апострофами

Цитата
if ($number12 = 0)


в php один знак равенства - присвоение
для сравнения используют ==
а так === можно сравнить не только значение, но и тип данных

Цитата
while ($number1 = $query_result)//не уверен, что правильно {


данные из Бд можно получить с помощью SQL запроса в mysql_assoc_array() и mysql_fetch_array() - посмотри готовые варианты вывода из БД


Вообщем вы даже не запустили чтобы выяснить работает это или нет.

Спустя 4 минуты, 11 секунд (19.09.2011 - 19:36) Игорь_Vasinsky написал(а):
Тебе достаточно проверить есть ли значение в БД и всё.

$query = mysql_query("SELECT `cell` FROM `table` WHERE `cell` = ".(int)$nums);
$count = mysql_num_rows($query);

if($count)
echo "Есть совпадение!";
else
echo "Совпадений не найдено!";


Или же в запросе использовать COUNT(`cell`)

Спустя 2 минуты, 27 секунд (19.09.2011 - 19:38) votia написал(а):
Спасибо, попробую...

Спустя 3 часа, 31 минута, 23 секунды (19.09.2011 - 23:09) votia написал(а):
как я могу в этой строке
$query = mysql_query("SELECT `cell` FROM `table` WHERE `cell` = ".(int)$nums);
указать, что мне нужно искать в таблице jos_content в колонке introtext
И еще, результат выводится в отдельном окне. Как сделать так, чтобы результат выводился в том же окне, что и окно для ввода?
Спасибо!

Спустя 11 минут, 14 секунд (19.09.2011 - 23:21) Игорь_Vasinsky написал(а):
Цитата
$query = mysql_query("SELECT `cell` FROM `table` WHERE `cell` = ".(int)$nums);


1/ну ты даёшь..

я специально указал как шаблон: cell - ячейка, table-таблица, $nums - твоё число (int) - как указывает - что это число от integer

2/ Сделать обработчик в том же файле и запускать его после проверки надатия на submit, например у неё name="send"

if(isset($_POST['send']))
{
//твой обработчик
}

Спустя 15 часов, 28 минут, 38 секунд (20.09.2011 - 14:49) votia написал(а):
Пусть я выгляжу абсолютно бестолковым user posted image [list], но когда я учусь, мне абсолютно все равно. Потому что если не задашь вопросы сразу, со временем они будут только накапливаться. Отсюда вопросы...
Вот мой код:
<?php
$myconnect = @mysql_connect("", "root", "") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("forex_al") or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = mysql_query("SELECT 'introtext' FROM 'jos_content' WHERE 'introtext' = ".(int)$nums);
$count = mysql_num_rows($query);

if($count)
echo "Есть совпадение!";
else
echo "Совпадений не найдено!";
?>

Требуется пояснение по строке


$query = mysql_query("SELECT 'introtext' FROM 'jos_content' WHERE 'introtext' = ".(int)$nums);
(обращаемся к ячейке introtext в таблице jos_content где ячейке introtext присваиваем значение .(int)$nums ??? какое значение присвоить переменной $nums ???)


$count = mysql_num_rows($query);
(можно ее описание на примитивном уровне?)

В такой редакции скрипта, после ввода любого значения, выдается сообщение "Есть совпадение!" - значит работает неправильно.
Спасибо!

Спустя 1 час, 2 минуты, 6 секунд (20.09.2011 - 15:51) inpost написал(а):

 ! 

М
оформляй свой код тегами [ php] !!!
inpost

Спустя 2 минуты (20.09.2011 - 15:53) inpost написал(а):
votia
Первое: это не присваивание, это сравнение! В PHP сравнение делается двумя знаками "==", а в MYSQL одним.
mysql_num_rows - количество выбранных записей, удовлетворяющих запросу.

Спустя 1 час, 25 минут, 39 секунд (20.09.2011 - 17:19) votia написал(а):
Проблема решена!!!
Может кому интересно, расскажу:
 <?php

$myconnect = @mysql_connect("", "038838017_f-x", "7HYG5g8BFe") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("kosuhin_forex-x") or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $_POST['number1']);
$count = mysql_num_rows($query);

if($count)
echo "Есть совпадение!";
else
echo "Совпадений не найдено!";


?>


не хватало переменной $_POST['number1'] из массива.
Всем помогавшим, большой респект!!!

Спустя 27 минут, 20 секунд (20.09.2011 - 17:46) Игорь_Vasinsky написал(а):
молодец wink.gif

Спустя 5 минут, 54 секунды (20.09.2011 - 17:52) votia написал(а):
Цитата (Игорь_Vasinsky @ 20.09.2011 - 14:46)
молодец wink.gif

Вам и m4a1fox особое спасибо!

Спустя 51 секунда (20.09.2011 - 17:53) Игорь_Vasinsky написал(а):
Ты главное не путай не когда - запомни

Цитата
Первое: это не присваивание, это сравнение! В PHP сравнение делается двумя знаками "==", а в MYSQL одним.
mysql_num_rows - количество выбранных записей, удовлетворяющих запросу.

Спустя 2 минуты, 7 секунд (20.09.2011 - 17:55) votia написал(а):
все придет с практикой user posted image

Спустя 2 часа, 27 минут, 9 секунд (20.09.2011 - 20:22) inpost написал(а):
Если ты ищешь совпадения, то тебе хватит и одного, для этого ставь LIMIT 1
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.