Jump to content
  • 0

Ифы и ифы форах


gesandte
 Share

Question


Вот кусок кода:


{
$modules = mysql_fetch_array($query_modules);
if ($content === $modules[id_name])
{
include "modules/$modules[id_name]/index.php";
}
}

if ($content === "auth") :
include "auth.php";
elseif ($content === "close") :
include "close.php";
elseif ($content === "mail") :
include "mail.php";
else :
include "modules/$settings[/page][page]/index.php";
endif;
  for ($i = 0; $i < mysql_num_rows($query_modules); $i++)

$content извлекается из адресной строки(гет).

Предположим что в каждом файле содержится некая переменная, имя которой одинаково в каждом файле, а значения разные.

Проблема в том, что если условие равенства выполняется в куске кода с циклом, то второй кусок кода(if-elseif-else) срабатывает на else. В итоге переменная изменит свое значение. Можно конечно решить эту проблему очень просто, поменяв местами части этого кода, т.е вначале if-elseif-else, а затем уже цикл.

Но это решение не кажется мне правильным, т.к получается, что если $content будет соответствовать условию в цикле, то вначале подгрузится файл от первой части кода (сработает else), а только потом нужный нам файл. Конечно в итоге на выходе значение условной переменной из файла будет иметь нужное значение.

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

хотя........................

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

Как видите, то что я придумал на ходу выглядит как то уж очень громоздко, может кто преложит более простой и компактный вариант

Спасибо.

П.с Изначально планировалось использовать switch-case , а во внутрь ее поместить еще и цикл. Код конечно выглядел там красиво, но вылетала ошибка(((

ПП.сс Ивиняюсь за кривое название темы)

Edited by gesandte
Link to comment
Share on other sites

Recommended Posts

  • 0
т.к он преднеазначен для извлечения нужного элемента из запси.
Ну да
Т.о можно прогнать через массив только одно поле
Щитоо??

http://ru.php.net/manual/en/function.mysql-result.php

$array_size=sizeof(mysql_num_rows($result));
$fields_count=5;
for ($x=0; $x < $array_size; $x++)
for ($field=0; $field < $fields_count; $field++)
echo myqsl_result($result,$x,$field);

Link to comment
Share on other sites

  • 0
Т.о можно прогнать через массив только одно полеЩитоо??

http://ru.php.net/manual/en/function.mysql-result.php


for ($i = 0; $i < mysql_num_rows($result); $i++) {
for ($j = 0; $j < mysql_num_fields($result); $j++) {
echo mysql_result($result,$i,$j);
}
}

Edited by gesandte
Link to comment
Share on other sites

  • 0

Всеее, мозг уже отказывается работать.

Int , в этом примере прогоняется все содержимое таблицы, а если надо прогнать только 2 поля, то надо чтоли занести их в массив, и применить за место $result в mysql_num_fields этот массив......

но каким хреном вывести через mysql_result это в цикле

echo "<li><a href=\"index_2.php?content=$menu[id_name]\">$menu[name]</a></li>";

:D щас голова треснет...............

Link to comment
Share on other sites

  • 0

Все, разобрался и все работает, спасибо Int. :D Только вместо номера поля лучше использовать имя, т.к если внести какие нибудь изменения в структуру таблицы, то придется и тут изменения вносить :D

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy