Извеждане от база данни

kitchenbg

Registered
Здравейте колеги, чудех се дали бихте помогнали относно една загадка :), за какво иде реч ...

6719.png


как трябва да се направи заявката така че да пропусне последния или първия запис, така че да не се повтаря една новина.
 
Като извеждаш новината не искаш отдолу да ти излиза отново същата ли ?

Ако е така, просто вади новини РАЗЛИЧНИ от ID-то на текущо отворената.

Иначе нещо такова може би...

[sql]
SELECT COUNT(*) as `last_id`, * FROM some_table WHERE id != 1 AND id != last_id
[/sql]

Не съм я тествал, но нещо такова трябва да е.

Но смятам, че ако кажеш по-подробно какво искаш да направиш, може би ще ти се даде по-добро решение.
 
да точно, не искам да се извежда новина със същото id, смисъл ... както е новината с голямата снимка, под нея да се показват следващите новини само че с по малка снимка
 
Еми остава условието да вадиш новини с различно ID от това на текущо отворената.

Предполагам, взимаш новината с GET, просто в заявката ползвай или != , за да вадиш всички освен тази, или > , за да вадиш следващите от текущата.

Всички останали без текущата
[sql]
SELECT * FROM some_table WHERE id != '{$_GET['id']}'
[/sql]


Всички следващи
[sql]
SELECT * FROM some_table WHERE id > '{$_GET['id']}'
[/sql]

Естествено си защити метода или ползвай prepared statements
 
Аз бих направил следното:
в 1 заявка да изкарам всичко и с проста проверка да направя първия главен и останалите с друг стил.

Пример:
PHP:
$i=0;
$sql = "SELECT * FROM `table` ORDER BY RAND() LIMIT 5";
$q = mysqli_qoery($db, $sql);
while($r = mysqli_fetch_assoc($q))
{
$i++;
	if($i == 1) // ako towa e purwata nowina
	{
		echo "
		<div>
		  <img src='//placehold.it/200x200' />
		  
		  <h3>
			zaglavie
		  </h3>
		</div>
		";
	}
	else // vsichki ostanali
	{
		echo "
		<div>
		  <span style='float:left;'>
			<img src='//placehold.it/90x90'/>
		  </span>
		  <h3>
			Zaglawie na pod nowini ili kakwoto sa tam
		  </h3>
		</div>
		";
	}
}

:?: :?:

ЕДИТ: Колегата горе ме е изпреварил, късно видях примерите на другите, извинявам се :)

Мога само да добавя, че ако не искаш да се показва тоя гаден символ след съкратено изречение - използвай mb_substr().
Пример:
PHP:
 echo mb_substr($str, 0, 20, 'utf-8');
:?: :?:
 
@joTunkiq, такъв код изглежда доста странно - ако нещо се изпълнява по уникален начин, защо го пъхаш в цикъла? Разваля се логиката. Изкарай го извън цикъла :?:
 
Защото за това се сетих, а и ако го изкарам, ще трябват 2 заявки, а така става с една. :roll: :idea: :?:
 

Горе