Jacek Ołowiak kierownik zespołu IT
Temat: Błąd skryptu - nie moge znaleźć gdzie
Witam!Mam taki oto "program":
$cmdstr = "select distinct snr, werk, werk_b, kz_ba, kz_dg, lagort, anlief_ort, kost_stelle, arbpl, afol, zttr, ztte, ruestlos from php.fwk_wykaz_snr_arbpl_tab where werk like 'F' and ztte like '%' ";
if (!$_GET[snr] AND !$_GET[anlo] AND !$_GET[grupa])
{
echo ("<center><font color=\"#FF0000\"><b>Brak kryteriow </b></font></center>");
$cmdstr .= "and ROWNUM < 51";
}
if ($_GET[snr] != "") {
$cmdstr .= "and snr like '$_GET[snr]' ";
}
if ($_GET[grupa] != "") {
$cmdstr .= "and arbpl like '$_GET[grupa]' ";
}
if ($_GET[anlo] != "") {
$cmdstr .= "and anlief_ort like '$_GET[anlo]' ";
}
$cmdstr .= "order by afol";
$parsed = ociparse($_SESSION[conn], $cmdstr);
ociexecute($parsed) or die (insert_error(OCI_Error($parsed)));
@$a=ocifetchstatement ($parsed, $results);
echo ("<table class=\"tabsolid\" cellpadding=\"0\" cellspacing=\"0\">");
echo("<tr><th>snr</th><th>w1</th><th>w2</th><th>ba</th><th>dg</th><th>lagort</th><th>anlo</th><th>kst</th><th>arbpl</th><th>avo</th><th>tr</th><th>te</th><th>ruest.</th></tr>");
for ($i=0; $i<$a; $i++)
{
$snr=$results[SNR][$i];
$werk1=$results[WERK][$i];
$werk2=$results[WERK_B][$i];
$ba=$results[KZ_BA][$i];
$dg=$results[KZ_DG][$i];
$lagort=$results[LAGORT][$i];
$anlo=$results[ANLIEF_ORT][$i];
$kst=$results[KOST_STELLE][$i];
$arbpl=$results[ARBPL][$i];
$avo=$results[AFOL][$i];
$tr=$results[ZTTR][$i];
$te=$results[ZTTE][$i];
$ruest=$results[RUESTLOS][$i];
echo ("<tr><td class=\"tdsolidl\">$snr</td><td class=\"tdsolid\" bgcolor=\"lightgray\" width=\"40\">$werk1</td><td class=\"tdsolid\" width=\"40\">$werk2</td><td class=\"tdsolid\" bgcolor=\"lightgray\" width=\"40\">$ba</td><td class=\"tdsolid\" width=\"40\">$dg</td><td class=\"tdsolid\" bgcolor=\"lightgray\">$lagort</td><td class=\"tdsolid\">$anlo</td><td class=\"tdsolid\" bgcolor=\"lightgray\">$kst</td><td class=\"tdsolid\">$arbpl </td><td class=\"tdsolid\" align=\"right\" bgcolor=\"lightgray\">$avo</td><td class=\"tdsolid\" align=\"right\">$tr</td><td class=\"tdsolid\" align=\"right\" bgcolor=\"lightgray\">$te</td><td class=\"tdsolid\" align=\"right\">$ruest</td></th>");
echo("<tr><th>afol</th><th>skladowe</th><th>sztuk</th><th>jm</th><th>opis</th><th>werk</th><th>anlo</th></tr>");
//=============================================================================================================
//====================skladowe=========================================================================================
$cmdstr_s ="select afol, anlo, me_b, bend, bk_id, werk, possnr, menge from FWA_SKLADOWE_SNR_TAB where bk_id like $snr and werk like 'F' order by afol asc ";
$parsed = ociparse($_SESSION[conn], $cmdstr_s);
ociexecute($parsed) or die (zonk);
$nrows_s = ocifetchstatement($parsed, $results_s);
echo("$cmdstr_s");
//$calkowita_ilosc_skladowych = $calkowita_ilosc_skladowych + $nrows_s;
for($a = 0; $a<$nrows_s; $a++)
{
//$b = $a + $nrows_s +(($i+1)*100);
$bkid = $results_s["BK_ID"][$a];
$werk = $results_s["WERK"][$a];
$posnr = $results_s["POSSNR"][$a];
$ile = $results_s["MENGE"][$a];
$afol= $results_s["AFOL"][$a];
$meb = $results_s["ME_B"][$a];
$anlo = $results_s["ANLO"][$a];
$bend = $results_s["BEND"][$a];
echo ("
<tr bgcolor=\"gray\">
<td align=\"center\" class=\"tdsolid\"><font size=\"2\" >$afol</font></td>
<td align=\"right\" class=\"tdsolid\"><font size=\"2\" color=\"white\">$posnr</font></td>
<td align=\"right\" class=\"tdsolid\"><font size=\"2\" >$ile</font></td>
<td align=\"right\" class=\"tdsolid\"><font size=\"2\" >$meb</font></td>
<td align=\"right\" class=\"tdsolid\"><font size=\"2\" >$bend</font></td>
<td align=\"right\" class=\"tdsolid\"><font size=\"2\" >$werk</font></td>
<td align=\"right\" class=\"tdsolid\"><font size=\"2\" >$anlo</font></td>
</tr>
");
}
//=============================================================================================================
flush();
}
//$calkowita_ilosc_meldowanych = $nrows + $calkowita_ilosc_skladowych;
echo ("</table>");
$end = utime(); $run = $end - $start;
$czas_ret = substr($run, 0, 5);
$nrows_ret = $a;
$nrows_org = $nrows_ret;
$nrows_ret = $nrows_ret*14;//mnoży wiersze*kolumny
echo ("Wyświetlono $nrows_org pozycji($nrows_ret rekordów), czas wykonania: $czas_ret");
?>
SQL'e wykonuja sie prawidłowo kiedy są puszczone na same na bazie ale kiedy wykonuje sie program, dostaje:
Warning: ociexecute() [function.ociexecute]: OCIStmtExecute: ORA-00936: missing expression in.... i wskazuje na ociexecute drugiego sqla..
Po czym co prawda wybierane są dane ale tak jakby pętla stawała po 3 wybraniu (trzecim zapętleniu) czyli dostaje 3 snr i do nich skladowe.
Gdzie może być błąd?
Z góry dzięki za pomoc