Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод значений из БД с помощью выпадающего списка

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Вывод значений из БД с помощью выпадающего списка
Stunnets
Отправлено: 28 Февраля, 2016 - 16:16:27
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




есть код помогите вывести значение с помощью впадающего списка.

<?php
echo '<form method="post">';
echo '<select name="table" size="1" >';
echo '<option selected="selected" value="second">Таблица</option>';
echo '<option value="zerno"> Зерно </option>';
echo '<option value="kykyr"> Кукуруза </option>';
echo '<option value="lucern"> Люцерна </option>';
echo '<option value="korov"> Корова </option>';
echo '<option value="svin"> Свинья </option>';
echo '<option value="riba"> Рыба </option>';
echo '<option value="kombik"> Комбикорм </option>';
echo '<option value="xleb"> Хлеб </option>';
echo '<option value="myaso"> Мясо </option>';
echo '<option value="moloko"> Молоко </option>';
echo '<option value="navoz"> Навоз </option>';
echo '</select>';
echo '<input type="submit" value="Выбрать" />';
echo '</form>';

if ($_POST['table']=='zerno') $table=$_POST['table'];
if ($_POST['table']=='kykyr') $table=$_POST['table'];
if ($_POST['table']=='lucern') $table=$_POST['table'];
if ($_POST['table']=='korov') $table=$_POST['table'];
if ($_POST['table']=='svin') $table=$_POST['table'];
if ($_POST['table']=='riba') $table=$_POST['table'];
if ($_POST['table']=='kombik') $table=$_POST['table'];
if ($_POST['table']=='xleb') $table=$_POST['table'];
if ($_POST['table']=='myaso') $table=$_POST['table'];
if ($_POST['table']=='moloko') $table=$_POST['table'];
if ($_POST['table']=='navoz') $table=$_POST['table'];

mysql_select_db("mrakr226_wond");
$result = mysql_query("SELECT id, user_dom FROM tb_dom") or die(mysql_error());

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf("ID: %s Имя: %s", $row[0], $row[1]);
}
echo "$result";

mysql_free_result($result);
?>

