Tema: Re: Kaip isvesti info?
Autorius: ejs
Data: 2009-04-30 19:17:50
Mrlz wrote:
> Nu man pora dienu nieko nesigavo, dabar kazka isgimdziau per siandien :)
> Bet man kazkaip prireike 3 ciklu :)
> 
> Dienas ten virsuje, nuo 2009-04-01 iki 2009-04-30, atsispausdinu visai 
> atskiram cikle.
> 
> 1. Kaip ir sakei ciklas per vaikus is konkrecios grupes.
>    2. Tada SELECT * FROM dienynas WHERE 
> dienynas.vaiko_id='*$masyvasV[$i][0][0]'
>    cia gaunu konkretaus vaiko visas dienas, kurias jis nebuvo, jas su 
> $row[diena] pasijamti galiu. Tai sita vieta su while suku.
>        3. Tada suku trecia cikla (situ dvieju ciklu viduje) ir einu per 
> visas menesio dienas ir tikrinu ar konkreti diena sutampa su $row[diena], 
> jei sutampa irasau "N", jei nesutampa tai tuscia laukeli palieku.
> 
> 
> Nors gal galima pirma su antru ciklu kazkaip sujungti ir padaryti viena 
> tiktais. Nes cia biski sviestas sviestuotas gaunas ane? :)

pasidaryk masyvą su datos 'key'.
Tuomet be jokio tikrinimo 'foreach $key->$value'

Pvz dalis sistemėlės, skirtos studentams pamatyti praktinių darbų 
įvertinimus, datas ir komentarus:


// create the initial array for assignments
$q_evals = "SELECT ....";

$sql_evals = mysql_query($q_evals);
if (!$sql_evals) {
  echo "Could not run query: " . $q_evals . ": " . mysql_error();
  return 1;
	}

$num_evals=1;
$_evals = array(array());
while($c_eval = mysql_fetch_array($sql_evals)) {
   ...
   $_evals[$c_eval["id"]]['id'] = $c_eval["id"];
   $num_evals = $num_evals+1;
  }
unset($_evals[0]); //kad nesipainiotų
$num_assigns = count($_evals);
if ($_DEBUG == 1) print_r($_evals) ;

// pildom įvetinimus:
//
// pakopijuojam iš pradinio masyvo
$stud_evals = $_evals;
	
//užpildom masyvą
$c_evals = $num_evals-1; //nes taip reikia ;)
  while($c_eval = mysql_fetch_array($sql_evals)) {
   ...
   $stud_evals{$c_eval['assign_id']}['mark'] = $c_eval['mark'];
   ...
   }

// ir atspausdinam reikšmes
$mark=0;
// studento pažymėjimo numeris
echo " <tr><td style='name_or_number'>" . $result["id"] . "</td>";

foreach ( $stud_evals as $v) {
  if ( $v['mark'] == 0) {
   echo " <td  style='achtung'>&nbsp; </td>";
   }
  elseif ( $v['mark'] < 5) {
   echo  " <td style='seipsau'> " . $v['mark'] . " </td>";
   }
  else {
   echo " <td style='geeeeerai'>" . $v['mark'] . " </td>";
   }
   $mark=$mark+$v['mark'];
  }