Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: глюк при переходе на php5
 
 автор: riskk   (27.07.2006 в 07:37)   письмо автору
 
 

Написал одну систему на php4, и при переходе на php5 пошли глюки. Вот например делаю запрос, через цикл while заполняю таблицу, в первый раз нормально, а во второй раз уже не входит в цикл. Почему?

$con = db_connect($hostname, $username, $password, $dbname) or DIE("DATABASE FAILED TO RESPOND.");
$sqlv= "SELECT rp_rasp.id_rasp, day(rp_rasp.dateurok) AS ddi, { fn MONTH(rp_rasp.dateurok) } AS dmi, { fn year(rp_rasp.dateurok) } AS dyi, rp_rasp.turok, rp_rasp.teva,
rp_rasp.id_semestr, rp_rasp.id_group, rp_rasp.id_discip,
rp_tarif.id_prepod FROM rp_rasp INNER JOIN
rp_tarif ON rp_rasp.id_tarif = rp_tarif.id_tarif
WHERE (rp_rasp.id_discip = ".$_SESSION['u5_id_discip'].") AND (rp_rasp.id_group = ".$_SESSION['u5_id_group'].") AND
(rp_rasp.id_semestr = ".$_SESSION['u5_id_sem'].")".$sf_idprep." and rp_rasp.trasp=0 order by dateurok";
$res_raspd = db_query($sqlv,$con);
----------------------------------------------------------------------------------------

// Здесь нормально
while($tmasv = db_fetch_array($res_raspd)) {
echo "<td>
".date("d.m", mktime(0, 0, 0, $tmasv['dmi'], $tmasv['ddi'], $tmasv['dyi']))."
</td>";
}
echo "<td>Ср.&nbsp;</td>";
echo "<td>РД&nbsp;</td>";
echo "<td>ТР&nbsp;</td>";
echo "<td>ПР&nbsp;</td>";
?>
</tr>

<tr>
<td>&nbsp;</td>
<?
// А вот здесь уже цикл не идет
while($tmasv = db_fetch_array($res_raspd)) {
echo "<td>";
if ($tmasv['teva']==0) { echo "Тек"; }
else { echo "Руб"; }
echo "</td>";
}

   
 
 автор: Snorri   (27.07.2006 в 11:22)   письмо автору
 
   для: riskk   (27.07.2006 в 07:37)
 

Я досконально не разбирался.
Если все происходит локально, то поробуйте включить совместимость с PHP4 в php.ini

zend.ze1_compatibility_mode = On

   
 
 автор: BobiKK   (27.07.2006 в 11:34)   письмо автору
 
   для: riskk   (27.07.2006 в 07:37)
 

Дык, он и не пойдет. В этой конструкции "while($tmasv = db_fetch_array($res_raspd))" он уже весь прошел.
А что вообще задумывалось? Может mysql_data_seek поможет?

   
 
 автор: riskk   (27.07.2006 в 11:46)   письмо автору
 
   для: BobiKK   (27.07.2006 в 11:34)
 

До этого в php4 работало, почему в php5 нельзя два раза по набору данных нельзя пройтись? Или нужно два раза делать запрос, но это уже отразиться на скорости, у меня база отдельно на MSSQL. Какие есть варианты, и вообще как это решается стандартно?

   
 
 автор: BobiKK   (27.07.2006 в 11:50)   письмо автору
 
   для: riskk   (27.07.2006 в 11:46)
 

mysql_data_seek()

   
 
 автор: riskk   (27.07.2006 в 12:08)   письмо автору
 
   для: BobiKK   (27.07.2006 в 11:50)
 

Спасибо, спасибо, спасибо! Выручил!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования