Количество итераций

Статус
Закрыто для дальнейших ответов.

pingvinchic

Well-Known Member
Регистрация
19.11.2009
Сообщения
81
Подскажите, пожалуйста, как подсчитать количество итераций в цикле foreach
Эта цифра нужна для определения количества ячеек в таблице, которую надо построить.

Код:
if (!empty($_POST['workman']) && is_array($_POST['workman'])) {
     foreach ($_POST['workman'] as $command_id) 
	
	   {
		     
 do	{ 
     
     echo "<tr>";
     echo "<td>";
	 $result1 = mysql_query("SELECT * FROM command WHERE $command_id=command_id"); 
     $myrow1 = mysql_fetch_array($result1);
	 echo $myrow1["command_name"]; 	 
     echo "</td>";
	 echo "</tr>";
    }   
while ($myrow1 =$myrow1 = mysql_fetch_array ($result1) ) ;
		 
         }	 
	 }
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
Для начала я скажу что форматирование тут похоже на танцы чукотских шаманов.
Во вторых я промолчу про целесообразность построения подобного кода и фильтры sql-injection.
В третьих, что мешает поставить счетчик?
Код:
$i=0;
foreach(//...
//...
$i++
}
echo $i;
Если я проблемы не вижу, укажите, я помогу

P.S Извиняюсь, если грубо ответил:) Вам показалось:)
 

pingvinchic

Well-Known Member
Регистрация
19.11.2009
Сообщения
81
Да, как раз счетчик помог и цикл еще один внутри.
А насчет танцев чукотских шаманов, нисколько не обижаюсь.
Нужно построить таблицу внутри php кода, ячейки которой формируются тоже с помощью php. Т.е. простым html построением со вставками в ячейки php тут вроде бы не отделаешься. Если вы знаете более целесообразный метод построения напишите, буду рада.
 

kein

Частный случай
Регистрация
23.11.2009
Сообщения
446
подробнее пожалуйста, что за формат БД выводится, и что за таблица нужна?
Подозреваю что не все так просто:
Код:
if (!empty($_POST['workman']) && is_array($_POST['workman'])) {
	foreach ($_POST['workman'] as $command_id){
		$q =  mysql_query('SELECT * FROM command WHERE '.sqlch($command_id).'=command_id');
		echo '<tr><td>'.$command_id.'</td>';
		while($r = mysql_fetch_assoc($q)){
			echo '<td>'.$r['command_name'].'</td>';
		}
		echo '</tr>';
	}       
}
function sqlch($value){
	// тут должна быть нормальная проверка от инъекций
	return mysql_escape_string($value);
}
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Ребята, я дико извиняюсь, но сдается мне - это индуский код, если я не прав, то поправьте:
Код:
if (!empty($_POST['workman']) && is_array($_POST['workman'])) {
//защита от скуля и неправильных типов
 foreach($_POST['workman'] as $value){
 if(is_string($value)){
 $query_array[] = mysql_escape_string($value);
 }
//если пусто то не будет запроса
 if(isset($query_array)){
    $query = "SELECT * FROM command WHERE command_id IN('". implode("','",$query_array)."'";
    $result = mysql_query($query);
    while($res = mysql_fetch_array($result)){
//здесь можно поставить счетчик
      echo "<tr><td>".$res['command_name']."</td>"</tr>;
    }
}
}

}
 
Статус
Закрыто для дальнейших ответов.
Верх Низ