trinklins Posted March 12, 2004 Report Share Posted March 12, 2004 karoče ir forma ar input type ='text' un input type = 'submit'. pie submitoshas dati no teksta lauka tiek ievadīti datubāzē vai tiek laboti respektīvi Update. problēma ir tāda ka intensīvi spiežot submit pogu dati netiek vienreiz ievadīti, bet tie ievadīti vairākas reizes. Bet ja nospiež vienreiz, laujot redirektēties, tad nospiežam atkārtoti pogu un dati netiek atkārtoti ievadīti. :ph34r: Link to comment Share on other sites More sharing options...
sviesc Posted March 12, 2004 Report Share Posted March 12, 2004 (edited) rādi skriptu tā būs vieglāk saprast Tavu probu Edited March 12, 2004 by sviesc Link to comment Share on other sites More sharing options...
trinklins Posted March 12, 2004 Author Report Share Posted March 12, 2004 <? Include("Includes/global.inc.php"); checkPermissions(1, 1800); // Has the form been submitted if ($btnSubmit) { $nosaukums = validateText("Strukturvieniba", $txtNosaukums, 2, 50, TRUE, FALSE); // are required fields were filled out if (!$strError) { // Pick the proper sql statement to query the database if ($pk_strukturvieniba) { $sql = "UPDATE strukturvieniba SET strukt_nosaukums='$nosaukums' WHERE pk_strukturvieniba=$pk_strukturvieniba"; $strError = "Ieraksts izlabots veikmīgi."; } else { $sql = "INSERT INTO strukturvieniba (strukt_nosaukums) VALUES ('$nosaukums')"; $strError = "Ieraksts izveidots veikmīgi."; } $result = dbquery($sql); redirect("strukturvieniba.php","strError=$strError"); }// End if // If we are deleting, delete the peripherals tied to the asset } elseif ($delete AND $sessionSecurity < 1) { $sqlPraverka = "SELECT pk_strukturvieniba FROM strukturvieniba LEFT JOIN darbavieta on fk_strukturvieniba=pk_strukturvieniba WHERE fk_strukturvieniba IS NULL AND pk_strukturvieniba ='$pk_strukturvieniba'"; $result=dbquery($sqlPraverka); $row = mysql_fetch_array($result); $pk_strukturvieniba = $row['pk_strukturvieniba']; if ( $pk_strukturvieniba ){ $sql = "DELETE FROM strukturvieniba WHERE pk_strukturvieniba= '$pk_strukturvieniba'"; $result = dbquery($sql); $strError = "Ieraksts izdzēsts veiksmīgi."; }else{ $strError = "Šī struktūrvienība vēl joprojām darbojas, tāpēc tā nevar tikt izdzēsta."; } } // If you're editing load the vars if ($pk_strukturvieniba) { $sql = "SELECT * FROM strukturvieniba WHERE pk_strukturvieniba=$pk_strukturvieniba"; $result = dbquery($sql); $this = mysql_fetch_array($result); $pk_srtukturvieniba = $this["pk_strukturvieniba"]; $nosaukums = $this["strukt_nosaukums"]; } if ($pk_strukturvieniba) { $titlePrefix = "Labot"; $addInstead = " (<a href='strukturvieniba.php'>Pievienot jaunu struktūrvienību</a>)"; } else { $titlePrefix = "Pievienot"; } writeHeader("$titlePrefix Struktūrvienību"); declareError(TRUE); ?> <font color='ff0000'>*</font> Nepieciešamie laiki lai izdarītu ierakstu.<p> <FORM METHOD="post" ACTION="<? echo $PHP_SELF?>"> <table border='0' cellpadding='1' cellspacing='0' width='400'> <tr> <td width='100'><font color='ff0000'>*</font> Nosaukums: <INPUT TYPE="hidden" NAME="pk_strukturvieniba" VALUE="<? echo $pk_strukturvieniba; ?>"> </td> <td width='300'><INPUT SIZE="30" MAXLENGTH="50" TYPE="Text" NAME="txtNosaukums" VALUE="<? echo antiSlash($nosaukums); ?>"></td> </tr> <tr><td colspan='2'> </td></tr> <tr><td colspan='2'> <input type="hidden" name="btnSubmit" value="Ievadīt Informāciju"> <input type="submit" name="btnSubmit" value="Ievadīt informāciju"> <A HREF="<?=$_SESSION['linksD'];?>">Atpakaļ</A></td></tr> </table> </FORM> <? echo "<b>Struktūrvienības</b> $addInstead<p>"; $hw = "SELECT * FROM strukturvieniba ORDER BY strukt_nosaukums ASC"; $sql = dbquery($hw); $results = mysql_num_rows($sql); if ($results > 0) { ?> <TABLE border='0' cellpadding='4' cellspacing='0'> <TR class='title'> <TD><b>Nosaukums</b> </TD> <TD><b>Iespējas</b></TD> <? while ($result = mysql_fetch_array($sql)) { $pk_strukturvieniba = $result['pk_strukturvieniba']; $nosaukums = $result['strukt_nosaukums']; ?> <TR class='<? echo alternateRowColor(); ?>'> <TD><i><? echo $nosaukums; ?></i> </TD> <TD> <A HREF="strukturvieniba.php?pk_strukturvieniba=<? echo $pk_strukturvieniba; ?>">Labot</A> <? If ($sessionSecurity < 1) { ?> <A HREF="strukturvieniba.php?pk_strukturvieniba=<? echo $pk_strukturvieniba; ?>&delete=yes" onClick="return warn_on_submit('<?=pazinojums(TRUE,"struktūrvienību");?>');">Dzēst</A> <? } ?> </TD> </TR> <? } ?></table><? } writeFooter(); ?> Link to comment Share on other sites More sharing options...
Venom Posted March 12, 2004 Report Share Posted March 12, 2004 kā vienmēr palīdz pēc submit pogas noredirektot/no header() oties uz sākumformu, lai tiktu nomesti POST/GET dati. vai pirms updeita taisīt query: ķipa select 1 from tabula where `kollona_kura_jaaupdeito`='ievadaamaa veertiiba' ja mysql_affected_rows atgriezh kaut, ko - tad taada shtuka datu baazee jau ir. Vai arii glabaat kaut kur timeoutu (sessijaa piem.), kur salikt, ka updeitot nedrīks tuvāko 30 sek laikā u.t.t. u.t.j. Link to comment Share on other sites More sharing options...
Aleksejs Posted March 12, 2004 Report Share Posted March 12, 2004 Vai nevar uzreiz rakstīt kaut ko līdzīgu: UPDATE tabula SET kol1 = newval1, .., kolN = newvalN WHERE kol1=oldval1 AND ... AND kolN=oldvalN Tad noupdeitot ar vieniem un tiem pašiem padotajiem laukiem varēs tikai vienreiz. Protams, tas nozīmē, ka forma padod arī vecos datus (piemēram kā <input type=hidden...>) Link to comment Share on other sites More sharing options...
Venom Posted March 15, 2004 Report Share Posted March 15, 2004 iet runa vairāk par INSERT, nevis UPDATE paskatītos es uz tevi ar hidden lauku, kurā ir uz kādiem 24Kb teksta. lai neupdeitotos x reiz lauki, iekš WHERE jābūt `lauks`<>'ievadītā vērtība' Link to comment Share on other sites More sharing options...
trinklins Posted March 15, 2004 Author Report Share Posted March 15, 2004 Jā runa iet par insertu. Tātad viņam vajag kautkādu nosacījumu, bet cik es saprotu viņam tajā nosacījumā vajag Selectu, respektivi noselektēt visus datus no tabulas un pārbaudīt vai tas nav vienāds ar ievadāmo vērtību. Ja tā tad lūgums ir tāds parādiet kā sql teikumam to var izdarīt. Nu nemāku :rolleyes: tabula ir strukturvieniba ar diviem laukiem pk_stukturvieniba -->primārā atslēga strukt_nosaukums --> teksta lauks INSERT INTO strukturvieniba (strukt_nosaukums) VALUES ('$nosaukums') Link to comment Share on other sites More sharing options...
Venom Posted March 15, 2004 Report Share Posted March 15, 2004 sen neesmu raxtījis ar mysql_* f-jām pa tiešo ;) something like that: $q=mysql_query("SELECT `pk_strukturvieniba` FROM strukturvieniba WHERE `strukt_nosaukums`='".$nosaukums."'"); $f=mysql_fetch_array($q); //no kvērija rezultāta dabonam masīvu if (!$f['pk_strukturvieniba']) /* ja masīva apakšelements, kas atbilst tabulas kolonnai ir tukšs - nav atrasts neviena atbilstoša rindiņa */ mysql_query("INSERT INTO strukturvieniba SET `strukt_nosaukums`='".$nosaukums."'"); else echo 'Šāds ieraksts jau iraid ar Nr. '.$f['pk_strukturvieniba']; ... $f=mysql_fetch_array($q); if (!$f['pk_strukturvieniba']) ... ja pareizi atceros, var aizvietot arī ar: if (mysql_affected_rows($q)) // ja "aizskarto" rindu skaits lielāks par nulli - ieraksts iraid Link to comment Share on other sites More sharing options...
trinklins Posted March 15, 2004 Author Report Share Posted March 15, 2004 (edited) 2 Mr.Venom. Paldies šis joks iet..... bet nav tāda fīča ka quverijā pārbaudīt uzreiz, respektīvi: insert into ... bla bla ... Where un tagad seko selekta teikums kas ļauj pārbaudīt vērtības. Nu cik zinu ir tāds joks selekts selektā. Edited March 15, 2004 by trinklins Link to comment Share on other sites More sharing options...
Venom Posted March 15, 2004 Report Share Posted March 15, 2004 kaut kā jau ir, BET selekts selektā iekš MySQL parādījies diezgan nesen, tāpēc ar to vēl nevajadzētu brīvi spēlēties. Jāpadomā, varētu kaut ko izmocīt ar IF konstrukciju. Es būtībā "updeitojamās" vērtības ielieku citā variābli, piem. $tmp="tabula SET `lauks`='vērtība',`lauks2`='vērtība2'" ja neiet "UPDATE $tmp WHERE kaut kas", tad izpildās "INSERT $tmp" Koda īsuma dēļ. Link to comment Share on other sites More sharing options...
Recommended Posts