X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> if / elseif / endif...
Licoric
Licoric
Topic Starter сообщение 13.9.2009, 2:23; Ответить: Licoric
Сообщение #1


Что-то запутался немного в "ифах".
Суть:
Сначала вывожу фирмы. Выбираю. Появляются семейства. Выбираю. Далее - модель. Выбрав модель попадаю к добавлению отзыва.
Процесс выбора осуществляется по средствам дописывания к адресной строке параметров (это все есть).
В последний момент - не исчезает вывод списка автомобилей, но уже появляется форма отзыва.
Пробовал ставить if / elseif / else... Но что-то не получается. То ошибка, то ничего. То еще что-то.
Вот то, как почти все работает (на примере ауди - там полностью модельный ряд есть) и полный код:
[php]<?php
include ("../header.php");

if(empty($_GET['brand']) && empty($_GET['model']) && empty($_GET['car']))
// если нет бренда, модели и названия
{
echo "Выберите фирму:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_brand order by brand";

$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$brand = "".$row['brand']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$id'>$brand</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>";
}
}

if(!empty($_GET['brand']) && empty($_GET['model']) && empty($_GET['car']))
// если нет модели и названия, но есть бренд
{
$brand = $_GET['brand'];

// выводим бренд
include ("../mysql.php");
$query2 = "SELECT * FROM aci_brand where id = $brand";
$res2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($res2))
{
$brand_name = "".$row2['brand']."";
echo "<h1>$brand_name</h1>";
}

echo "Выберите семейство:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_model where brand = $brand order by brand";

$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$model = "".$row['model']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$brand&model=$id'>$model</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>";
}
echo "<a href='add_preview.php'>Назад</a>";
}

if(!empty($_GET['brand']) && !empty($_GET['model']))
// если нет названия, но есть бренд и модель
{
$brand = $_GET['brand'];
$model = $_GET['model'];
include ("../mysql.php");
$query2 = "SELECT aci_brand.brand as brand_name, aci_model.model as model_name FROM aci_brand, aci_model WHERE aci_brand.id = aci_model.brand and aci_model.id = $model";
$res2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($res2))
{
$brand_name = "".$row2['brand_name']."";
$model_name = "".$row2['model_name']."";
echo "<h1>$brand_name - $model_name</h1>";
}
echo "Выберите автомобиль:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_car where model = $model order by car";
$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$car = "".$row['car']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$brand&model=$model&car=$id'>$car</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>";
}
echo "<a href='add_preview.php?brand=$brand'>Назад</a>";
}

if(!empty($_GET['brand']) && !empty($_GET['model']) && !empty($_GET['car']))
// если есть все
{
$brand = $_GET['brand'];
$model = $_GET['model'];
$car = $_GET['car'];

include ("form_preview.php");
}
include ("../footer.php");
?>[/php]Понимаю, что когда везде по отдельности стоит if это не правильно. Но в другом месте работает как надо.
В общем помогите советом...
http://www.allcarinfo.ru/preview/add_preview.php

PS пока писал еще вот чего подумал. Как мне у выбора семейств добавить мульку "все автомобили". Куда будут выводится все названия автомобилей (без семейств)?
по идее все просто:
[php]if(!empty($_GET['brand']) && empty($_GET['model']) && !empty($_GET['car']))
// если нет названия, но есть ТОЛЬКО бренд (без модели)
{
echo "Все автомобили";
}[/php]Но чему тогда делать равным car на предыдущей странице? Звездочке?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 13.9.2009, 2:52; Ответить: alexdrob
Сообщение #2


[/COLOR]
[PHP]if(!empty($_GET['brand']) && !empty($_GET['model']))
[/PHP]


этот код выполнится если 'model' и 'brand' установленны.

при выводе отзыва они же установленны вот и это условие выполняется

попробуйте так

[COLOR=#007700]if(!empty($_GET['brand']) && !empty($_GET['model']) && empty($_GET['car']))

Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 13.9.2009, 13:21; Ответить: Licoric
Сообщение #3


Работает.

Остается 2 вопроса:
1) Насколько корректно использовать одни только if () без else / elseif и т.д.?
2) Правда пока писал озарение пришло, но все же...
Как сделать поиск всех автомобилей (без семейств) среди конкретного бренда? Запрос понятен, но интересует "вариант текста" в адресной строке: brand=$brand&car=all. Примерно так? Просто хотелось бы вместо all использовать цифры.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 13.9.2009, 13:38; Ответить: Witu
Сообщение #4


[php]
if(!empty($_GET["brand"] && isset($_GET["car"]))
{
выводим все тачки данного производителя
}
[/php]
может так?
тут нас интересует конкретно производитель
и нам всеравно какую машуну он ищет лавное чтобы был $_GET["car"] хоть 123 хоть -3254376ег#^@%RGFJR!!
можно будет использовать ссылки такого типа
brand=$brand&car
не обязательно чтобы &car был чему то равен
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 13.9.2009, 15:10; Ответить: Licoric
Сообщение #5


Идея хороша. Но вот не догоняю почему опять выводится не все в "новой" странице, а дописывается снизу (клик на "все модели"):
http://www.allcarinfo.ru/preview/add_preview.php?brand=1
[PHP]<?php
include ("../header.php");

if(empty($_GET['brand']) && empty($_GET['model']) && empty($_GET['car']))
// если нет бренда, модели и названия
{
echo "Выберите фирму:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_brand order by brand";

$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$brand = "".$row['brand']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$id'>$brand</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>";
}
}

