Как да направя заявка за архив

eddyy93

Registered
Трябва да направя една заявка като се взима от базата данни всички полета. Като те се подреждат в сайта по дата, смисъл като архив.

Тоест:


Гошо каза:
ласкдлкасд
Дата: 1-11-10

Митко каза:
ласкдлкасд
Дата: 1-11-10


Петко каза:
ласкдлкасд
Дата: 2-10-09

Някой си каза:
ласкдлкасд
Дата: 2-10-09


И тези резултати като се извлечат от базата данни да се нареждат по дати:
Ето така:

- ДАТА "1-11-10" (тук да излизат резултатите от тази дата тоест това което са казали "гошо и митко"

- ДАТА "2-10-09" (тук да излизат резултатите от тази дата тоест това което са казали "петко и някой си".
 
Благодаря : ), но как да ги контролирам по този начин който описах горе.

Смисъл как ще се създате този линк с датата и като кликнеш на него да се отваря информацията само за тези с датата от линка.

Нали като се има в предвид, че ще има няколко различни дати, това означава няколко различни линка и т.н. точно като един архив.
 
да предположим че датите ги имаш в базата данни в полето 'data' то тогава:

$query = mysql_query("SELECT * FROM `tablicata` order by `data` ASC")or die(mysql_error()."<br />Грешка: ".__LINE__);
while($row = mysql_fetch_array($query)){
$name=$row['name'];
$text=$row[text'];
$data=$row['data'];

echo "$name каза: <br>$text<br>$data";
}
 
Да това разбрах, че искаше да ми кажеш още с първият пост но идеята ми е малко по различна ето ти нагледен пример.

http://rdvr.sliven.net/index.php?archive=112011

Ето как са наредени по дати и като кликеш на тях излиза вече информацията от тази дата.
 
ааа :D

select data from tablica
после си правиш цикъла и в него
си правиш това

echo "<a href='page.php?data=$data>някъв текст</a>";
като $data=$row['data'];

и после тази страница page.php
слагаш $data=$_GET['data']
и select * from tablicata where `data`='$data'

дано схвана замисъла :D
 
И в един цикъл да отваряш заявка и да правиш 2 ри цикъл в цикъла не е ли неправилно.
 
добре май ще се наложи да го обесня като хората

с този код ще ти изкарва само датата която се намира в поле data
PHP:
mysql_query("SET NAMES utf8");
$query = mysql_query("SELECT data FROM tablica");
while($row = mysql_fetch_array($query)){
	
	$data= $row['data'];
	echo "<a href='info.php?data=$data>$data</a><br><br>"; 
}
след това си правиш 1 нова страница в случая info.php
и в нея слагаш това
с този код ще ти изкарва всичката информация която е с избраната дата
PHP:
$data=$_GET['data'];
mysql_query("SET NAMES utf8");
$query = mysql_query("SELECT * FROM tablica WHERE `data`='$data'");
while($row = mysql_fetch_array($query)){
$name=$row['name']; 
$text=$row['text']; 
$data=$row['data']; 

echo "$name каза: <br>$text<br>$data"; 
}
 
В момента когато се завърта цикъла нали той ми изкарва всички дати примерно днешната 27-11-11 ми е изкарва 10 пъти, а аз искам да е само един път отбелязана независимо колко пъти е има.

Ето за тук става дума:

PHP:
$query = mysql_query("SELECT data FROM tablica");

while($row = mysql_fetch_array($query)){

	

	$data= $row['data'];

	echo "<a href='info.php?data=$data>$data</a><br><br>"; 

}
 
Вмемаш всички резултати от базата данни, които на теб ти трябват (т.е. от еди коя си дата, до еди си коя дата (примерно)). Веднага резултата го въртиш в масив, и получения резултат добавяш в нов масив, на който ключа му е датата, т.е.
PHP:
$query = mysql_query("SELECT * FROM table");
$aResult	= array();
while ( $row = mysql_fetch_assoc($query) ) { 
	if ( !empty($aResult[$row['data']]) ) $aResult[$row['data']] = array();
	$aResult[$aRow['data']][] = $row;
}[/[php] така (горе долу) постигаш резултата, който искаш :idea:
Остава просто да си завъртиш масива и това е :-)

П.П. Много по практично е, да вземеш всичките резултати от базата данни, и в php-то да си ги обработиш, отколкото да се мъчиш в MySQL.
 
Благодаря Replace : ), но продължавам да не успявам да направя да се показва само по една дата.


Ще се опитам пак да обясна.


БАЗА ДАННИ:
`````````````````````````
| ИМЕ || дата |
|--------||------- |
|ПЕТЪР|| 11.11.11|
|МИТКО|| 11.11.11 |
|ИВАН || 11.11.11 |
| Някой|| 07.08.11 |
``````````````````````````
КРАЙ НА БАЗАТА ДАННИ.


Сега искам в сайта да излизат линкове.

11.11.11 и 07.08.11

А не 11.11.11 да ми се принтира 3 пъти, а само един.

След като кликна на 11.11.11 (което е линк).
Трябва да се покаже:

( ПЕТЪР, МИТКО, ИВАН. )

----------------------------------------------------------------


И следователно ако кликна на 07.08.11 да ми се покаже:

( Някой )



Извинявам се за тези обяснения.
 
това което ми идва на мен на ум е следното: да си направиш още 1 таблица в която да записваш само датите, след който да ги вадиш, а после за всяка новина ли там кво ще е да и сложиш 1 поле в таблицата 'data' но не мисля, че е най-доброто като решение ;д
 
Мислих си примерно със "MATCH" във заявката или mysql_num_rows и след това проверка ако има повече от един ред с еднаква дата да изважда само един резултат (тоест само една дата).

Дайте някакви идеи или помощ с някой код .. това нещо супер много ме спъва в "разработката", ако може така да се нарече ....
 

Back
Горе