Q:

Помогите правильно объединить строки в html

    $x=0;
    $y=0;
while ($resilt = mysql_fetch_array($query)){ //пройдемся по циклу
    $x < $resilt; $x++; //номер по порядку
        if ($z==0) //если осталось 0 строк, значит считаем кол-во строк
        {
        $que = mysql_query("SELECT COUNT(id_kvita) FROM kvitanc WHERE zakryt='1'");//считаем, сколько строк содержит запись
        $re=mysql_fetch_array($que);
        $y=$re[0]; //например 3 раза
        $x=$re[0];
        }
        echo"
            <tr height=28px;>
            <td>{$x})</td>
            <td>{$resilt[1]}</td>
            <td>{$resilt[2]}</td>
            <td>{$resilt[3]}</td>
            <td>{$resilt[4]}</td>
            <td>{$resilt[5]}</td>
            <td>{$resilt[6]}</td>
            <td>{$resilt[7]}</td>
            ";
        if ($y==$z) //если 3 равно 3
        {
            $z=$z-1; //отнимаем единицу
            echo "<td rowspan='".$y."'  Редактировать № {$resilt[8]}</td><tr>"; //объединяем 3 ячейки
        }
        elseif ($z!==0) //если 2 не равно нулю
        {
            $z=$z-1; //отнимаем единицу
            echo "<tr>"; //еще одного TD нет, просто новая строка
        }
    }

Так вот, при помощи rewspan нужно объединить последнюю колонку, но разметка получается не правильной, объединяет 2 из 3 строк, или 2 из 4...

A:

У вас никогда не закрывается тэг tr.  
В последнем if (там где "3 равно 3"), должно быть </tr>, аналогично для elseif.  
Также нехватает else ветки, которая гарантировала бы закрытие tr.  
К примеру в случае когда $z равна нулю а $y равна 3, ни последний if ни elseif не выполнятся, соответственно tr не будет закрыта.