Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  PHP: Kuidas lisada vormile uut lahtrit ? märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
comodo
HV vaatleja

liitunud: 14.04.2009




sõnum 04.12.2011 16:41:38 PHP: Kuidas lisada vormile uut lahtrit ? vasta tsitaadiga

Hetkel on käsil arvesüsteemi kohendamine. See näeb välja selline,et sisestad kliendi nime,aadressi jne ning toote nime,koguse ja hinna.
Seejärel salvestad andmed ning need ilmuvad index.php lehel tabelisse. Andmetele klikkides avaneb PDF dokument (et saaks välja printida).

Nüüd oleks vaja teha väike uuendus: Lisada hinna alla uus lahter,et müüja saaks sisestada summa sõnades. (10 € - kümme eurot).
Lahter ilmub ilusti,kui on vaja andmeid sisestada,aga kui PDF avan,siis sinna ei teki sisestatud andmeid.

Tegin sama põhimõtte järgi nagu $klient ,aga ei hakka tööle.

Kuna ma igapäevaselt selliste asjadega ei tegele,siis äkki teen midagi valesti.



See on siis algne kood.Kõik,mis ei töötanud,kustutasin ära.


SISESTAN ANDMEID:

<?php

require("conf.php");

if($salvesta=="salvesta")
{
  $kasutajarida=@mysql_fetch_array(@mysql_query("SELECT arve_nr FROM a_kasutajad WHERE id='".$HTTP_SESSION_VARS["login_id"]."'"));
  $rida=@mysql_fetch_array(@mysql_query("SELECT arve_nr+1 FROM a_arved02 WHERE kasutaja='".$HTTP_SESSION_VARS["login_id"]."' AND YEAR(aeg)=YEAR(NOW()) ORDER BY arve_nr DESC LIMIT 1"));
  if($rida[0]<$kasutajarida[0])
    $rida[0]=$kasutajarida[0];
  @mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis) VALUES ('".$rida[0]."', '$klient', '$aadress', NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis')");
  $arve_id=@mysql_insert_id();
  for($i=0;$i<$arveridu;$i++)
  {
    if(${toode.$i}=="" && ${hind.$i}=="" && ${kogus.$i}=="")
    {}
    else
      @mysql_query("INSERT INTO a_tooted02 (nimi,hind,kogus,arve) VALUES ('".${toode.$i}."', '".${hind.$i}."', '".${kogus.$i}."', '$arve_id')");
  }
  header("Location: index.php");
  exit();
}
if($arveridu==0)
  $arveridu=1;
if($aeg==0)
{
  $aeg=date("d.m.Y");
  $makset2htaeg="7 päeva";
}
if($lisarida=="lisa rida")
  $arveridu++;

?>

<a href=index.php>tagasi</a>
<br>
<form id=vorm>
<input type=hidden name=arveridu value=<?=$arveridu?>>
PROFORMA <input type=checkbox value=1 name=proforma<?php if($proforma==1)echo " checked";?>><br>
Klient: <input type=text size=30 name=klient value="<?=$klient?>"><br>
Aadress: <input type=text size=50 name=aadress value="<?=$aadress?>"><br>
Maksetähtaeg: <input type=text name=makset2htaeg value="<?=$makset2htaeg?>"><br>
Makseviis: <input type="radio" name="makseviis" value="0"<?php if(!$makseviis)echo " CHECKED"?>>Ülekandega <input type="radio" name="makseviis" value="1"<?php if($makseviis)echo " CHECKED"?>>Sularahas<br>
<br>
<?php echo $js;?>
<br><br>
<input type=submit value="salvesta" name="salvesta">

</form>







VAATAN PDF'iga ANDMEID

<?php

require("conf.php");

$rida=@mysql_fetch_array(@mysql_query("SELECT id,DATE_FORMAT(aeg,'%d.%m.%Y') AS aeg,arve_nr,klient,aadress,sisestatud,kasutaja,proforma,makset2htaeg,IF(makseviis=1,'Sularahas','Ülekandega') AS makseviis FROM a_arved WHERE id='$arve'"));
$tooted=@mysql_query("SELECT * FROM a_tooted WHERE arve='$arve' ORDER BY id");
$arveridu=@mysql_num_rows($tooted);
extract($rida);

function pdf_code($jutt)
{
  return str_replace("(", "(", str_replace(")", ")", str_replace("\", "\\", $jutt)));
}


VAHEPEAL ON MÕÕDUD JNE

$y=$y2;
  if($proforma)
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x1, "tekst"=>"PROFORMA", "fontstyle"=>1, "fontsize"=>$fontsize));
  pdf_row();
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>460, "tekst"=>"Kuupäev", "fontstyle"=>0, "fontsize"=>$fontsize));
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>510, "tekst"=>$aeg, "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Arve nr", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$arve_nr, "fontstyle"=>1, "fontsize"=>$fontsize));
  if($proforma)
  {
    pdf_row();
    $x=$x1;
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Maksetähtaeg:", "fontstyle"=>1, "fontsize"=>$fontsize));
    $x=$x2;
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$makset2htaeg, "fontstyle"=>1, "fontsize"=>$fontsize));
  }
  pdf_row();
  pdf_row();
  $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Maksja:", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$klient, "fontstyle"=>1, "fontsize"=>$fontsize));
  pdf_row();
  $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Aadress:", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$aadress, "fontstyle"=>1, "fontsize"=>$fontsize));
  pdf_row();
  $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Makseviis:", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$makseviis, "fontstyle"=>1, "fontsize"=>$fontsize));
  $y=250;
  $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Kauba nimetus", "fontstyle"=>1, "fontsize"=>$fontsize));
  $x=$x4;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Kogus", "fontstyle"=>1, "fontsize"=>$fontsize));
  $x=$x4+50;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Hind", "fontstyle"=>1, "fontsize"=>$fontsize));
  $x=$x4+100;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Summa", "fontstyle"=>1, "fontsize"=>$fontsize));

  $summa=0;
  while($rida=@mysql_fetch_array($tooted))
  {
    pdf_row();
    $x=$x1;
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$rida["nimi"], "fontstyle"=>0, "fontsize"=>$fontsize));
    $x=$x4;
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>round($rida["kogus"],2), "fontstyle"=>0, "fontsize"=>$fontsize));
    $x=$x4+50;
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>round($rida["hind"],2), "fontstyle"=>0, "fontsize"=>$fontsize));
    $x=$x4+100;
    array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>round($rida["hind"]*$rida["kogus"],2), "fontstyle"=>0, "fontsize"=>$fontsize));
    $summa+=$rida["hind"]*$rida["kogus"];
  }


JA EDASI ON PDF OMAD READ.
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.12.2011 11:14:23 vasta tsitaadiga

Igaks juhuks küsin üle, mida sa täpselt tegid?
S.t. kas lisasid uue väärtuse kõigisse vajalikesse SQL lausetesse? Kui jätta see sisestamise juures baasi kirjutamata või PDF koostamise ajal baasist lugemata, ei saagi see kuhugi ilmuda.
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
comodo
HV vaatleja

liitunud: 14.04.2009




sõnum 05.12.2011 11:40:37 vasta tsitaadiga

Aitäh vastamise eest!

Ma usun,et lisasin väärtuse kõigisse vajalikesse SQL lausetesse ja läksin baasi ja lõin uue väärtuse.

Aga tundub,et ma teen midagi siiski valesti, sest ma ei puutu programmeerimisega igapäevaselt kokku.

Seega,kas te saaksite öelda,kuidas teie täpsemalt need väärtused lisaks?
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.12.2011 13:29:37 vasta tsitaadiga

