Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Простой вывод из базы, в зависимости от значения переменной

41K
01 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Вобщем у мя есть список валют в таблице
Цитата:
id title curs
1 рубей 1.000
2 долларов 33.505
3 евро 45.606



Вот, и у меня есть переменная

$valutes = "1"; // Валюта 1-рублей, 2-долларов, 3 - евро. Можно добавлять в админ-панели.


Вобщем мне надо выводить название валюты в зависимости от переменной.
Вот код который я тестил, но так ничё не добился:

Код:
<?php
// Инклюдим конфиги
include("../../function/config.php");
include("configuration.php");
//Стартуем сессию
session_start();
//Конектим мускул-сервер
$connect = mysql_connect($host, $db_login, $db_pass);
$select_db = mysql_select_db($name_db);

//Вытаскиваем валюту
$valute = mysql_query("SELECT * FROM `shop_valute`");
$val = mysql_fetch_array($valute);
//Выводим валюту
echo("Валюта магазина - ".$val[$valutes]." <br>");
echo("<br>");
// Завершаем соединение
mysql_close($connect);
?>


Вот, мне нужен ресультат
Валюта магазина - (если $valutes = 1) рублей
(если $valutes = 2) долларов
(если $valutes = 3) евро

Как реализовать без циклов и всякой хни...?
39K
01 апреля 2009 года
Mihalytch
19 / / 27.07.2008
 
Код:
$valute = mysql_query("
    SELECT *
    FROM `shop_valute`
    WHERE id = $valutes
"
);
13
01 апреля 2009 года
RussianSpy
3.0K / / 04.07.2006
Цитата: Mihalytch
 
Код:
$valute = mysql_query("
    SELECT *
    FROM `shop_valute`
    WHERE id = $valutes
"
);



Дружище, про SQL-инъекции слыхал? По-видимому, нет.

Чтобы избежать их в данном случае лучше всего сделать так:

 
Код:
$valutes = intval($_GET['valutes']);
$result = mysql_query("SELECT * FROM shop_valute WHERE id = $valutes");
41K
02 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Всё конечно красиво выглядит, но не работает должным образом...
Цитата:
<?php
// Инклюдим конфиги
include("../../function/config.php");
include("configuration.php");
//Стартуем сессию
session_start();
//Конектим мускул-сервер
$connect = mysql_connect($host, $db_login, $db_pass);
$select_db = mysql_select_db($name_db);
//Вытаскиваем валюту
$valute = mysql_query("SELECT * FROM shop_valute WHERE id = $valutes");
$val = mysql_fetch_array($valute);
//Выводим валюту
echo("Валюта магазина - ".$val[$valutes]." <br>");
echo("<br>");
// Завершаем соединение
mysql_close($connect);
?>


А получается также, что если $valutes = 1, то надпись рублей, а если $valutes = 2, то надпись 1.1000, т.е. он опять отображает curs, а не title...

41K
02 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Всё конечно красиво выглядит, но не работает должным образом...
Код:
<?php
// Инклюдим конфиги
include("../../function/config.php");
include("configuration.php");
//Стартуем сессию
session_start();
//Конектим мускул-сервер
$connect = mysql_connect($host, $db_login, $db_pass);
$select_db = mysql_select_db($name_db);
//Вытаскиваем валюту
$valute = mysql_query("SELECT * FROM shop_valute WHERE id = $valutes");
$val = mysql_fetch_array($valute);
//Выводим валюту
echo("Валюта магазина - ".$val[$valutes]." <br>");
echo("<br>");
// Завершаем соединение
mysql_close($connect);
?>

А получается также, что если $valutes = 1, то надпись рублей, а если $valutes = 2, то надпись 1.1000, т.е. он опять отображает curs, а не title...
13
02 апреля 2009 года
RussianSpy
3.0K / / 04.07.2006
Похоже что вы не понимаете как работает ваш (а он ваш???) скрипт.

Вот например:

 
Код:
$valute = mysql_query("SELECT * FROM shop_valute WHERE id = $valutes");


Если у вас переменная $valutes принимает всего 3 значения - то соответственно в таблице тоже должно быть 3 значения (как таблица ваша устроена вы не показали)

Или вот еще один бредовый участок:

 
Код:
echo("Валюта магазина - ".$val[$valutes]." <br>");


Опять же непонятно что вы тут выводите.


В общем чтобы сказать что у вас работает не так нужно как минимум знать устройство вашей таблицы.
41K
02 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Таблицу я привёл в 1ом посте...
Цитата:

id title curs
1 рубей 1.000
2 долларов 33.505
3 евро 45.606


Скрипт мой, ток не пойму как правельно вывести...а тот бредовый кусок, был просто пример как я пытался, сделать...
Вот я и спрашиваю здесь как вывести правильно в зависимости от значения переменной...
З.Ы Значений переменной может быть хоть сколько, это добавляется в админке...

41K
02 апреля 2009 года
GoLD@r
22 / / 13.03.2009
У меня ещё вопрос...разумно загружать в базу бинарные данные.
Ну те же картинки например...или же лучше создать папку upload и всё туда грузить?
5
02 апреля 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: GoLD@r
У меня ещё вопрос...разумно загружать в базу бинарные данные.

Это вопрос целостности данных. СУБД контролирует работу над любыми объектами в БД, тогда как ФС позволяет фактически бесконтрольно (в плане логики программы) работать с файлами. Здесь скорее вопрос надежности - если выдвигаются серьезные требования на целостность БД, то конечно, данные грузить в БД; в разумных пределах, разумеется - файл на пару гигабайтов, понятное дело, туда никто в здравом уме засовывать не будет.

Цитата: GoLD@r
Ну те же картинки например...или же лучше создать папку upload и всё туда грузить?

Врядли картинки требуют исключительного внимания к себе, потому лучше их хранить в отдельном каталоге - да и передаваться клиенту будут быстрее.

З.Ы. СУБД умеют целиком бэкапить БД, а в случае, когда у нас еще имеются внешние файлы, то об их сохранности нужно самому заботиться.

41K
02 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Цитата:
З.Ы. СУБД умеют целиком бэкапить БД, а в случае, когда у нас еще имеются внешние файлы, то об их сохранности нужно самому заботиться.


Ясно, спасибо!
Ну а можно получить кансультинг на мою первую проблему?

41K
02 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Цитата:
З.Ы. СУБД умеют целиком бэкапить БД, а в случае, когда у нас еще имеются внешние файлы, то об их сохранности нужно самому заботиться.


Ясно, спасибо!
Ну а можно получить кансультинг на мою первую проблему?

13
02 апреля 2009 года
RussianSpy
3.0K / / 04.07.2006
Первая ваша проблема в том что переменная $valutes не получает значения. Она пустая. И как следствие не отрабатывает запрос
41K
03 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Цитата:
Первая ваша проблема в том что переменная $valutes не получает значения. Она пустая. И как следствие не отрабатывает запрос


Да нет, переменная есть, она хранится в инклюдном файле
include("configuration.php");
Там она имеет значение:
$valutes = "1"; // Валюта 1-рублей, 2-долларов, 3 - евро. Можно добавлять в админ-панели.
Поэтому не в этом проблема...
Проблема в том что когда стоит значение 1, то он отображает:

Цитата:
Валюта магазина - рублей


Когда значение 2, он отображает

Цитата:
Валюта магазина - 1.1000


А по моему замыслу должно быть написано:

Цитата:
Валюта магазина - долларов

244
03 апреля 2009 года
UAS
2.0K / / 19.07.2006
Цитата:
echo("Валюта магазина - ".$val[$valutes]." <br>");


Вам же ответили, где ошибка. Если $valutes == 2, то выводиться второе поле (отсчет от 0) в строке результата, т.е. 1.100.

Чтобы не парить вас (чтением учебника), то вот решение:
echo("Валюта магазина - ".$val[1]." <br>"); или echo("Валюта магазина - ".$val["title"]." <br>");

41K
03 апреля 2009 года
GoLD@r
22 / / 13.03.2009
Цитата:
echo("Валюта магазина - ".$val[1]." <br>"); или echo("Валюта магазина - ".$val["title"]." <br>");


А что это значит?

Цитата:
Валюта магазина - Resource id #5

41K
03 апреля 2009 года
GoLD@r
22 / / 13.03.2009
А, всё, заработало спасибо!!! :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог