Една заявка

xto

Registered
значи искам потребителите ми в сайта да си сортират песните както те желаят по месец, по година или по месец и година

аз сам го направил когато изберат месец и година и дадат сортирай да ги сортира но не мога д анаправя примерно ако изберат само година и дадат сортирай да им изкара замо за тая година или пук ако изберат само месец да им сортира само за месеца който са избрали

трябва с проверка да стане но не мога да е направя тая проверка моля помогнете ето какво правя аз....


така тука си избират месеца и годината...

Код:
 <form action="mixes/sort.php" method="post" name="forma">
 
	<select name="date2" size="1" class="loginnn" style="border: 1px solid #000;">

     <option value="Месец" selected="selected">Месец</option>
          <option class="Login" style="border: 1px solid black;" value="Jan">(01) Jan</option>
          <option class="Login" style="border: 1px solid black;" value="Feb">(02) Feb</option>
          <option class="Login" style="border: 1px solid black;" value="Mar">(03) Mar</option>
          <option class="Login" style="border: 1px solid black;" value="Apr">(04) Apr</option>
          <option class="Login" style="border: 1px solid black;" value="May">(05) May</option>
          <option class="Login" style="border: 1px solid black;" value="Jun">(06) Jun</option>
          <option class="Login" style="border: 1px solid black;" value="Jul">(07) Jul</option>
		  <option class="Login" style="border: 1px solid black;" value="Aug">(08) Aug</option>
          <option class="Login" style="border: 1px solid black;" value="Sep">(09) Sep</option>
          <option class="Login" style="border: 1px solid black;" value="Oct">(10) Oct</option>
		  <option class="Login" style="border: 1px solid black;" value="Nov">(11) Nov</option>
		  <option class="Login" style="border: 1px solid black;" value="Dec">(12) Dec</option>
        </select>   
        
		<select name="year" size="1" class="loginnn" style="border: 1px solid #000;">
          <option value="Година" selected="selected">Година</option>
          <option class="Login" style="border: 1px solid black;" value="2000">2000</option>
          <option class="Login" style="border: 1px solid black;" value="2001">2001</option>
          <option class="Login" style="border: 1px solid black;" value="2002">2002</option>
          <option class="Login" style="border: 1px solid black;" value="2003">2003</option>
          <option class="Login" style="border: 1px solid black;" value="2004">2004</option>
          <option class="Login" style="border: 1px solid black;" value="2005">2005</option>
          <option class="Login" style="border: 1px solid black;" value="2006">2006</option>
          <option class="Login" style="border: 1px solid black;" value="2007">2007</option>
          <option class="Login" style="border: 1px solid black;" value="2008">2008</option>
        </select> 
          
<input name="submit2" type="submit" class="loginnn" style="border: 1px solid #000;" value="Сортирай !" />   
</form>


sort.php

Код:
if ($_POST["date2"] == "")
{
	echo "<div align=\"center\"><span style=\"font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#F29D9D;\">Моля изберете дата, по която системата да ви сортира сетовете !</span></div><BR>";
}

$date2 = $_POST['date2'];
$year = $_POST['year'];

  $sql = mysql_query("SELECT * FROM mixes where `year` = '$year' and `date2` = '$date2' and `activ` = 'active' ORDER BY `id` DESC LIMIT 5000");
while($arr = mysql_fetch_assoc($sql))
  { ... и така нататака...


каква ми е проверката че като избера само година да ми сортира само за година а не да ми изписва

Код:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/allmix/public_html/mixes/sort.php on line 254

както сега
http://www.allmix.org/mixes/sort.php
мерси :?:
 
$sql = mysql_query("SELECT * FROM mixes where `year` = '$year' and `date2` = '$date2' and `activ` = 'active' ORDER BY `id` DESC LIMIT 5000");

Мисля че трябва да ти е
Код:
 $sql = mysql_query("SELECT * FROM mixes where `year` = '$year' and `date2` = '$date2' and [color=red]`active`[/color] = 'active' ORDER BY `id` DESC LIMIT 5000");

Но не съм сигурен не знам как ти е таблицата няма да е лошо да покажеш.А какво връща mysql_error();
напиши edno echo mysql_error();

след mysql_num_rows/query
 
не бе човек не си ми рзбрал въпроса :) сичко ми работи идеално просто искам ако от формата горе сам избрал само годината да ми изкарва само а година ако сам избрал само месец да ми изкарва само емсец сега бачка ама ако избера месец и година само тогава ми изкарва ;)
 
Просто вместо грешки , слагай заявки
примерно:
Код:
if (isset($_POST['date1']) && !isset($_POST['date2'])) {
// тука ако е избран само месеца
$mesec = $_POST['date1'];
$sql = mysql_query("SELECT ........... WHERE mesec='$mesec' AND activ='active'");
while ( ................................ )
} 
if (!isset($_POST['date1']) && isset($_POST['date2'])) {
// тука ако е избрана само годината
$godina = $_POST['date2'];
$sql = mysql_query("SELECT ........... WHERE year='$godina' AND activ='active'");
while ( ................................ )
} 
if (isset($_POST['date1']) && isset($_POST['date2'])) {
// тука ако са избрани и двете 
$year = $_POST['date2']; $mesec = _$POST['date1'];
$sql = mysql_query("SELECT ........... WHERE year='$godina' AND mesec='$mesec' AND activ='active'");
while ( ................................ )
} 
else {
echo "<div align=\"center\"><span style=\"font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#F29D9D;\">Моля изберете дата или месец , по която да ви се сортират песните !</span></div><BR>"; 
}
 
Код:
 if (isset($_POST['date1']) && !isset($_POST['date2'])) {
// тука ако е избран само месеца
$mesec = $_POST['date1'];
$sql = mysql_query("SELECT mixes WHERE mesec='$mesec' AND activ='active'");
while($arr = mysql_fetch_assoc($sql))
}
if (!isset($_POST['date1']) && isset($_POST['date2'])) {
// тука ако е избрана само годината
$godina = $_POST['date2'];
$sql = mysql_query("SELECT mixes WHERE year='$godina' AND activ='active'");
while($arr = mysql_fetch_assoc($sql))
}
if (isset($_POST['date1']) && isset($_POST['date2'])) {
// тука ако са избрани и двете
$year = $_POST['date2']; $mesec = _$POST['date1'];
$sql = mysql_query("SELECT mixes WHERE year='$godina' AND mesec='$mesec' AND activ='active'");
while($arr = mysql_fetch_assoc($sql))

}
else {
echo "<div align=\"center\"><span style=\"font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#F29D9D;\">Моля изберете дата или месец , по която да ви се сортират песните !</span></div><BR>";
}

$date2 = $_POST['date2'];
$year = $_POST['year'];

  $sql = mysql_query("SELECT * FROM mixes where `year` = '$year' and `date2` = '$date2' and `activ` = 'active' ORDER BY `id` DESC LIMIT 5000");
while($arr = mysql_fetch_assoc($sql))
  {
	  
   $id = $arr["id"];
 $name = $arr["name"];

  ?>
<?=$name?>

 <?
  }
  ?>

значи според мене траа да са пдоредени в тоя последователнсот но на while нещо бъркам май а и това date1 аз там записвам и деня но не изкам да ми сортира и по ден
 
Е трябва да си го едитнеш малко , това не е готов скрипт.Надрасках ти го набързо и направо в сайта , затова някои неща които не се сещах - им слагах подобни имена
 
да аз видях и се опитвам сега да ги навържа нещатата но нещо се бъгясва са ми изписва грепка на най долния таг </html> хах

Код:
rse error: syntax error, unexpected $end in /home/allmix/public_html/mixes/sort.php on line 282

защо така не сам затворил някъде ли

Код:
<? 


mysql_connect ($server, $mysql_user, $mysql_pass, $mysql_db, $Table) or die ("unable to connect to database");
mysql_select_db("$mysql_db") or die ("unable to select DB");
  
if (isset($_POST['date2']) && !isset($_POST['year'])) {
// тука ако е избран само месеца
$date2 = $_POST['date2'];
$sql = mysql_query("SELECT mixes WHERE date2='$date2' AND activ='active' ORDER BY `id` DESC LIMIT 5000");
while($arr = mysql_fetch_assoc($sql))
  {
	  
   $id = $arr["id"];
 $name = $arr["name"];
?>
	<?=$name?>
<?
  }
?>
<?
  
if (!isset($_POST['year']) && isset($_POST['date2'])) {
// тука ако е избрана само годината
$year = $_POST['year'];
$sql = mysql_query("SELECT mixes WHERE year='$year' AND activ='active' ORDER BY `id` DESC LIMIT 5000");
while($arr = mysql_fetch_assoc($sql))
  {
	  
  $id = $arr["id"];
 $name = $arr["name"];
?>
	<?=$name?>
<?
  }
?>

<? 
if (isset($_POST['date2']) && isset($_POST['year'])) {
// тука ако са избрани и двете
$date2 = $_POST['date2']; 
$year = $_POST['year'];
$sql = mysql_query("SELECT mixes WHERE year='$year' AND date2='$date2' AND activ='active' ORDER BY `id` DESC LIMIT 5000");
while($arr = mysql_fetch_assoc($sql))
  {
	  
  $id = $arr["id"];
 $name = $arr["name"];
?>
	<?=$name?>
<?
  }
?>
 
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/allmix/public_html/mixes/sort.php on line 261

вас ис дас :)
 
Ти затваряш цикъла , но не и ИФ-а - затова така се получава.
Другата алтернатива , която би могъл да използваш е нещо от сорта на
Код:
if (isset($_POST['date2']) && isset($_POST['date3'])) {
$ifone = "date = '".$_POST['date2']."'";
$iftwo = "AND year = '".$_POST['date3']."'";
}
if (!isset($_POST['date2']) && isset($_POST['date3'])) {
$ifone = "";
$iftwo = "year = '".$_POST['date3']."'";
}
// и така нататък с иф-овете
// и най-отдолу ти е заявката вече
$sql = mysql_query("SELECT * FROM tablicata WHERE $ifone $iftwo ORDER BY kakvoto_iskash LIMIT kolkoto_iskash")or die(mysql_error());
while ($row = mysql_fetch_array($sql) {
echo " $row[ime] $row[reiting] $row[ne_znam_si_kakvo] <br />";
}

П.П.
Код:
 ?>
   <?=$name?>
<?
  }
?>
Това е да не кажа безмислено , защо си играеш да отваряш и затваряш пхп тага.Погледни как се изкарва ехо в пхп ,
<?=$neshto; ?>
също се използва , но не и в твоя случай (т.е. няма нужда)
 
Всъщност според мен си е по-правилно с ; (поне аз така си го пиша по default)
 

Горе