IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Ну вот дороботал всё и опять нужна помощь профессионалов =/ (https://www.imho.ws/showthread.php?t=20101)

dob 10.01.2003 09:35

Ну вот дороботал всё и опять нужна помощь профессионалов =/
 
Я написал переделал тот скрипт , что стасик любезно предоставил для чтения данных из файла типа pl
ну вот всё ок вродя работает всё выводится в стиле
echo $user["чего надо тута"]
но вот столкнулся с маленькой загвоздкой и мне терь снова нужна помощь там есть такая переменная как objects и в ней может содеражться несколько данных...
т.е. если я напишу в таком виде echo $user["objects"] то на экран мне выведит типа ring1,gloves3,axe2 и т.д.
так вот а что мне надо я так понял , что это надо рассматривать как массив но беда я не знаю как:idontnow:
и ещё при рассмотрении каждого из этих элементов чтобы они как бы приобретали свойство переменной в стиле $ring1 ,
$axe2 и т.д. и у меня есть созданные массивы для переменных и , если название совпадает с названием массива , то тогда дальше уже понятно........... мдя вроде постарался объяснить всё как можно понятнее.... ну ладно...... напишите плизз а то я не знай чего мене делать =/ :баран:

dob 10.01.2003 23:00

мдя.... просмотры есть а ответов нету ну чтоже попробую ещё сильнее разживать вот значит что написано в файле pl
objects=ring1,ring2,axe3,ashield2
вот значит с помощью моего скрипта как длжно вывести
echo $user["objects"] и после этого он правильно само собой выедит просто эти названия вещей. в стиле ring1,ring2,axe3,ashield2
так вот а мне надо , чтобы эти вещи не выводили , а для каждой запускался поиск по базе данных mysql ..... я так понял , что это надо как массив рассматривать...
жду ответа=/

dob 11.01.2003 05:29

может чего не понятно так вы спросите =/

Aeon 11.01.2003 08:24

хм...

$objects = explode(",", $user["objects"]);

это тебе сделает array типа

$objects[0] = "ring1";
$objects[1] = "ring2";
$objects[2] = "axe3";
$objects[3] = "ashield2";

скажи конкретно какой поиск по базе ты собираешься запускать, я тебе скажу как его лучше всего написать :)

скорее всего будет что-то вроде

$select = (count($objects) > 1) ? implode(" OR ", $objects) : $objects[0];
$sql = "SELECT * FROM table WHERE name = $select";

Если есть вопросы, пиши :)

dob 11.01.2003 11:27

ну я в базу хочу сделать что-то типа название предмета например ring1
и к нему всякие параметры вот и если находит в базе вещь с тем же названием что и в нашем массиве , то склладывает параметры вещи с параметрами других вещей ,Ю которые имеются тоже , а потот если конечно так возможно заменяет картинку у персонажа на картинку оружия....

Aeon 11.01.2003 11:29

угу... ну если ты уверен что названия вещей всегда уникальны, то это сработает. То что я написал должно тебе подойти... пробуй, если будут ещё вопросы, пиши :)

dob 11.01.2003 11:50

Я точна уверен что названия вещей уникальны..
так ты не ответил как написать так чтобы эти вещи "надевались" на персонажа
т.е. если попалась например armor1 то заменила пустую картинку с названием паложим zero1 и вот чтобы эта вещь вернее картинка этой вещи вставала на место этой пустой картинки....... ну типа ещё вот такое вота дело

Aeon 11.01.2003 12:31

table equipment
id int(2), name varchar(64), property1 varchar(200), property2 varchar(200), pic varchar(64);
Код:

$select = (count($objects) > 1) ? implode(" OR name=", $objects) : $objects[0];
$sql = "SELECT name,property1,property2,pic FROM equipment WHERE name = $select";
$result = mysql_query($sql) or die(mysql_error());
$i = 0;
while($row = mysql_fetch_row($result))
{
    $equipment[$i]['name'] = ($row[0]) ? $row[0] : 'untitled';
    $equipment[$i]['pic'] = ($row[3]) ? $row[3] : 'unknown.gif';
    $equipment[$i]['property1'] = $row[1];
    $equipment[$i]['property2'] = $row[2];
    $i++;
}
unset($i);

foreach($equipment as $piece)
{
    echo $piece['name'].'<br>';
    echo '<img src="/images/equipment/'.$piece['pic'].'"><br><br>';
}


dob 11.01.2003 13:24

мдя.... ну ладно-:че:- я мертвейц а де я объявлю к какой базе то обращаться и чего ты там сверху написал? я - баран!
:xex: не стоит ругаться а чего вот значит верхняя строчка перед кодом? это типа что в таблице должно быть?

Aeon 11.01.2003 13:57

ну я предположил собссно что ты уже обратился к базе... а первая строчка, это структура таблицы которая использована в моём примере... просто поменяй в моём примере названия таблицы и полей на свои...

dob 11.01.2003 14:06

ясно
тока вот в чём дело мне не нужно чтобы выводилсь все вещи подряд мне нужно чтобы вещи каждая конкретно выводилась в другу фиигню вобщем вот тута глянь мож поймёшь меня
http://mlcs.saburovo.com/main/main.php?page=s_whois
введи там ник к примеру скажем jasa
и глянь как правильно вещи выводится на свои места должны...

Aeon 11.01.2003 22:13

круто, в общем... но не совсем понимаю твоего вопроса... то есть совсем не обязательно использовать foreach, можно и по отдельности их выводить... но объясни мне как ты будешь идентифицировать объекты по типу (т.е., по какому признаку скрипт будет отличать меч от кольца, и знать какую картинку где показывать?)

я бы посоветовал в таблице equipment добавить цифровое поле eqtype и добавить отдельную таблицу типов объектов... вроде этого:
Код:

----------------------------------------------------
table eqtypes
id int(2), name varchar(64)

INSERT into eqtypes values (1,"меч");
INSERT into eqtypes values (2,"щит");
INSERT into eqtypes values (3,"шлем");
INSERT into eqtypes values (4,"броня");
INSERT into eqtypes values (5,"штаны");
INSERT into eqtypes values (6,"обувь");
INSERT into eqtypes values (7,"пояс");
INSERT into eqtypes values (8,"кольцо");
INSERT into eqtypes values (9,"амулет");
INSERT into eqtypes values (10,"серьга");
----------------------------------------------------

table equipment
id int(2), name varchar(64), eqtype int(2), property1 varchar(200), property2 varchar(200), pic varchar(64);


другой вариант состоит в создании eqtype поля типа enum... это выглядит примерно так:

table equipment
id int(2), name varchar(64), eqtype enum("меч","щит","шлем","броня","штаны","обувь","пояс","кольцо","амуле т","серьга"), property1 varchar(200), property2 varchar(200), pic varchar(64);

преимущество первого варианта в большей гибкости - гораздо легче добавлять варианты... преимущество второго - большая статичность и незначительно большая простота кода.

В любом варианте проблема вывода картинок в соотвествующие поля html-таблицы решаются достаточно просто...

если есть вопросы, пиши дальше :)

dob 11.01.2003 23:27

как мне сказал человек , который сделал такую штуку и не желающий раскрывать ответ
цитирую "Из базы правильно вроде вытаскиваешь , но вся заморочка у тебя будет с картинками......"
"Ну так может под скажешь?"
"Ищи что такуое template и всё поймёшь"
вот млин..... ну как мож вы поняли чаго значит?

dob 12.01.2003 07:17

так вот ия не понял чего такого он мене сказал =/

Aeon 12.01.2003 09:10

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

dob 12.01.2003 09:13

ща попробую значит и скажу чаго не понял

dob 12.01.2003 10:47

Объясни мне на пальцах вот что
я должен добавить вещь в базу данныхх
что я добавляю :название вещи летературное мне не надо вот чего мне надо
название вещи по изображению(что собственно нам и надо найти)
Ссылка на картинку (которая должна встать на место пустого слота картинки в персонаже ну ты видел как это по той ссылке)
И тута должны быть параметры обязательно
минимальный урон
максимальный урон
Ну и в том же духе всякие параметры оружия
а потмо чтобы когда все вещи были найдены , то скрипт должен сложить все параметры , которые одинаковые ну например бонус к силе или бонус к ловкости
можешь написать как это будет выглядить?? потому что сначала мне надо базу полностью забить всеми вещами , а потом уж действовать =/
я хачу создать php файл чтобы через интернет добавлять эти вещи..... я то обращусь к базе данных но как всякие эти переменные туда засунуть???

Aeon 12.01.2003 11:19

в чём твой конкретный вопрос? как вставить инфу в mysql? используй запрос INSERT. Как перекинуть инфу на сервер? используй html-форму с php файлом который вставляет инфу в базу как form action.

dob 13.01.2003 01:44

я не умею создавать сами таблицы =/ всегда все скрипты были с ними
т.е.
как я понял мне нужно создать таблицу , гд е названия вещей по их стилю в файле pl
а в каждой из этих штуковин по ещё одной таблице где все другие параметры в том числе и определение типа вещи ицифоркой?

dob 13.01.2003 01:48

у мя есть базща данных всмысле а вот как в неё эти таблицы вставить не знаю =/ вы уж простите =/
мож напишите или навцчите?

dob 13.01.2003 01:55

А ну всё я чсам разобрлся я с помощью php my admin сщздал таблицу

dob 13.01.2003 02:03

