|
|
|
| Начало моей печальной истории- сайт, при создании которого чем больше я делаю, тем больше появляется проблем.
Итак, сейчас мой вопрос кажется вполне простым- подскажите пожалуйста, почему в ниже представленном коде происходит вывод такого рода: в выпадающем списке выбирается одно из значений, потом нажимаем кнопку "Просмотр". и по логике механизма должна выводится одна запись, содержащая выбранное название. У меня по непонятным мне причинам выводятся абсолютно все названия из базы данных.
попытаюсь изложить на всякий случай детально: существует таблица nomenklatura , каждая запись- описание определённого товара. И должна выводится только одна запись в результате моего кода, а выводятся все записи.
Слёзно прошу, помогите люди добрые кто чем может и где в коде ошибка!
<body>
<?php
$database = "gaz";
$host = "localhost";
$username = "root";
$gb=mysql_connect($host,$username,$password);
mysql_select_db("gaz", $gb);
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura",$gb);
$myrow = mysql_fetch_array($result);
?>
<table width="100%" border="1">
<tr>
<td colspan="2"><p>Здесь шапка</p>
<p align="right">поиск
</p>
</td>
</tr>
<tr>
<td width="20%"><ul>
<li> <a href="ob_deyatelnisti.php">Область деятельности</a></li>
<li><a href="produkciya.php">Продукция и услуги</a></li>
<li><a href="nomenklat.php">Номенклатура</a></li>
<li><a href="publikaci.php">Раздел публикаций</a> </li>
<li><a href="o_kompani.php">О компании </a></li>
<li><a href="kantakti.php">Контакты </a></li>
</td>
<td><p>В данном разделе вы можете просматривать номенклатуры товаров а так же найти известный вам товар.</p>
<form method="post" action="nomenklat.php">
<fieldset>
<legend>Выберите критерии для просмотра номенклатур</legend>
<select name="krit">
<option value="САУ_КЦ">САУ КЦ</option>
<option value="2">ПКУ ДО-01</option>
<option value="3">САУ РГС</option>
<option value="4">САУ ТП УКПГ</option>
<option value="5">САУ и Р ТП ГСП</option>
<option value="6">АСДУ н/м</option>
<option value="7">САУ и К ГНС</option>
<option value="8">ПКУ ОГ</option>
<option value="САУ_ВО">САУ ВО</option>
<option value="10">САУ ГПА</option>
</select></fieldset>
<input type="submit" value="Просмотр" />
</fieldset>
</form>
<table width="200" border="1">
<?php
$krit = ($_POST['krit']);
if ($krit = 'САУ_КЦ')
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = 'САУ_КЦ'",$gb);
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
<?php
if ($krit = 'САУ_ВО')
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = 'САУ_ВО'",$gb);
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
</table>
</p></td>
</tr>
<tr>
<td colspan="2">Нижняя шапка</td>
</tr>
</table>
</body>
|
ps для примера понять как и что работать должно и будет- в коде предусмотрен пока что только показ САУ КЦ и САУ ВО. | |
|
|
|
|
|
|
|
для: Blondy
(21.04.2010 в 22:42)
| | а это что означает
КЦ -- это спички.
Когда же уничтожат все диски господина Попова ? | |
|
|
|
|
|
|
|
для: oliss
(21.04.2010 в 23:40)
| | Это имя переменной (если я правильно понимаю) которое берётся отсюда:
и используется вот здесь:
$krit = ($_POST['krit']);
if ($krit = 'САУ_КЦ')
|
и позже для следующих таких же конструкций, чтобы знать что выбрано из выпадающего списка.
Я пишу сайт для фирмы имеющей отношение к газовой промышленности, и там САУ КЦ - Система автоматического управления компрессорными станциями )
простите, я по нему училась потому что этот диск- первое что было под рукой и более- менее доходчиво. | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 09:22)
| | if ($krit == 'WWW')
а вы постом передаёте кирилицу в какой кодировке? | |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 10:01)
| | Честно говоря, не знаю.... может быть это HTML 4.01 Transitional? это в Doctype описано вроде.
сначала я делала не
if ($krit = 'САУ_КЦ')
а использовала цифры в value выпадающего списка, но результат один и тот же и я не могу понять почему выводятся все записи.. | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 10:09)
| | = - оператор присваивания
== - сравнение | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 10:09)
| | >Честно говоря, не знаю.... может быть это HTML 4.01 Transitional? это в Doctype описано вроде.
маленька цитата.
"Элемент <!DOCTYPE> предназначен для указания типа текущего документа — DTD (document type definition, описание типа документа). Это необходимо, чтобы браузер понимал, как следует интерпретировать текущую веб-страницу, поскольку HTML существует в нескольких версиях,..." | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 10:09)
| | HTML 4.01 Transitional никакого отношения к кодировке не имеет
смотрите в какой кодировке сохранен скрипт + какие заголовки передаются серверу (хидеры)
если у вас кодировка отличная от утф8, то не стоит передавать кирилицу в чистом виде в гет и пост запросах ( надо использовать латиницу )
<?php header ('Content-type: text/html; charset=utf-8');?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head><body>
<form method="post" action="">
<fieldset>
<legend>Выберите критерии для просмотра номенклатур</legend>
<select name="krit">
<option value="САУ_КЦ">САУ КЦ</option>
<option value="2">ПКУ ДО-01</option>
<option value="3">САУ РГС</option>
<option value="4">САУ ТП УКПГ</option>
<option value="5">САУ и Р ТП ГСП</option>
<option value="6">АСДУ н/м</option>
<option value="7">САУ и К ГНС</option>
<option value="8">ПКУ ОГ</option>
<option value="САУ_ВО">САУ ВО</option>
<option value="10">САУ ГПА</option>
</select></fieldset>
<input type="submit" value="Просмотр" />
</fieldset>
</form>
<?php
echo '<pre>';
print_r($_POST);
?>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 10:24)
| | Тогда я решила не путаться и перевести в свой старый вариант- числами, но тот же самый эффект- выводятся все записи а не одна как мне нужно.
Простите если очень сильно туплю- я совсем новичок в php.
<body>
<?php
$database = "gaz";
$host = "localhost";
$username = "root";
$gb=mysql_connect($host,$username,$password);
mysql_select_db("gaz", $gb);
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura",$gb);
$myrow = mysql_fetch_array($result);
?>
<table width="100%" border="1">
<tr>
<td colspan="2"><p>Здесь шапка</p>
<p align="right">поиск
</p>
</td>
</tr>
<tr>
<td width="20%"><ul>
<li> <a href="ob_deyatelnisti.php">Область деятельности</a></li>
<li><a href="produkciya.php">Продукция и услуги</a></li>
<li><a href="nomenklat.php">Номенклатура</a></li>
<li><a href="publikaci.php">Раздел публикаций</a> </li>
<li><a href="o_kompani.php">О компании </a></li>
<li><a href="kantakti.php">Контакты </a></li>
</td>
<td><p>В данном разделе вы можете просматривать номенклатуры товаров а так же найти известный вам товар.</p>
<form method="post" action="nomenklat.php">
<fieldset>
<legend>Выберите критерии для просмотра номенклатур</legend>
<select name="krit">
<option value="1">САУ КЦ</option>
<option value="2">ПКУ ДО-01</option>
<option value="3">САУ РГС</option>
<option value="4">САУ ТП УКПГ</option>
<option value="5">САУ и Р ТП ГСП</option>
<option value="6">АСДУ н/м</option>
<option value="7">САУ и К ГНС</option>
<option value="8">ПКУ ОГ</option>
<option value="9">САУ ВО</option>
<option value="10">САУ ГПА</option>
</select></fieldset>
<input type="submit" value="Просмотр" />
</fieldset>
</form>
<table width="200" border="1">
<?php
$krit = ($_POST['krit']);
if ($krit = '1')
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = 'САУ_КЦ'",$gb);
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr> ",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
<?php
if ($krit = '9')
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = 'САУ_ВО'",$gb);
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
</table>
</p></td>
</tr>
<tr>
<td colspan="2">Нижняя шапка</td>
</tr>
</table>
</body>
|
| |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 10:44)
| | while( ); do { } замените на while( ) { }
опять те же грабли
if ($krit = '9') { }
найдите несколько отличий
if ($krit == 9) { }
|
| |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 10:44)
| | Вам уже писал Valick про оператор сравнения и присваивания....
вот в здесь
<?php
if ($krit = '9') // грубо говоря, если переменной $krit присвоить значение 9
// а надо использовать оператор сравнения
if($krit == 9) // если переменная $krit равна 9
|
да и фигурные скобки не мешало бы добавить
<?php
if($krit == 9){
// вот тут делайте запрос и вывод информации для данного условия
}
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(22.04.2010 в 10:54)
| |
$krit ='9'; это присвоение строковой [string] переменной
$krit = 9; это присвоение числовой [integer] переменной
|
| |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 10:59)
| | oliss, Slo_Nik
Огромное спасибо вам!! Заработало всё) Для меня это чудо!) | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 11:04)
| | рано радуетесь, у вас не разработана нормальная структура таблиц ,и всё это можно выбрать одним запросом,плюс сократить код мин в два раза избавившись от printf( ) | |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 11:12)
| | я только начала делать, поэтому чудо если работает, значит я попытаюсь дальше сделать так весь список да и подумать над остальным) пока что это было моей самой глобальной проблемой)
одним запросом это реально?? | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 11:17)
| | :) | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 11:17)
| | конечно реально....
вот в этой части запроса
...WHERE krnazwanie = 'САУ_ВО'..."
| подставляете переменную, которая передаётся через POST и в зависимотсти от значения переменной будет вывод из базы.... второй запрос не нужет будет вообще, код сократится.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(22.04.2010 в 11:45)
| | здесь придется подставить не переменную, а результат функции mysql_real_escape_string()
Не учите человека дурному, он и так плавает. | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2010 в 12:05)
| | вот именно, что плавает, пусть пока разберётся на этом этапе, а потом уже и остальные функции, а то каша в голове может случится.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(22.04.2010 в 12:24)
| | Нет уж, извините.
Вот от этого как раз и получается каша, когда человека с нуля учат, что между апострофами можно переменные совать.
Что это делать чревато, он постигает в лучшем случае с диким трудом. В худшем - после успешной атаки. | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2010 в 12:05)
| | Ага ,и обработать магические кавычки | |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 12:40)
| | 1. проще выключить.
2. Всяко раньше - не на этом этапе.
3. необработанные магические кавычки могут привести к искажениям данных - обычно сразу заметным. Но не к уязвимостям. | |
|
|
|
|
|
|
|
для: Trianon
(22.04.2010 в 13:25)
| | за ,двумя руками!!!
.htaccess
php_flag magic_quotes_gpc Off
|
чтоб в сервер не лазить | |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 10:59)
| | немного запарился... | |
|
|
|
|
|
|
|
для: Slo_Nik
(22.04.2010 в 11:41)
| | Честно говоря я запуталась)
Выходит, можно подставить вот сюда
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = 'САУ_КЦ'",$gb);
просто мою переменную вот эту
$krit = ($_POST['krit']);
Я правильно поняла? Но как тогда получится распознавание чему равна эта переменная? или писать
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE $krit ==1,$gb);
1, 2.... и тд? | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 16:25)
| | не правильно поняли...
у Вас в базе данных не переменная $krit хранится, у Вас в базе поле krnazwanie где записаны разные значения. вот с этими значениями и надо сравнивать переменную $krit, вернее не сравнивать, а задать условие сортировки в запросе
....WHERE krnazwanie = '".$krit."'.....
|
получается
<?php
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = '".$krit."'");
// выбрать значение заданных полей из таблицы такой то ГДЕ(WHERE) krnazwanie равно $krit
?>
|
при этом переменную надо обработать соответствующими функциями перед подстановкой в запрос, но об этом уже Trianon и oliss писали выше | |
|
|
|
|
|
|
|
для: Slo_Nik
(22.04.2010 в 18:00)
| | Простите за глупые вопросы, я видимо что-то не так делаю, но всё приходит с практикой)
Я попыталась подставить вот так:
<?php
$krit = ($_POST['krit']);
$krit1 =mysql_real_escape_string($krit)
$result =mysql_query("SELECT krnazwanie,plnazwanie,slowa,opisanie,haracteristika,nazwobes,nazkompl FROM nomenklatura WHERE krnazwanie = '".$krit1."'");
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
|
Но к сожалению, выдаёт ошибку. или я неправильно поняла как надо подставлять результат функции mysql_real_escape_string() ?
И... я может покажусь совсем безмозглым созданием, но до меня не доходит ещё в комплекте одна вещь: пытаюсь добавить к моей полной конструкции ещё и чекбоксы. Но, на сколько понимаю, не считываются значения..
в самом начале пишу вот это:
<fieldset>
<legend>Информация о дополнительных модулях</legend>
<input type="checkbox" name="luch[]" id="yes" value="11"/>Показать модули <p>
<input type="checkbox" name="luch[]" id="no" value="12"/>Только базовый комплект<p></p>
</fildset>
|
подвешиваю на ту же кнопку что и было, "просмотр"
$luch = ($_POST['luch']);
|
и затем чтобы вывести:
<?php
if ($luch == '11')
{
$result =mysql_query("SELECT krnazwanie,kodkompl FROM komplekt WHERE krnazwanie = 'САУ_КЦ'",$gb);
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['kodkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
}
|
Простите что замучала, сижу с учебником но по нему же и не выходит. | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 19:23)
| | Вот что я бы вам хотел сказать:
1. В запросе вы перечисляете те поля, которые вам нужны. Перечисляете так, что экран начинает трещать. Уж не все ли вы поля там перечислили? Или даже если незадействованных осталось 1-2 проще поставить *
2. Для читабельности можно внести переменную в запрос, т.к. обрамлен он двойными кавычками
3. Используйте mysql_fetch_assoc вместо mysql_fetch_array. Почему? Потому что нафиг оно нужно, создавать неиспользуемые элементы массива
4. Используйте цикл while вместо do..while по двум причинам:
- Вы даже тут его используете с ошибкой - а что если в первом случаи вернется пустой результат7
- Цикл do..while существует для других задач, где обязательно хотя бы раз должно выполниться некое действие. Это, очевидно, не тот случай.
А теперь пример:
<?php
$krit = mysql_real_escape_string($_POST['krit']);
$result =mysql_query("SELECT * FROM nomenklatura WHERE krnazwanie = '$krit'");
while ($myrow = mysql_fetch_array ($result)) {
// действия
}
|
По поводу чекбоксов пока ниче не говорю - разберитесь с первым =)
Но собстно очень хорошоп помогает понять, шозанах функция print_r() (дамп)
Сделайте print_r($_POST); и увидите, как чекбоксы приходят/не приходят. | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 19:23)
| | почти правильно, но есть несколько "но"...
зачем Вам создавать ещё одну переменную $krit1 ? есть несколько вариантов, как обработать переменную функцией mysq_real_escape_string()
<?php
// 1 вариант, как Вы и делаете, но без лишней переменной
$krit = mysql_real_escape_string($_POST['krit']);
$query = "SELECT * FROM `komplekt` WHERE `krnazwanie` = '".$krit."'";
// 2 вариант прямо в запросе
$krit = $_POST['krit'];
$query = "SELECT * FROM `komplekt` WHERE `krnazwanie` = '".mysql_real_escape_string($krit)."'";
// 3 вариант при помощи функции sprintf() сформировать строку в которую подставляются
// нужные аргументы при помощи разных определителей типов аргументов
// в данном случае определитель %s(строка)
$query = sprintf("SELECT * FROM `komplekt` WHERE `krnazwanie` = '%s' ",
mysql_real_escape_string($_POST['krit']));
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(22.04.2010 в 20:58)
| | neadekvat, Slo_Nik
Спасибо огромнейшее что помогаете!!
Но что-то видимо у меня мозг вытек- ни один вариант не работает теперь, не говоря о чекбоксах)
Во всех вариантах я получаю вывод пустой таблицы, проверяю базу данных- все записи есть...вроде и подключаюсь как раньше.
вот что сейчас есть:
<?php
$krit = mysql_real_escape_string($_POST['krit']);
$result =mysql_query("SELECT * FROM nomenklatura WHERE krnazwanie = '".$krit."'",$gb);
$myrow = mysql_fetch_array($result);
do {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['plnazwanie'],$myrow['slowa'],$myrow['opisanie'],$myrow['haracteristika'],$myrow['nazwobes'],$myrow['nazkompl']);
}
while ($myrow = mysql_fetch_array ($result));
?>
|
| |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 22:26)
| | Сделайте так:
<?php
error_reporting(E_ALL);
$krit = mysql_real_escape_string($_POST['krit']);
$result = mysql_query("SELECT * FROM nomenklatura WHERE krnazwanie = '$krit'");
$myrow = mysql_fetch_assoc($result);
echo '<pre>';
print_r($myrow);
|
И скажите, что на экран вывело.
И еще - данные точно через $_POST, а не через $_GET приходят?
И третье - еще раз прочитайте то, что я вам советовал. Хотя бы с do..while на while перепешите | |
|
|
|
|
|
|
|
для: neadekvat
(22.04.2010 в 22:32)
| | Честное блондинистое- читала и пробовала, тот же эффект- пустые строки!) поэтому я и бросила старый вариант раз эффекта не произошло.
И да, точно через Пост, у меня так везде происходит.
И вот какую ошибку выдало:
http://i065.radikal.ru/1004/f3/f9f7ff7d90ec.jpg
А на строке 70 у меня :
$krit = mysql_real_escape_string($_POST['krit']);
|
и дальше как вы сказали. | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 22:58)
| | Это после отправки данных такая ошибка возникает?
А про мои советы - они касались не конкретно вашей проблемы, а вообще в целом, как надо делать. А у вас - нехорошие эти советы от Попова, не так делается это.. | |
|
|
|
|
|
|
|
для: neadekvat
(22.04.2010 в 23:19)
| | К сожалению, да. Я поставила как вы писали конструкцию, и вот такое вылезло.
А Попов- этот диск мне в университете преподаватель дал, поэтому я и с незнания по нему училась) Конструкция while очень даже мне понравилась и по смыслу- буду использовать, спасибо вам огромное что глаза мне открываете) Да и использование переменной думаю будет отлично когда я догадаюсь её нормально вывести)
Потому что на простом if работало всё) теперь нет. | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 22:58)
| |
<?
error_reporting(E_ALL);
$k = !empty($_POST['krit']) ? trim($_POST['krit']) : NULL;
$res = mysql_query("SELECT *
FROM `nomenklatura`
WHERE `krnazwanie` = '".mysql_real_escape_string($k)."'
",$gb);
if($res)
{
while($mr = mysql_fetch_assoc($res))
{
$list[] = $mr;
}
echo '<pre>';
print_r($list);
}
|
| |
|
|
|
|
|
|
|
для: oliss
(22.04.2010 в 23:24)
| | вот что вывелось в этом варианте:
Notice: Undefined variable: list in Z:\home\mysite\www\nomenklat.php on line 84
а на строке 84 у меня
Что-то совсем не выходит, работало только в самом начале или же мой разум согласуется с кодом и не работают оба) | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 23:35)
| |
while($mr = mysql_fetch_assoc($res))
{
echo $mr['krnazwanie'].'<br />';
}
|
что выводит | |
|
|
|
|
|
|
|
для: Blondy
(22.04.2010 в 23:35)
| | У вас в базе данных точно есть строки, которые подходят под условие krnazwanie = %some% ?
После самого запроса допишите:
echo mysql_num_rows($res); | |
|
|
|
|
|
|
|
для: neadekvat
(23.04.2010 в 07:27)
| | oliss, neadekvat,
Простите пожалуйста, облажалась) И удивлена что сама это поняла) в krnazwanie у меня идут САУ_ВО и САУ_КЦ к примеру, а в списке value там цифры, вот и не показывало, исправила в value)
теперь вот что показывает:
Array
(
[id] => 1
[krnazwanie] => САУ_КЦ
[plnazwanie] => Система автоматического управления
[slowa] => лбюбые
[opisanie] => Описание
[haracteristika] => характеристика тоже самое
[nazwobes] => назвобес
[nazkompl] => компдектаияфы
) | |
|
|
|
|
|
|
|
для: Blondy
(23.04.2010 в 09:20)
| | Вот, теперь еще раз прочитайте мой пост и действуйте =) | |
|
|
|
|
|
|
|
для: neadekvat
(23.04.2010 в 13:39)
| | Спасибо огромнейшее !!) Я не сразу поверила в это чудо- всё работает)) теперь бы не спугнуть)
и... можно поинтересоваться как до кучи привесить мои чекбоксы, вернее правильно ли я это делаю?)
вот в самом начале они на той же кнопке что и список:
<fieldset>
<legend>Информация о дополнительных модулях</legend>
<input type="checkbox" name="luch[]" id="yes" value="11"/>Показать модули <p>
<input type="checkbox" name="luch[]" id="no" value="12"/>Только базовый комплект<p></p>
</fildset>
|
затем
$luch = mysql_real_escape_string($_POST['luch']);
if ($luch == '11')
$result =mysql_query("SELECT krnazwanie,kodkompl FROM komplekt WHERE krnazwanie = '$krit'",$gb);
$myrow = mysql_fetch_array($result);
while ($myrow = mysql_fetch_array ($result)) {
printf("
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
",$myrow['krnazwanie'],$myrow['kodkompl']);
}
|
| |
|
|
|
|
|
|
|
для: Blondy
(23.04.2010 в 14:21)
| | Если честно, то из кода не совсем понятно, что именно вы хотите сделать.
Чекбоксы - это когда можно несколько вариантов, или вам все-таки radio нужно?
И что именно и откуда и при каком условии вы собираетесь вытаскивать
А вообще лучше новую тему заводите, потому что
а) здесь уже и так много постов набралось
б) это все-таки "совсем другая история"
И не забудьте в новой теме расписать все подробно, что вам именно надо, откуда, куда и т.д. | |
|
|
|
|