[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных из базы данных из таблицы
votia
Есть код

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

if(isset($_POST['send']))
{
$myconnect = @mysql_connect("", "", "") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("") 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 "Такого номера нет в базе данных. ";

}

?>
</form>


Данный код работает только если число в ячейке `introtext` "голое" без тегов. Если же, например создать таблицу и поместить туда число, тогда оно приобретает в коде вид <td>number1</td> и скрипт из-за тегов число number1 не видит.
Вопрос:
как указать скрипту искать число number1 независимо от тегов вокруг него (что-то вроде не точного совпадения?)???
Спасибо!



Спустя 1 час, 22 минуты, 39 секунд (28.09.2011 - 23:35) redreem написал(а):
попробуйте так:

...
$num1=strip_tags($_POST['number1']);
...

$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $num1);


Спустя 10 часов, 38 минут, 50 секунд (29.09.2011 - 10:14) votia написал(а):
Цитата (redreem @ 28.09.2011 - 20:35)
попробуйте так:

...
$num1=strip_tags($_POST['number1']);
...

$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $num1);

не работает
вот к примеру строка
<p>blabla 197324 111111111111111</p>
или <td>197324</td>

надо найти число 197324, а скрипт егоне находит, пишет что нет такого числа

Спустя 6 минут, 44 секунды (29.09.2011 - 10:20) kovalevsky написал(а):
а зачем ты загоняешь переменную типа integer с тегами в базу?

Спустя 2 минуты, 18 секунд (29.09.2011 - 10:23) votia написал(а):
ну предложи вариант...

Спустя 2 минуты, 40 секунд (29.09.2011 - 10:25) kovalevsky написал(а):
Просто когда будешь выводить из базы, то добавляй тег

Спустя 5 минут, 47 секунд (29.09.2011 - 10:31) votia написал(а):
напиши вариант пожалуйста

Спустя 3 минуты, 38 секунд (29.09.2011 - 10:35) Игорь_Vasinsky написал(а):
Ты же при поиске може так сделать

WHERE `introtext` = '<td>".(int) $_POST['number1'])."</td>';

Спустя 6 минут, 46 секунд (29.09.2011 - 10:42) kovalevsky написал(а):
Цитата
Ты же при поиске може так сделать


кстати да. сразу видно разницу экперта и меня laugh.gif

Спустя 1 минута, 12 секунд (29.09.2011 - 10:43) votia написал(а):
так скрипт не работает воще. Не выводятся результы ...

Спустя 7 минут, 1 секунда (29.09.2011 - 10:50) kovalevsky написал(а):

$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = [нужное значение тебе]");
while ($row = mysql_fetch_assoc($query))
{
echo "<td>".$row['introtext']."</td>";
}


ну вот попробуй мой вариант. добавлять теги на выходе из бд.

Спустя 5 минут, 53 секунды (29.09.2011 - 10:56) votia написал(а):
<form action="" method="post">
Введите номер счета: <input type="text" size="20px" maxlength="7" name="number1" />
<
input type="submit" name="send" value="Отправить" /><br><br>
<?php

if(isset($_POST['send']))
{
$myconnect = @mysql_connect("", "", "") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("") or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = [number1]");
while ($row = mysql_fetch_assoc($query))
{
echo "<td>".$row['introtext']."</td>";
}
$count = mysql_num_rows($query);

if($count)
echo "Ваш номер подтвержден! ";
else
echo "Такого номера нет в базе данных. ";

}

?>
</form>


не выводятся результаты

Спустя 2 минуты, 58 секунд (29.09.2011 - 10:59) kovalevsky написал(а):
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = [number1]");


это я для примера написал [нужное значение тебе] :)

делай как и делал там:
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $_POST['number1']);


тоесть
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $_POST['number1']);
while ($row = mysql_fetch_assoc($query))
{
echo "<td>".$row['introtext']."</td>";
}


Спустя 7 минут, 17 секунд (29.09.2011 - 11:06) votia написал(а):
да не хочет он выводить результаты так user posted image