if(!empty($_GET['brand']) && empty($_GET['model']) && empty($_GET['car']))
// если нет модели и названия, но есть бренд
{
$brand = $_GET['brand'];

// выводим бренд
include ("../mysql.php");
$query2 = "SELECT * FROM aci_brand where id = $brand";
$res2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($res2))
{
$brand_name = "".$row2['brand']."";
echo "<h1>$brand_name</h1>";
}

echo "Выберите семейство:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_model where brand = $brand order by brand";

$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$model = "".$row['model']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$brand&model=$id'>$model</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>
<a href='add_preview.php?brand=$brand&car'>Все модели</a><br>";
}
echo "<a href='add_preview.php'>Назад</a>";
}
if(!empty($_GET["brand"]) && empty($_GET['model']) && isset($_GET["car"]))
{
// выводим все тачки одного производителя

$brand = $_GET['brand'];

// выводим бренд
include ("../mysql.php");
$query2 = "SELECT * FROM aci_brand where id = $brand";
$res2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($res2))
{
$brand_name = "".$row2['brand']."";
echo "<h1>$brand_name</h1>";
}




echo "Выберите автомобиль:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_car where brand = $brand order by car";
$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$car = "".$row['car']."";
$model = "".$row['model']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$brand&model=$model&car=$id'>$car</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>";
}






}

if(!empty($_GET['brand']) && !empty($_GET['model']) && empty($_GET['car']))
// если нет названия, но есть бренд и модель
{
$brand = $_GET['brand'];
$model = $_GET['model'];
include ("../mysql.php");
$query2 = "SELECT aci_brand.brand as brand_name, aci_model.model as model_name FROM aci_brand, aci_model WHERE aci_brand.id = aci_model.brand and aci_model.id = $model";
$res2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($res2))
{
$brand_name = "".$row2['brand_name']."";
$model_name = "".$row2['model_name']."";
echo "<h1>$brand_name - $model_name</h1>";
}
echo "Выберите автомобиль:";
// выводим бренды
include ("../mysql.php");
$query = "SELECT * FROM aci_car where model = $model order by car";
$res = mysql_query($query) or die(mysql_error());
{
echo "<table border='1' width='100%' align='center'>";
// вывод в столбики...
$cols = 5; // desired count of columns
$col = 0;
while( $row = mysql_fetch_array($res) )
{
$id = "".$row['id']."";
$car = "".$row['car']."";
if( !$col ) echo "<tr valign='top'>";
echo "<td width='20%'><a href='add_preview.php?brand=$brand&model=$model&car=$id'>$car</a></td>";
$col++;
if( $col == $cols )
{
echo '</tr>';
$col = 0;
}
}
// adjust last row
if( $col )
{
for( ; $col < $cols; $col++ )
echo '<td>&nbsp;</td>';
echo '</tr>';
}
echo "</table>";
}
echo "<a href='add_preview.php?brand=$brand'>Назад</a>";
}

if(!empty($_GET['brand']) && !empty($_GET['model']) && !empty($_GET['car']))
// если есть все
{
$brand = $_GET['brand'];
$model = $_GET['model'];
$car = $_GET['car'];

include ("form_preview.php");
}
include ("../footer.php");
?>[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 13.9.2009, 15:12; Ответить: Witu
Сообщение #6


а так?
http://www.allcarinfo.ru/preview/add_previ...brand=1&car

$_GET["car"] означет что ссылка должна быть &car ну и/или &car=*всякий мусор*
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 13.9.2009, 15:27; Ответить: Licoric
Сообщение #7


так и стоит же...
<a href='add_preview.php?brand=$brand&car'>Все модели</a>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 13.9.2009, 15:33; Ответить: Witu
Сообщение #8


аааа понял...
if(!empty($_GET['brand']) && empty($_GET['model']) && empty($_GET['car'])) допиши && !isset($_GET["car"])
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Licoric
Licoric
Topic Starter сообщение 13.9.2009, 15:43; Ответить: Licoric
Сообщение #9


[PHP]//if(!empty($_GET["brand"]) && empty($_GET['model']) && isset($_GET["car"]))
if(!empty($_GET['brand']) && empty($_GET['model']) && empty($_GET['car']) && !isset($_GET["car"]))
{[/PHP]

http://www.allcarinfo.ru/preview/add_preview.php?brand=1

Эм...?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Witu
Witu
сообщение 13.9.2009, 16:23; Ответить: Witu
Сообщение #10


блин все таки я тебя не понял
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 29.3.2024, 4:36
Дизайн