Вывод текста в разных категориях?

nexen

Новичок
PHP:
<a href = 'out.php?id=0'>title a</a><br/>
<a href = 'out.php?id=1'>title b</a><br/>
<a href = 'out.php?id=2'>title c</a><br/>
<a href = 'out.php?id=3'>title d</a><br/>
<a href = 'out.php?id=4'>title e</a><br/>
<?php
$id = $_GET['id'];
$row = array(0 => 'title a', 1 => 'title b', 2 => 'title c', 3 => 'title d', 4 => 'title e');
$s = sizeof($row);
for($i = 0; $i < $s; ++$i){
     if($id == $i){
          $tags['title'] = $row[$i];
          break;
     }
}
echo '<h3>'.$tags['title'].'</h3>';
?>
 

dimagolov

Новичок
irina_S, объясните, какая логика хранить каждой строке в БД те значения title, которые по факту для отображения этой строки не нужны? если я понял, то есть два набора данных, один это категории, а второй это заголовки, и есть соответствие, что каждой категории соответствует определенный заголовок. правильно?

тем более, что это таблица не категорий, а сообщений, то есть каждой категории соответствует множество сообщений.
 

irina_S

Новичок
nexen
спасибо попробую.

dimagolov
понимаете проблема не в базе и не в способах хранения в них даже если я заменю эти title просто на текст в самом коде, то проблема остается прежней работает только до второй категории, а дальше просто выводит текст, тот что и для 2 категории написан.
 

dimagolov

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

irina_S

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

if ($row['category'] == "тут ид категории")
{$tags['title'] = stripslashes($row['title']);}

я могу задать для любой категории и там будет все работать нормально и выводить все что мне нужно, но стоит сделать несколько условий, как я написала в первом посте и работеет только первое условие, т.е. по сути тоже самое что я просто бы написала
if ($row['category'] == "3")
{$tags['title'] = stripslashes($row['title']);}
else
{
$tags['title'] = stripslashes($row['title2']);
}
 

nexen

Новичок
даже если необходимо подключить базу - нет проблем

CREATE TABLE `test`.`test` (
`title a` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_cs NOT NULL ,
`title b` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_cs NOT NULL ,
`title c` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_cs NOT NULL ,
`title d` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_cs NOT NULL ,
`title e` TEXT CHARACTER SET cp1251 COLLATE cp1251_general_cs NOT NULL
) ENGINE = MYISAM CHARACTER SET cp1251 COLLATE cp1251_general_cs;


INSERT INTO `test`.`test` (
`title a` ,
`title b` ,
`title c` ,
`title d` ,
`title e`
)
VALUES (
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', 'cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc', 'dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd', 'eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
);

PHP:
<a href = 'out.php?id=0'>title a</a><br/>
<a href = 'out.php?id=1'>title b</a><br/>
<a href = 'out.php?id=2'>title c</a><br/>
<a href = 'out.php?id=3'>title d</a><br/>
<a href = 'out.php?id=4'>title e</a><br/>
<?php
$id = $_GET['id'];
$row = array(0 => 'title a', 1 => 'title b', 2 => 'title c', 3 => 'title d', 4 => 'title e');
$s = sizeof($row);
for($i = 0; $i < $s; ++$i){
     if($id == $i){
          global $val;
          $val = $row[$i];
          break;
     }
}
$srv = 'localhost';
$log = 'login';
$pas = 'password';
$db = 'test';
$query = "SELECT * FROM `test` ORDER BY `test`.`".$val."` ASC LIMIT 0 , 30";
function query($srv, $db, $log, $pas, $query){
     global $val;
     mysql_connect($srv, $log, $pas);
     mysql_select_db($db);
     $res = mysql_query($query);
     $res = mysql_fetch_assoc($res);
     echo '<pre>'.$res[$val].'</pre>';
}
echo query($srv, $db, $log, $pas, $query);
?>
функцию можете вынести в отдельный файл а затем инклюдить там где надо - если есть необходимость, а если нет то можно без функции обойтись тогда будет вместо тела функции просто

PHP:
mysql_connect($srv, $log, $pas);
mysql_select_db($db);
$res = mysql_query($query);
$res = mysql_fetch_assoc($res);
echo '<pre>'.$res[$val].'</pre>';
p.s.
вот собственно и всё - данные только замените на свои . . .
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
irina_S
1. Сокращаешь скрипт до минимального уровня.
2. Проверяешь у себя чтоб ошибка так-же возникала.
3. Скрипт сюда:

http://phpclub.ru/paste/

Ссылку на paste в форум.
 

nexen

Новичок
ещё более облегчим задачу - сделаем всё это в виде функции вам необходимо будет только указать свои входные параметры

<a href = 'out.php?id=0'>title a</a><br/>
<a href = 'out.php?id=1'>title b</a><br/>
<a href = 'out.php?id=2'>title c</a><br/>
<a href = 'out.php?id=3'>title d</a><br/>
<a href = 'out.php?id=4'>title e</a><br/>
PHP:
<?php
$id = $_GET['id'];
$srv = 'localhost';
$log = 'login';
$pas = 'password';
$db = 'test';
$tab = 'test';
$row = array(0 => 'title a', 1 => 'title b', 2 => 'title c', 3 => 'title d', 4 => 'title e');

function out($id, $srv, $log, $pas, $db, $tab, $row){
     $s = sizeof($row);
     for($i = 0; $i < $s; ++$i){
          if($id == $i){
               global $val;
               $val = $row[$i];
               break;
          }
     }
     $query = "SELECT * FROM `".$db."` ORDER BY `".$tab."`.`".$val."` ASC LIMIT 0 , 30";
     mysql_connect($srv, $log, $pas);
     mysql_select_db($db);
     $out = mysql_query($query);
     $out = mysql_fetch_assoc($out);
     return $out[$val];
}
$out = out($id, $srv, $log, $pas, $db, $tab, $row);
echo $out;
?>
 
Сверху