Esmapilgul vajavad täiendamist need laused:
  @mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis) VALUES ('".$rida[0]."', '$klient', '$aadress', NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis')");

$rida=@mysql_fetch_array(@mysql_query("SELECT id,DATE_FORMAT(aeg,'%d.%m.%Y') AS aeg,arve_nr,klient,aadress,sisestatud,kasutaja,proforma,makset2htaeg,IF(makseviis=1,'Sularahas','Ülekandega') AS makseviis FROM a_arved WHERE id='$arve'"));

Lisaks peaks PDF koostamisele lisama selle mudeli järgi jupi, mis lisaks faili eelmainitud "summa sõnades" veeru.
   $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Arve nr", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$arve_nr, "fontstyle"=>1, "fontsize"=>$fontsize)); 
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
comodo
HV vaatleja

liitunud: 14.04.2009




sõnum 05.12.2011 13:46:51 vasta tsitaadiga

Nii arvasin mina ka. Proovisin üht ja teistpidi,aga ei tööta.

Muutused tuleb teha nii? :

infidel kirjutas:
Esmapilgul vajavad täiendamist need laused:
  @mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis,summasonades,) VALUES ('".$rida[0]."', '$klient', '$aadress', '$summasonades',NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis')");

$rida=@mysql_fetch_array(@mysql_query("SELECT id,DATE_FORMAT(aeg,'%d.%m.%Y') AS aeg,arve_nr,klient,aadress,sisestatud,kasutaja,proforma,makset2htaeg,summasonades,IF(makseviis=1,'Sularahas','Ülekandega') AS makseviis FROM a_arved WHERE id='$arve'"));


Lisaks peaks PDF koostamisele lisama selle mudeli järgi jupi, mis lisaks faili eelmainitud "summa sõnades" veeru.
   $x=$x1;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Arve nr", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$arve_nr, "fontstyle"=>1, "fontsize"=>$fontsize));

array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Summa sonades", "fontstyle"=>0, "fontsize"=>$fontsize));
  $x=$x2;
  array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>$summasonades, "fontstyle"=>1, "fontsize"=>$fontsize));
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 05.12.2011 14:02:32 vasta tsitaadiga

tsitaat:
"INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis,summasonades,) VALUES

esiteks, ei käi viimase lahtri järgi koma ja teiseks mis on vist sul asja point, sa pead ennem oma tabelit ju ka täiendama, kas seal on lahter summasonades juurde lisatud? See päring lisaks sinna lahtrisse, kuid ta ei tekita uut lahtrit tabelisse.

Edit!
Vaatasin veelkord, sul on ju seal päringus järjekorrad täiesti sassi aetud, sa ei saa seda summasonades suvalisse kohta vahele torgata, value käib ikka täpselt selles järjekorras, mis lahtrid ette antakse.

@mysql_query("INSERT INTO a_arved02 (arve_nr,klient,aadress,sisestatud,kasutaja,aeg,proforma,makset2htaeg,makseviis,summasonades) VALUES ('".$rida[0]."', '$klient', '$aadress', NOW(), '".$HTTP_SESSION_VARS["login_id"]."', NOW(), '$proforma', '$makset2htaeg', '$makseviis', '$summasonades')");

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
comodo
HV vaatleja

liitunud: 14.04.2009




sõnum 05.12.2011 14:26:00 vasta tsitaadiga

Proovisin teha nii ja naa. Absoluutselt mitte midagi ei mõju.

array_push($r_print, array("tyyp"=>3, "startheight"=>$y, "startwidth"=>$x, "tekst"=>"Summa sonades", "fontstyle"=>0, "fontsize"=>$fontsize));
$x=$x2;

Summa sonades trükib ta välja ,aga selle $summasonades väärtust ei trüki ikka veel.


"Sa pead ennem oma tabelit ju ka täiendama, kas seal on lahter summasonades juurde lisatud? See päring lisaks sinna lahtrisse, kuid ta ei tekita uut lahtrit tabelisse."
Tähendab kui ma nüüd õigesti aru sain sellest lausest,siis selles tabelis ta ei pea üldse olema. See tabel,mis index.php lehel on näitab kiirülevaadet. Näiteks kliendi nimi ja kuupäev. Kui sellele klikata,siis lööb alles PDF lahti kõikide andmetega.
Oluline on,et PDF'i peal näitab summasonadega väärtust.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Renka
HV Guru
Renka

