есть цикл:
while ($line = mysql_fetch_row($result))
{
$i++;
$a[i]=$line[0];
echo "$a[i]";
}
нужно сделать даные масива $a[i] глобальными, global $a; не подходить поскольку глобальным делает только первое значение, $GLOBALS[a] тоже выдает какуето ерунду, помогите плиз!! Зарание благодарен.
Спустя 1 минута, 49 секунд (13.07.2011 - 13:36) Winston написал(а):
Цитата (Skesh @ 13.07.2011 - 13:34) |
нужно сделать даные масива $a[i] глобальными, |
А зачем это? Чтобы использовать значения массива вне тела while ?
Так оно и так будет доступно
Спустя 4 минуты, 3 секунды (13.07.2011 - 13:40) inpost написал(а):
$a[i]=$line[0]; - уже неправильно, надо $a[$i]=$line[0]; , а ещё лучше просто $a[] = $line[0];
И вообще, зачем глобальный? Пойми, самое главное, что ты просто неправильно можешь понимать банальные вещи и пытаться использовать их не так, где надо. Покажи, где именно будешь пользоваться глобальными и зачем тебе это.
И вообще, зачем глобальный? Пойми, самое главное, что ты просто неправильно можешь понимать банальные вещи и пытаться использовать их не так, где надо. Покажи, где именно будешь пользоваться глобальными и зачем тебе это.
Спустя 2 минуты, 51 секунда (13.07.2011 - 13:43) kristall написал(а):
Ну, напиши перед циклом $a = array();
Спустя 6 минут, 2 секунды (13.07.2011 - 13:49) Skesh написал(а):
Ну вот весь скрипт:
Это моя лента новостей, я хочу сделать постраничный вывод, скрипт еще не закончен, для продолжения мне действительно нужно использовать значения массива вне тела while. Может я чегото не вижу или не знаю?
Ключевым тут является поле:
<?php
global $a;
require ('db.php');
$query="SELECT * FROM `addnews` ORDER BY `inc` DESC";
$result = mysql_query($query) or die("Query не працює");
while ($line = mysql_fetch_row($result))
{
$i++;
//$a[i]=$line[0];
$GLOBALS[a]=$line[0];
echo "$a[i]";
}
for ($i=$ot; $i<=$do; $i++)
{
$query="SELECT * FROM addnews WHERE `inc`=$a[i] ORDER BY `inc` DESC";
$result = mysql_query($query) or die("Query 1 не працює");
$line = mysql_fetch_row($result);
echo "
<table class=\"wb\" width=\"100%\">
<tr><td class=\"wb\" BGCOLOR=\"748e4a\" colspan=\"2\" background=\"syte/images/bg6.jpg\">
<font size=\"3\" color=\"white\">
$line[4] р.
</font> <b><font size=\"3\" color=\"white\">
$line[1] </b>
</td></tr>
<tr><td class=\"wb\" colspan=\"2\"><font size=\"3\">";
if ($line[5])
{
echo "<img src=\"syte/text/addnews/images/$line[5]\" align=\"right\" width=\"130\">";
}
echo "
$line[2]
<br><a class=\"news\" href=\"index.php?page=syte/text/addnews/full.php&rfile=$line[0]\"> >><font size=\"3\"> читати далі </font></a>
</td></tr></table><br>
";
}
echo "";
mysql_close($link);
?>
Это моя лента новостей, я хочу сделать постраничный вывод, скрипт еще не закончен, для продолжения мне действительно нужно использовать значения массива вне тела while. Может я чегото не вижу или не знаю?
Ключевым тут является поле:
$query="SELECT * FROM addnews WHERE `inc`=$a[i] ORDER BY `inc` DESC";
Спустя 3 минуты, 4 секунды (13.07.2011 - 13:52) kristall написал(а):
Во-первых: не забывай доллар у индекса. Надо $a[$i]
Во-вторых: используй фигурные скобки
Во-вторых: используй фигурные скобки
$query="SELECT * FROM addnews WHERE `inc`={$a[$i]} ORDER BY `inc` DESC";
Спустя 1 минута, 47 секунд (13.07.2011 - 13:54) Skesh написал(а):
Ухты, пошло =) всем большое спасибо. kristall Вам особая благодарность =)
Спустя 35 минут, 15 секунд (13.07.2011 - 14:29) inpost написал(а):
Skesh
А то, что я выше написал ответ на это, ты удачным образом пропустил?
А то, что я выше написал ответ на это, ты удачным образом пропустил?
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Спустя 59 минут, 18 секунд (13.07.2011 - 15:28) Skesh написал(а):
Прошу прощения не хтел никого обидеть, просто Ваш совет я не использовал в SQL запросе. Моя оплошность.
Спустя 1 час, 10 минут, 7 секунд (13.07.2011 - 16:38) Skesh написал(а):
Вот весь код:
Мож пригодится кому, ток не ругайте сильно, сам знаю что скрипт корявенький.
<html>
<HEAD>
<META http-equiv=content-type content="text/html; charset=windows-1251">
</HEAD>
<body >
<?php
require ('db.php');
$query="SELECT * FROM `addnews` ORDER BY `inc` DESC";
$result = mysql_query($query) or die("Query не працює");
while ($line = mysql_fetch_row($result))
{
$art++; //підраховуємо кількість новин
$a[]=$line[0]; //призначаємо для $a[] індекс бд
}
if(!$ot)
{
$ot=1;
}
//Вивод сторінок (дублюється знизу)
if($ot==1) $now=1;
else $now=ceil($ot/20)+1;
echo "Зараз Ви на сторінці №$now<br>";
echo "<b>Сторінки:</b>";
echo "<a class=\"news\" href=\"index.php?page=syte/text/addnews/out.php&ot=1\"> 1 </a>";
$paper=ceil($art/20);
for ($i=1; $i<=$paper-1; $i++)
{
echo "<a class=\"news\" href=\"index.php?page=syte/text/addnews/out.php&ot=";
$p=$i*20;
echo "$p";
$p=$i+1;
echo "\"> $p </a><p>";
}
$do=$ot+20; // визначаєм номер кінцевої
if ($do>$art) $do=$art-1; // ітерації цикла для виводу новин
for ($i=$ot; $i<=$do; $i++) //Вивод новин
{
$query="SELECT * FROM addnews WHERE `inc`='$a[$i]' ORDER BY `inc` DESC";
$result = mysql_query($query) or die("Query 1 не працює");
$line = mysql_fetch_row($result);
echo "
<table class=\"wb\" width=\"100%\" title=\"$line[1]\">
<tr><td class=\"wb\" BGCOLOR=\"748e4a\" colspan=\"2\" background=\"syte/images/bg6.jpg\">
<font size=\"3\" color=\"white\">
$line[4] р.
</font> <b><font size=\"3\" color=\"white\">
$line[1] </b>
</td></tr>
<tr><td class=\"wb\" colspan=\"2\"><font size=\"3\">";
if ($line[5])
{
echo "<img src=\"syte/text/addnews/images/$line[5]\" align=\"right\" width=\"130\">";
}
echo "
$line[2]
<br><a class=\"news\" href=\"index.php?page=syte/text/addnews/full.php&rfile=$line[0]\"> >><font size=\"3\"> читати далі </font></a>
</td></tr></table><br>
";
}
mysql_close($link);
//Вивод сторінок
echo "Зараз Ви на сторінці №$now<br>";
echo "<b>Сторінки:</b>";
echo "<a class=\"news\" href=\"index.php?page=syte/text/addnews/out.php&ot=1\"> 1 </a>";
for ($i=1; $i<=$paper-1; $i++)
{
echo "<a class=\"news\" href=\"index.php?page=syte/text/addnews/out.php&ot=";
$p=$i*20;
echo "$p";
$p=$i+1;
echo "\"> $p </a>";
}
?>
</body>
</html>
Мож пригодится кому, ток не ругайте сильно, сам знаю что скрипт корявенький.
_____________
*пускает слюну, глядя на код* :)