ага тока вот одно значит у мя в таблице начинается всё с поля name , т.е. поиск должен производится по этому имени , т.к. оно называет имя предмета то кторое соответсвует названию в файле pl
воть.... значит скрипт поиска надо изменить как тогда написать , что поиск по всей базе данных кокретно в этой переменной?

dob 13.01.2003 03:04

вот блин
 
Вложений: 1
вроде написал всё правильно =/ не хочит добавлять в базу данных и всё вот чего пишет
Parse error: parse error, unexpected '{' in d:\web\1gb.ru\hosted\darkdungeon_61ceb09e85e36cec55f1a71e0d669419\add. php on line 100
млин я прилагаю сюды скрипт он довольно большой просто я его в файлом вложу погляди и скажи чего я не так сделал? чего он матерится на меня??

Aeon 13.01.2003 08:55

ты на линии 99 пропустил закрывающую скобку... вместо

if(isset($name)

напиши

if(isset($name))

и всё будет пучком

dob 13.01.2003 14:48

мляя это ж надо было =/

dob 13.01.2003 15:24

Parse error: parse error, unexpected T_STRING in d:\web\1gb.ru\hosted\darkdungeon_61ceb09e85e36cec55f1a71e0d669419\add. php on line 138
млин эта весч меня раздрожаеть =/а там вроде всё правильно на этой 138 строке....

dob 13.01.2003 15:37

ДАААААА ВСЁ Я СДЕЛАЛ ТЕРЬ БУДУ В БАЗУ ЗАБИВАТЬ =)))))))

dob 13.01.2003 15:47

у мя тока вопрос а он точно добавит? =))

Aeon 13.01.2003 15:50

добавит лишь настолько точно насколько точно ты написал скрипт :) тестируй, в общем.

dob 13.01.2003 15:57

в общем он мне пишет после нажатия кнопки - готово т.е. по идее он добавил...
значит я напишу проверочный скрипт там в поле введу имя предмета и пускай он мне картинку выдаст и параметры .. всё попробую коли чего не та кто обращуся
наконец то воть я изучил с вашей помощью немнога обращение с базой =)))
ОГРОМНОЕ СПАСИБО

Aeon 13.01.2003 16:32

дык... пожалуйста :) рад был помочь

dob 13.01.2003 16:48

ок лано ща на учёбу потом на работу =/ посля уж напишу скрипт

dob 14.01.2003 02:46

слушай а как напи сать так чтобы шёл поиск по базе данных именно только по переменной или как ето там называется name т.е. это я для проверки хачу сделать...
чтобы в поле ввести имя предмета как в скрипте выдаёть и чтобы если совпадёт то картинка выводилась?
и ещё я значит сделал таблицу так у меня там куча параметров сам видел я думаю и вотрой - vid - это вид предмета т.е. потом мне нужно будет за место картинки написать типа к примеру за место оружия
Код:

if($vid = 1)
{
то тута сслка на изображение в стиле $link
}
else
{
тута ссылка на дефолтный имдж
}

правильно я думаю? и да ответь пожалуйста на первый вопрос в моём посте...

Aeon 14.01.2003 06:50

1) SELECT * FROM equipment WHERE name = 'test'

2) в принципе правильно.
Код:

if(empty($image))
{
    $pic = 'types/'.$vid.'.gif';
}
else
{
    $pic = 'equipment/'.$image.'.jpg';
}
echo '<img src="img/'.$pic.'">';


dob 15.01.2003 02:50

слушай а ещё вопрос а как мне сделать так чтобы то что мне нужно выводилось в жирном стиле? я просто делаю запрос
<?
echo $user["login"] '
?>
и вот как мне тута написать чтобы жирным вывеася информация

dob 15.01.2003 02:52

Цитата:

1) SELECT * FROM equipment WHERE name = 'test'
а это как понять
WHERE name - name - это название моей переменной али это так и должно быть при каждом выводе?

Aeon 15.01.2003 09:13

1. echo '<b>'.$user["login"].'</b>';
2. name это название поля по которому ты делаешь поиск в базе данных. test заменяй тем значением которое ты ищешь. (т.е., если я ищу запись где name объекта равно asword3, я делаю запрос вроде: SELECT * FROM equipment WHERE name = 'asword3'. Если же я ищу все записи где объект весит ровно 10кг, я делаю запрос: SELECT * FROM equipment WHERE weight = '10')

Stasik 15.01.2003 10:15

напиши ему сам :xex:

Aeon 15.01.2003 10:37

фиг я ему напишу, пускай учится... на вопросы отвечаю, и то ладно :)

AleXXXSoft 15.01.2003 14:43

Он тебя еще не достал?
Вот меня и правда... проще ему все было написать и все=)
:xex:


Часовой пояс GMT +4, время: 13:14.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.