Но данные выбираются не из списка а из первых двух ячеек таблицы ID: 17 Имя: Marina. Получается нужно выводить не $row а как то докрутить что бы выводилось значение ($_POST['table']=='zerno') $table=$_POST['table']
извините что что то не догоняю, голова уже кипит(( Пожалуйста помогите вывести значение.
(Добавление)
переделал код:
<?php
echo '<form method="post">';
echo '<select name="table" size="1" >';
echo '<option selected="selected" value="second">Таблица</option>';
echo '<option value="zerno"> Зерно </option>';
echo '<option value="kykyr"> Кукуруза </option>';
echo '<option value="lucern"> Люцерна </option>';
echo '<option value="korov"> Корова </option>';
echo '<option value="svin"> Свинья </option>';
echo '<option value="riba"> Рыба </option>';
echo '<option value="kombik"> Комбикорм </option>';
echo '<option value="xleb"> Хлеб </option>';
echo '<option value="myaso"> Мясо </option>';
echo '<option value="moloko"> Молоко </option>';
echo '<option value="navoz"> Навоз </option>';
echo '</select>';
echo '<input type="submit" value="Выбрать" />';
echo '</form>';

if ($_POST['table']=='zerno') $table=$_POST['table'];
if ($_POST['table']=='kykyr') $table=$_POST['table'];
if ($_POST['table']=='lucern') $table=$_POST['table'];
if ($_POST['table']=='korov') $table=$_POST['table'];
if ($_POST['table']=='svin') $table=$_POST['table'];
if ($_POST['table']=='riba') $table=$_POST['table'];
if ($_POST['table']=='kombik') $table=$_POST['table'];
if ($_POST['table']=='xleb') $table=$_POST['table'];
if ($_POST['table']=='myaso') $table=$_POST['table'];
if ($_POST['table']=='moloko') $table=$_POST['table'];
if ($_POST['table']=='navoz') $table=$_POST['table'];

$stable=$_POST['table'];
if(isset($stable)) {
$qr_result1 = mysql_query("select * from tb_dom" . $table . " WHERE user_dom='$user'") or die(mysql_error());
}
echo '<form method="post" enctype="multipart/form-data" accept-charset="uft-8">';

while($data = mysql_fetch_array($qr_result1)){
echo '<tr>';
echo '<td><select id="uname" name="uname"> <option value="'. $data['name'] .'">'. $data['name'] .'</option> </select></td>';
}
?>



Но теперь при выводе выдает Table 'mrakr226_wond.tb_domzerno' doesn't exist хотя все таблицы и поля есть Где моя ошибка подскажите плз
 
 Top
suvidj3316
Отправлено: 29 Февраля, 2016 - 00:26:38
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Так понимаю, у тебя всё-таки таблица tb_dom есть, а не tb_domzerno?
Если в первом случае выводились данные, а во втрором - ошибка?

(Отредактировано автором: 29 Февраля, 2016 - 00:32:27)

 
 Top
Stunnets
Отправлено: 29 Февраля, 2016 - 01:41:59
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




изменил на вот такой запрос
$stable=$_POST['table'];
if(isset($stable))
{
$qr_result1 = mysql_query("select `$stable` from tb_dom WHERE `user_dom`='$user'")
or die(mysql_error());
}

стало выводить без всяких ошибок, но не понимаю как правильно обработать запрос
ставлю так
while($row = mysql_fetch_assoc($qr_result1)) {
print_r($row);
}

выдает строкой Array ( [xleb] => 800 ) как мне вывести в переменную только числа?
 
 Top
Stunnets
Отправлено: 29 Февраля, 2016 - 19:55:22
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




может хоть кто подсказать где почитать про это ?
 
 Top
ytrewq123
Отправлено: 29 Февраля, 2016 - 20:54:50
Post Id


Посетитель


Покинул форум
Сообщений всего: 352
Дата рег-ции: Окт. 2014  


Помог: 0 раз(а)




Чтобы выводило просто цифру напишите в цикле так.
print_r($row[xleb]);
Так как вытаскиваете ассоциативный массив.
И другие так же print_r($row[имя поля что выбираем]);

(Отредактировано автором: 29 Февраля, 2016 - 20:56:18)

 
 Top
Stunnets
Отправлено: 29 Февраля, 2016 - 21:27:08
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




спасибо ytrewq123 все выводит !!!
только как теперь пользоваться этими данными ? сделать чтоб они отображались в другом месте скрипта?
можно как то загнать эти данные в переменную и выводить где нужно по скрипту?
$vivod==(print_r($row[zerno]));
$vivod==(print_r($row[kykyr]));
$vivod==(print_r($row[lucern]));
$vivod==(print_r($row[korov]));


что бы потом можно было вывести в строке
<td>Кол-во:<? $vivod ?></td>

сейчас выводит просто 1
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 07:54:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ytrewq123 пишет:
print_r($row[xleb]);
включи вывод ошибок и наблюдай как интерпретатор сначала пытается найти константу xleb
не забывать кавычки для ключей массива
Stunnets пишет:
эти данные в переменную
не получится просто потому что это цикл
и на каждой итерации отдается новый массив
если же это только один ряд то цикл никчему
впрочем в порядке бреда и в стиле предыдущих ответов

(Добавление)

PHP:
скопировать код в буфер обмена
  1. while($row = mysql_fetch_assoc($qr_result1)) {
  2.     $vivod[] = $row;
  3. }
  4. echo '<pre>';
  5. echo $vivod[0]['zerno'];
  6. echo $vivod[1]['zerno'];
  7. var_dump($vivod);
  8. echo '</pre>';
 
 Top
Stunnets
Отправлено: 01 Марта, 2016 - 10:08:29
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)






как тогда реализовать такой выпадающий что бы из выпадающего списка, пользователь выбирал обьект и количество этого обьекта отображалось в поле Кол-во?
может кто сталкивался , подскажите саму идею как обратится в БД чтоб вывод был не массивом а кол_во (содержание ячейки)
БД: mrakr226_wond
Табл: tb_dom
и в ней лежат все данные (числовые, кол продуктов)
'svin'
'riba'
'xleb'
'myaso'
'moloko'
или пример есть у кого
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 10:11:05
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




быстрее будет если приведешь структуру таблицы
смотри в сторону COUNT
и вообще узнай что есть агрегирующие функции в SQL
(Добавление)
и группировка
GROUP BY
 
 Top
Stunnets
Отправлено: 01 Марта, 2016 - 10:15:54
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Как привести структуру?
# Имя Тип Сравнение Атрибуты Null По умолчанию Дополнительно Действие
1 id int(10) Нет Нет AUTO_INCREMENT Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
2 user_dom varchar(100) cp1251_general_ci Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
3 zerno int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
4 kykyr int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
5 lucern int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
6 korov int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
7 svin int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
8 riba int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
9 kombik int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
10 xleb int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
11 myaso int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
12 moloko int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения
13 navoz int(50) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения



вот это ?
Извините если не то делаю , я только учусь)
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 10:21:33
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Stunnets пишет:
Извините если не то делаю , я только учусь)
конечно нет
сам как думаешь? кто вообще будет это читать?
CREATE TABLE ...
в формате создания таблицы
для начала
возможно будет недостаточно но для начала это
(Добавление)
если не умеешь то тупо в виде таблицы с названием полей и парой строк с значениями
например
id | c1 | c2 | c3
1 | 2 | 2 | 5
 
 Top
Stunnets
Отправлено: 01 Марта, 2016 - 10:32:09
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




вот
-- phpMyAdmin SQL Dump
-- version 4.0.10.7
-- http://www.phpmyadmin[dot]net
--
-- Хост: localhost:3306
-- Время создания: Мар 01 2016 г., 11:33
-- Версия сервера: 5.1.73-cll
-- Версия PHP: 5.4.31

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- База данных: `mrakr226_wond`
--

-- -------------------------------- ------------------------

--
-- Структура таблицы `tb_dom`
--

CREATE TABLE IF NOT EXISTS `tb_dom` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`user_dom` varchar(100) NOT NULL,
`zerno` int(50) NOT NULL,
`kykyr` int(50) NOT NULL,
`lucern` int(50) NOT NULL,
`korov` int(50) NOT NULL,
`svin` int(50) NOT NULL,
`riba` int(50) NOT NULL,
`kombik` int(50) NOT NULL,
`xleb` int(50) NOT NULL,
`myaso` int(50) NOT NULL,
`moloko` int(50) NOT NULL,
`navoz` int(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=19 ;

--
-- Дамп данных таблицы `tb_dom`
--

INSERT INTO `tb_dom` (`id`, `user_dom`, `zerno`, `kykyr`, `lucern`, `korov`, `svin`, `riba`, `kombik`, `xleb`, `myaso`, `moloko`, `navoz`) VALUES
(17, 'Marina', 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100),
(18, 'Stunnets', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 10:36:45
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ну вот уже можно думать
например колво zerno
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(DISTINCT zerno) FROM tb_dom WHERE user_dom = 'user_dom_какойто'
для примера
хотя боюсь не будет понятно зачем (DISTINCT zerno)
надо еще понять что конкретно надо
лучше рассказать задачу...что надо и по каким условиям и что подсчитывать
 
 Top
Stunnets
Отправлено: 01 Марта, 2016 - 10:52:52
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




на рисунке выше видно что это рынок, пользователь(user_dom) выкладывает свои товары(хранящиеся в tb_dom) в магазин. из выпадающего меню он выбирает какой товар будет выставлять на продажу, и в колонке Кол-во(ТОВАР) видит количество своего товара( это количество я и пытаюсь вывести в переменную, что бы потом пользователь мог выбрать какое количество он хочет выставить(КОЛ-Во 2) и установить цену(ЦЕНа) вот такой смысл
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 11:04:06
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




все проще чем я думал
все элементарно
боюсь все более чем просто для нормального программиста
придется напрячься и всеже потратить время на изучение предмета
чтоб не быть совсем скотиною ))
PHP:
скопировать код в буфер обмена
  1. while($row = mysql_fetch_assoc($qr_result1)) {
  2.     echo 'имя : ' . $row['user_dom']  . '<br>';
  3.     unset($row['user_dom']);
  4.     foreach($row as $name => $tovar){
  5.         echo $name . ' - ' . $tovar . '<br>';
  6.     }
  7. }

(Отредактировано автором: 01 Марта, 2016 - 11:05:02)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB