|
|
|
| Доброго всем дня!
При написании следующего кода вылезает синаксическая ошибка :
$modules = $_GET['modules'];
if(!isset($modules) || $modules == '') {
$modules = 'main';
}
switch ('modules') {
$q = 'select * from '.$tbl_menu.' where hide='show' order by pos asc'; ( ругатся начинается с этой строки)
$r = mysql_query($q);
while ( $c = mysql_fetch_array($r)) {
case ' ".$modules."' :
echo '<p>Chegoto tam eshe</p>';
breack;
}
}
|
Что я не правильно пишу ?
По логике должно быть правильно и сточки зрения синтаксиса ?
Как это правильно записать?
Заранее спсибо
ecipuser | |
|
|
|
|
|
|
|
для: ecipuser
(01.05.2011 в 19:34)
| | Когда вы используете одиночные кавычки, нужно обрамлять строку либо двойными кавычками, либо экранировать одиночные кавычки.
<?php
...
$q = "select * from $tbl_menu where hide='show' order by pos asc";
$q = 'select * from '.$tbl_menu.' where hide=\'show\' order by pos asc';
...
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(01.05.2011 в 20:38)
| | Это конечно также верно.
Но....
ошибка ругается на любую строку, которая находиться между switch and case :
switch ($modules) {
$q = mysql_query("select * from ".$tbl_menu." where hide='show' order by pos asc");
while ($cas = mysql_fetch_array($q)) {
case ' '.$case['modules'].' ':
echo "HELP MY! ";
breack;
}
}
|
Как мне заставитть работать такой механизм?
Иначе говоря нужно, чтобы в цикле выводилось нужное количество case !!!
Не понимаю, почему не работает......
Даже если написать таким образом
$q = 'select * from '.$tbl_menu.' where hide=\'show\' order by pos asc';
$r = mysql_query($q);
///------------Формируем вывод страниц основного и дополнительного меню -----------///
switch ($modules) {
while($case = mysql_fetch_array($r)) {
case ''.$case['modules'].'':
require_once("./thema/header.php");
include("./modules/".$case['page_ind'].".php");
require_once("./thema/footer.php");
break
}
}
|
ругатся на строку с описанием цикла
Parse error: syntax error, unexpected T_WHILE, expecting T_CASE or T_DEFAULT or '}' in
Заранее спасибо | |
|
|
|
|
|
|
|
для: ecipuser
(01.05.2011 в 23:22)
| | Хм... да, а почему у вас ключевого слова case нет? | |
|
|
|
|
|
|
|
для: cheops
(01.05.2011 в 23:53)
| | Уважаемый cheops!
А причем здесь ключевое слово case?
Если не понятно почему конструкция не работает? | |
|
|
|
|
|
|
|
для: ecipuser
(01.05.2011 в 23:57)
| | После свитча сразу должен идти кейс, это раз.
И что за вывод кейсов в цикле? Что же надо употреблять, чтобы такое в голову пришло
Лучше скажи, что именно этот код должен делать с данными из БД
[поправлено модератором] | |
|
|
|
|
|
|
|
для: nikita2206
(02.05.2011 в 00:04)
| | сначала
$q = mysql_query("select * from ".$tbl_menu." where hide='show' order by pos asc");
while ($cas = mysql_fetch_array($q)) {
|
а потом уже
switch ($modules) {
case ' '.$case['modules'].' ':
echo "HELP MY! ";
breack;
}
|
| |
|
|
|
|
|
|
|
для: parczynski
(02.05.2011 в 02:20)
| | Для parczynski!
Спасибо!
Но не глупость ли получается, если в цикле будет 10 значений $case['modules'] , то значит 10 раз будет вызываться switch ($modules) ? | |
|
|
|
|
|
|
|
для: ecipuser
(02.05.2011 в 09:49)
| | ну или
$q = mysql_query("select * from ".$tbl_menu." where hide='show' order by pos asc");
switch ($modules) {
case ' '.$case['modules'].' ':
while ($cas = mysql_fetch_array($q)) {
}
breack;
}
|
так действительно будет правильнее | |
|
|
|
|
|
|
|
для: parczynski
(02.05.2011 в 20:05)
| | break | |
|
|
|
|
|
|
|
для: parczynski
(02.05.2011 в 20:05)
| | Спасибо, всем! Разобрался.
Кому интересно, решил таким образом:
$q = "select * from ".$tbl_menu." where hide='show' and modules='".$modules."' order by pos asc";
$r = mysql_query($q);
$incase = mysql_fetch_array($r);
switch ($modules) {
case $incase['modules']:
include("./modules/".$incase['modules']."/index.php");
break;
}
|
| |
|
|
|