Проблем с $_POST функция

noxious

Registered
Здравейте,
$value ми принтира стойностите от елементите от checkbox, чиито стойности са числа.

PHP:
<form method="post">
	<ul style="list-style-type: none;">
		<?php
		$query = mysql_query("SELECT * FROM `sizes` ORDER BY `id` ASC");
		while($row = mysql_fetch_array($query)) {
			echo '<li><input type="checkbox" name="scheck[]" value="'.$row['id'].'" /> '.$row['size'].'</li>';
		}
		?>
	</ul>
	<input type="submit" value="ОК">
</form>

Проблемът е тук. Не знам как да направя, ако $value има повече от една стойност $sizeSort да добавя още едно AND (sizes = следващата стойност)
PHP:
if(isset($_POST['scheck'])) {
	foreach($_POST['scheck'] as $key => $value) {
		if(array_count_values($value) == 1) {
			$sizeSort = "AND (sizes = ".$value.")";
		} elseif(array_count_values($value) > 1) {
			$sizeSort = "AND (sizes = ".$value." AND (sizes = ".$nextvalue.")";
		}
	}
	
} else {
	$sizeSort = "";
}
 
Уау, доста код за нищо. Определено ти липсват основите, прочети за конкантинация(не знам дали се пише така) или на български слепяне на стригове. И изгледай някои урок на тая тема, определено ще помогне. Не е трудно, но няма как да се научиш ако не прочетеш или гледаш нещо :)

Предполагам ти трябва за query building, ето как трябва да стане. Ти вече си нагласяй заявки и полета и т.н. Не съм го пробвал, тъй като си дал адски точна информация и нямах време да я прочета(сърказъм), но би трябвало да тръгне :D
PHP:
if(isset($_POST['scheck'])) 
{
	 $where = '';
	 if(count($_POST['scheck']) > 0)
       {
       	   $where = 'WHERE ';
       	 	foreach($_POST['scheck'] as $size) 
	        {
	        	 $where.= " AND `sizes` = '".$size."' ";
	        }
       }
      
	 $sql = "SELECT * FROM `SIZES`  ". $where; // magiq nz kak stawa

        // nadolu tvoite obhojdaniq
}
:idea: :?:
 
Стана, само че филтрира продуктите, които имат само този избран размер. Имам на предвид, че ако един продукт има S и M размери и ние сме избрали S, то няма да покаже този, защото има и M.

Edit: с LIKE '%v%' стана. +1
 

Back
Горе