Autor Zpráva
Ludva
Profil *
Mám problém s výpisem zboží v košíku a přiřazením ceny.
Web by měl fungovat tak, že si zákazník vybere zboží, ale nevloží ho hned do košíku, ale přiřadí jej až v sekci objednávky, kde je formulář kam zadá číslo produktu, typ(verzi) a počet. formulář se uloží do session a opět se načte stránka objednávky, kde může přidat další produkt a zároveň vidí zboží v košíku včetně ceny, která se tahá z databáze podle čísla produktu. Vše se jeví v pořádku, ceny se načítají správně, cykly ukládají data do session, ale po cca čtryřech produktech to přestane fungovat (nepřiřazuje cenu, ale tabulka se vypisuje s ostatními informacemi správně).

Hlásí to chybu:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 3 on MySQL result index 14 in /mnt/data/accounts/a/absolutnoweb/data/www/kacl/objednavky.php on line 272

což mi rozum nebere, protože pro první tři problém neni.

Vím že způsob tohoto zadávání není ideální, Já si to ale nevymyslel.

Kod načtení session:

<?php
$vypis_cislo = Split(";;",$my_cislo);
$vypis_ks = Split(";;",$my_ks);
$vypis_provedeni = Split(";;",$my_provedeni);
$vypis_dvirka = Split(";;",$my_dvirka);
?> 


Kod pro vložení produktu je:

echo '
  <form action="kosik_add.php" method=post>
  <center>
  <table>
  <tr><th><font class="red">* </font>Objednávkové číslo</th><th>&nbsp;</th><th><font class="red">* </font>Barevné provedení</th><th> &nbsp; &nbsp; <font class="red">* </font>Množství</th><th>&nbsp;</th></tr>
  <tr class="small-text"><td>&nbsp; Příklad:(000021)</td><td>&nbsp;</td><td>&nbsp; Příklad:(3020)</td><td>&nbsp;</td><td>&nbsp;</td></tr>

  <tr><td>
  &nbsp; 
 <select name="cislo">
 <option value="nezvoleno">----</option> 
';
 
   $query = 'SELECT * FROM kacl WHERE provedeni="SS"';
  $result = mysql_query($query, $connection) or die(mysql_error());
   
  for ($i = 0;$i<  mysql_num_rows($result);$i++) {
    $cislo_vyrobku = mysql_result($result, $i, "cislo");
    
    echo '<option value="'.$cislo_vyrobku.'">'.$cislo_vyrobku.'</option>';
  } 
      
echo '    
 </select>  
  </td>
  <th>
   &nbsp; / &nbsp; 
  </th>
  <td>
  &nbsp; <input type="text" name="provedeni" value="" size="7"> <strong>Klapka+Box</strong>
  </td>
  <td>
  &nbsp; <input type="text" name="ks" value="" size="5"> <strong>ks</strong>
  </td>
  <td>
  <input title="Přidat" value="Přidat do košíku" type=submit>
  </td></tr>
  <tr><td>&nbsp;</td><th> &nbsp;</th><td>&nbsp; <input type="text" name="dvirka" value="" size="7"> <strong>Dvířka</strong></td><td> &nbsp;</td><td></td></tr>
  </table> 
  </center>
  </form>
';




Kod pro cyklus je:

for($i=1; $i<Count($vypis_ks); $i++){
  $query = 'SELECT * FROM kacl WHERE cislo='.$vypis_cislo[$i];
  $result = mysql_query($query, $connection) or die(mysql_error());
    $a = $i-1;
    $cena_bez_dph = mysql_result($result, $a, "bezdph");
    $cena_s_dph = mysql_result($result, $a, "sdph");
    $celkem_bez_dph = $cena_bez_dph * $vypis_ks[$i];
    $platba = $platba + $cena_s_dph * $vypis_ks[$i];
echo '
<tr align="center"><td>'.$vypis_cislo[$i].'</td><td>'.$vypis_provedeni[$i].' &nbsp; '.$vypis_dvirka[$i].'</td><td>'.$vypis_ks[$i].'</td><td>'.$cena_bez_dph.'</td><td>'.$celkem_bez_dph.'</td></tr>
';   
}


toto vše je v jednom souboru objednavky.php

Jsem ochoten i vám zavolat pro lepší komunikaci.

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
keeehi
Profil
chybovou hlášku jsi sem nakopíroval správně. Chybová hláška obsahuje mnoho užitečných informací: Warning: mysql_result() [function.mysql-result]: Unable to jump to row 3 on MySQL result index 14 in /mnt/data/accounts/a/absolutnoweb/data/www/kacl/objednavky.php on line 272
To první tučné je funkce, kde se vyskytla chyba a ty další dvě tučné jsou soubor, kde je ta chyba a řádek v souboru. Jsou to dost důležité věci. Takže pokud chceš pomoct, nakopíruj sem tu část kódu kolem řádku 272 (něco před a něco potom aby to dávalo smysl) a označ v tom ten řádek 272. Jinak se špatně pomáhá
Ludva
Profil *
už jsem to vyřešil, měl jsem chybu v cyklu, místo $a to chtělo dát jen 0 při načítání dat z databáze.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: