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
Форумы портала PHP.SU :: Версия для печати :: Вывод значений из БД с помощью выпадающего списка
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Вывод значений из БД с помощью выпадающего списка

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

1. Stunnets - 28 Февраля, 2016 - 16:16:27 - перейти к сообщению
есть код помогите вывести значение с помощью впадающего списка.

<?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 хотя все таблицы и поля есть Где моя ошибка подскажите плз
2. suvidj3316 - 29 Февраля, 2016 - 00:26:38 - перейти к сообщению
Так понимаю, у тебя всё-таки таблица tb_dom есть, а не tb_domzerno?
Если в первом случае выводились данные, а во втрором - ошибка?
3. Stunnets - 29 Февраля, 2016 - 01:41:59 - перейти к сообщению
изменил на вот такой запрос
$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 ) как мне вывести в переменную только числа?
4. Stunnets - 29 Февраля, 2016 - 19:55:22 - перейти к сообщению
может хоть кто подсказать где почитать про это ?
5. ytrewq123 - 29 Февраля, 2016 - 20:54:50 - перейти к сообщению
Чтобы выводило просто цифру напишите в цикле так.
print_r($row[xleb]);
Так как вытаскиваете ассоциативный массив.
И другие так же print_r($row[имя поля что выбираем]);
6. Stunnets - 29 Февраля, 2016 - 21:27:08 - перейти к сообщению
спасибо 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
7. LIME - 01 Марта, 2016 - 07:54:35 - перейти к сообщению
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>';
8. Stunnets - 01 Марта, 2016 - 10:08:29 - перейти к сообщению


как тогда реализовать такой выпадающий что бы из выпадающего списка, пользователь выбирал обьект и количество этого обьекта отображалось в поле Кол-во?
может кто сталкивался , подскажите саму идею как обратится в БД чтоб вывод был не массивом а кол_во (содержание ячейки)
БД: mrakr226_wond
Табл: tb_dom
и в ней лежат все данные (числовые, кол продуктов)
'svin'
'riba'
'xleb'
'myaso'
'moloko'
или пример есть у кого
9. LIME - 01 Марта, 2016 - 10:11:05 - перейти к сообщению
быстрее будет если приведешь структуру таблицы
смотри в сторону COUNT
и вообще узнай что есть агрегирующие функции в SQL
(Добавление)
и группировка
GROUP BY
10. Stunnets - 01 Марта, 2016 - 10:15:54 - перейти к сообщению
Как привести структуру?
# Имя Тип Сравнение Атрибуты 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) Нет Нет Изменить Изменить Удалить Удалить
Первичный Первичный
Уникальный Уникальный
Индекс Индекс
Пространственный Пространственный
Полнотекстовый Полнотекстовый
Уникальные значения Уникальные значения



вот это ?
Извините если не то делаю , я только учусь)
11. LIME - 01 Марта, 2016 - 10:21:33 - перейти к сообщению
Stunnets пишет:
Извините если не то делаю , я только учусь)
конечно нет
сам как думаешь? кто вообще будет это читать?
CREATE TABLE ...
в формате создания таблицы
для начала
возможно будет недостаточно но для начала это
(Добавление)
если не умеешь то тупо в виде таблицы с названием полей и парой строк с значениями
например
id | c1 | c2 | c3
1 | 2 | 2 | 5
12. Stunnets - 01 Марта, 2016 - 10:32:09 - перейти к сообщению
вот
-- 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 */;
13. LIME - 01 Марта, 2016 - 10:36:45 - перейти к сообщению
ну вот уже можно думать
например колво zerno
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT COUNT(DISTINCT zerno) FROM tb_dom WHERE user_dom = 'user_dom_какойто'
для примера
хотя боюсь не будет понятно зачем (DISTINCT zerno)
надо еще понять что конкретно надо
лучше рассказать задачу...что надо и по каким условиям и что подсчитывать
14. Stunnets - 01 Марта, 2016 - 10:52:52 - перейти к сообщению
на рисунке выше видно что это рынок, пользователь(user_dom) выкладывает свои товары(хранящиеся в tb_dom) в магазин. из выпадающего меню он выбирает какой товар будет выставлять на продажу, и в колонке Кол-во(ТОВАР) видит количество своего товара( это количество я и пытаюсь вывести в переменную, что бы потом пользователь мог выбрать какое количество он хочет выставить(КОЛ-Во 2) и установить цену(ЦЕНа) вот такой смысл
15. LIME - 01 Марта, 2016 - 11:04:06 - перейти к сообщению
все проще чем я думал
все элементарно
боюсь все более чем просто для нормального программиста
придется напрячься и всеже потратить время на изучение предмета
чтоб не быть совсем скотиною ))
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. }

 

Powered by ExBB FM 1.0 RC1