liitunud: 01.04.2002




sõnum 05.12.2011 15:02:35 vasta tsitaadiga

miks peab üldse summa sõnadega keegi käsitsi kirjutama? Sellise asja võiks ju skript ise kokku kirjutada siiski icon_rolleyes.gif
_________________
There is no place like 127.0.0.1
Kommentaarid: 71 loe/lisa Kasutajad arvavad:  :: 2 :: 1 :: 61
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Andykas
HV veteran
Andykas

liitunud: 28.08.2004




sõnum 05.12.2011 15:11:52 vasta tsitaadiga

http://karthickvr.blogspot.com/2007/11/number-to-words-in-php.html
Kommentaarid: 25 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.12.2011 16:03:52 vasta tsitaadiga

Renka kirjutas:
miks peab üldse summa sõnadega keegi käsitsi kirjutama? Sellise asja võiks ju skript ise kokku kirjutada siiski icon_rolleyes.gif

Ehk on mõeldud seda lisakontrollina andmesisestajale?
Comodo kirjutas:
Proovisin teha nii ja naa. Absoluutselt mitte midagi ei mõju.

Vaatasin koodi veidi hoolikamalt:
Andmed sisestatakse tabelisse "a_arved02", hiljem aga loetakse tabelist "a_arved". Kas nende kahe tabeli vahel on mingi baasipõhine seos?
Kommentaari "VAHEPEAL ON MÕÕDUD JNE" asemel peaks olema ka koodijupp, mis tekitab baasipäringu vastuse $rida põhjal väärtused muutujatele $proforma, $aeg jt. Seal peaks oma väärtuse saama ka $summasonadega.
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
serk
HV kasutaja

liitunud: 24.05.2003




sõnum 05.12.2011 23:51:07 vasta tsitaadiga

Teeme siis puust ja punaseks:

1) Lisa uus veerg andmebaasi tabelisse
2) Muuda PHPs andmete sisestamise vormi, lisa uus veerg
3) Muuda PHPs andmete sisestamise koodi, lisa uus veerg INSERT/UPDATE lausesse. Kuna sa asjast väga ei tea, siis lisa esialgu staatiline väärtus INSERT lausesse. Siis saad aru, kas muudad üldse õiget kohta.
4) Veendu, et sisestatud andmed salvestatakse andmebaasi
5) Lisa uue veeru näitamise kood PDFi genereerimise scripti ehk muuda SELECT lauset PHPs ja lisa veeru näitamine PDFi.

Kõigepealt veendu, et punkt 4 saaks täidetud. Unusta see PDF ennem üldse ära.

Kui see kõik käib ülejõu, palka abiline.
Kommentaarid: 8 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum
comodo
HV vaatleja

liitunud: 14.04.2009




sõnum 08.12.2011 14:23:42 vasta tsitaadiga

Suur tänu vihjete eest!

Tundub,et suure kustutamise ja uuesti lisamise peale jäi mingil hetkel muutmata NAME väärtus: Summa sõnadega:<input type=text size=30 name=sonadega value="<?=$sonadega?>"> <br>
Alguses oli see mul õigesti,aga pärast kustutasin kõik ära ja lisasin uuesti ning siis jäi see muutmata. Pärast seda panin ka Insert päringud õigesse järjekorda uuesti ja hakkaski tööle.

Nii,et algselt oligi probleem päringu järjekorras, ma usun.

Muideks,see summa sõnades võib skript ise küll kokku kirjutada,aga peale "sonadega" väärtuse on mul vaja veel mõned juurde panna. Ehk siis see probleem vajas nii või teisiti lahendamist.

Aga suur-suur tänu abi eest teile !
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  PHP: Kuidas lisada vormile uut lahtrit ?
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.