Спустя 1 минута, 55 секунд (29.09.2011 - 11:08) kovalevsky написал(а):
Да не может быть.

Ты точно именно так написал?
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $_POST['number1']);
while ($row = mysql_fetch_assoc($query))
{
echo "<td>".$row['introtext']."</td>";
}


точно исправил [number1] на $_POST['number1']? :)

Спустя 5 минут, 22 секунды (29.09.2011 - 11:13) votia написал(а):
точнее не бывает, вот проверь сам http://forex-x.ru/forex-partnerka/proverit...vat-klyuch.html номер в базе 197324

Спустя 5 минут, 27 секунд (29.09.2011 - 11:19) Renden написал(а):
Ппц, насколько я понял ТС хочет
Цитата

как указать скрипту искать число number1 независимо от тегов вокруг него (что-то вроде не точного совпадения?)???

для этого нужен LIKE а не = ..
    $number = (int)$_POST['number1'];
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` LIKE '%$number%');

Спустя 1 минута, 16 секунд (29.09.2011 - 11:20) votia написал(а):
вот мой код
<form action="" method="post">
Введите номер счета: <input type="text" size="20px" maxlength="7" name="number1" />
<
input type="submit" name="send" value="Отправить" /><br><br>
<?php

if(isset($_POST['send']))
{
$myconnect = @mysql_connect("", "", "") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("") or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = ".(int) $_POST['number1']);
while ($row = mysql_fetch_assoc($query))
{
echo "<td>".$row['introtext']."</td>";
}
$count=mysql_num_rows($query);

if($count)
echo "Ваш номер подтвержден! ";
else
echo "Такого номера нет в базе данных. ";

}

?>
</form>

Спустя 3 часа, 30 минут, 26 секунд (29.09.2011 - 14:50) votia написал(а):
вопрос остается не решенным user posted image

Спустя 52 минуты, 26 секунд (29.09.2011 - 15:43) Игорь_Vasinsky написал(а):
Цитата
для этого нужен LIKE а не = ..


Будет искать 12, а найдёт 122, 1243, 2312 и т.д.

В БД хранить разметку - совершенно ни к чему.

У тя просто твои числа в БД находит?

Спустя 12 минут, 18 секунд (29.09.2011 - 15:55) votia написал(а):
мои числа находятся в статье в табличном виде
<table border="0" align="center">
<tbody>
<tr>
<td>
логин</td>
<td>
номер</td>
<td>
сгенерированный ключ</td>
</tr>
<tr>
<td>
user</td>
<td>
197324</td>
<td></td>
</tr>
</tbody>
</table>


естественно данные статьи находятся в таблице jos_content в ячейке introtext. Вот я и пытаюсь их оттуда вытащить.

Спустя 17 минут, 51 секунда (29.09.2011 - 16:13) Игорь_Vasinsky написал(а):
тогда и при поиске в запросе нужно так записать

WHERE `introtext` = '%<td>".$_POST['namber1']."</td>%'

Спустя 1 час, 25 минут, 18 секунд (29.09.2011 - 17:38) votia написал(а):
<form action="" method="post">
Введите номер счета: <input type="text" size="20px" maxlength="7" name="number1" />
<
input type="submit" name="send" value="Отправить" /><br><br>
<?php

if(isset($_POST['send']))
{
$myconnect = @mysql_connect("", "", "") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("") or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `introtext` = '%<td>".$_POST['number1']."</td>%');
$count = mysql_num_rows($query);

if(
$count)
echo "
Ваш номер подтвержден! ";
else
echo "
Такого номера нет в базе данных. ";

}

?>
</form>


Не выводит результаты поиска

Спустя 2 часа, 19 минут, 37 секунд (29.09.2011 - 19:58) kovalevsky написал(а):
покажи нормально как у тебя данные хранятся?
<td>цифры</td> или просто цифры?

upd.
а почему ты форму закрываешь так далеко?
я не в курсе, но чисто для себя интересно - это влияет как то на что то?
(см. последняя строчка в коде)

Спустя 1 час, 11 минут, 39 секунд (29.09.2011 - 21:10) inpost написал(а):
votia
1. mysql_query() or die(mysql_error());
2. ]."</td>%'); - ты с кавычками ничего не напутал? То, что было раньше - пошло в запрос, при этом ты не написал or die, поэтому ошибка эта не вывелась на экран!

Спустя 15 часов, 54 минуты, 58 секунд (30.09.2011 - 13:05) votia написал(а):
Данные у меня хранятся вот так <td>цифры</td>
а мне надо проверять наличие только цифры

Спустя 2 минуты, 32 секунды (30.09.2011 - 13:07) votia написал(а):
Цитата (inpost @ 29.09.2011 - 18:10)
votia
1. mysql_query() or die(mysql_error());
2. ]."</td>%'); - ты с кавычками ничего не напутал? То, что было раньше - пошло в запрос, при этом ты не написал or die, поэтому ошибка эта не вывелась на экран!

с кавычками вроде ничего не напутал, но пока ничего не работает и не могу посмотреть где ошибка

Спустя 3 часа, 23 минуты, 40 секунд (30.09.2011 - 16:31) imbalance_hero написал(а):
votia
Я тебе отрезок показал, ты ОТКРЫВАЕШЬ двойными, а ЗАКРЫТЬ ПЫТАЕШЬСЯ(!!!) одинарной...

Спустя 6 дней, 4 часа, 43 минуты, 1 секунда (6.10.2011 - 21:14) votia написал(а):
Цитата (Игорь_Vasinsky @ 29.09.2011 - 12:43)
Цитата
для этого нужен LIKE а не = ..


Будет искать 12, а найдёт 122, 1243, 2312 и т.д.

В БД хранить разметку - совершенно ни к чему.

У тя просто твои числа в БД находит?

Имею код
<form action="" method="post">
Введите номер счета: <input type="text" size="20px" maxlength="7" name="number1" />
<
input type="submit" name="send" value="Отправить" /><br><br>
<?php
if(isset($_POST['send']))
{
$myconnect = @mysql_connect("localhost", "", "") or die("Не могу подключиться к серверу БД: " . mysql_error());
mysql_select_db("") or die("Не могу выбрать базу данных" . mysql_error());
mysql_query("SET NAMES 'utf8'");
$query = mysql_query("SELECT `introtext` FROM `jos_content` WHERE `id`=86");
$r=mysql_fetch_array($query);
echo "<hr><pre>",$_POST['number1'],"</pre> <hr>\n";
$count = strpos($r['introtext'],''.$_POST['number1'].'');
if($count===false){

echo "Такого номера нет в базе данных. ";

} else {

echo "Ваш номер подтвержден! ";

};

}

?>
</form>

он работает, но как ты и писал он ищет 1234, а находет и 1234, 1, 2, 3 и т.д.
Как сделать так, чтобы он искал только целое число. Колличество символов от 5 до 7

Спустя 4 часа, 9 минут, 6 секунд (7.10.2011 - 01:23) Игорь_Vasinsky написал(а):
У тебя не верно изночально спроектирована БД, и юзер и номер и разметка.

Данные в ячейке такого вида

<table border="0" align="center">
<tbody>
<tr>
<td>
логин</td>
<td>
номер</td>
<td>
сгенерированный ключ</td>
</tr>
<tr>
<td>
user</td>
<td>
197324</td>
<td></td>
</tr>
</tbody>
</table>


Ох...мутанина.

Тогда тебе:
1. Вытащил всю ячейку
2. preg_match_all()

preg_match_all("#<td>(\d*)</td>#", $r['introtext'], $arr);

if($arr[0][2] == $_POST['number1'])
echo "Find maches!";
else
echo "You loose!";


Во-первых не факт что паттерн верный
2. это мутанина каждую ячейку регуляркой шарить

вообщем - бред.

еслиб у тя там логина не было - то всю разметку можно было вырезать strip_tags()

Вообщем ты тока бд напрягаешь.

правильно спроектируй и всё пучком будет.

а если в коде всегда одинаковое кол-во символов - то тупо вырезать все теги и взять последнии n символов.
Быстрый ответ:

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