Może mi ktoś powiedzieć dlaczego podczas wykonywania samego skryptu php w oddzielnym pliku w bazie jest zmniejszana wartość o jeden, natomiast w całym skrypcie dopisywania użytkownika wartość zmiennej zawsze jest ustawiana na -1 co w rezultacie daje wyzerowanie rekordu


<?php include ('./includes/config.inc.php'); $idt = $_SERVER['QUERY_STRING']; require_once ('mysql_connect.php'); $temat = "SELECT ilosc_wolnych_miejsc FROM `tematy` WHERE id_temat='$idt'"; $res_t = mysql_query ($temat) or trigger_error("Zapytanie: $temat\n<br />Błąd MySQL: " . mysql_error()); $il_wol3 = $il_wol2 ['ilosc_wolnych_miejsc']; $stan = $il_wol3 -1; $up = mysql_query ("UPDATE `tematy` SET `ilosc_wolnych_miejsc`='$stan'") or trigger_error("Zapytanie: $up\n<br />Błąd MySQL: " . mysql_error()); ?>
tutaj jest cały skrypt dodawania użytkownika:
?php include ('./includes/config.inc.php'); $idt = $_SERVER['QUERY_STRING']; $page_title = 'Dopisywanie studenta'; include ('./includes/naglowek.html'); if (isset($_POST['submitted'])) { require_once ('mysqlconnect.php'); if (eregi ('^[[:alpha:].' -]{2,15}$', stripslashes(trim($_POST['imie'])))) { $fn = escape_data($_POST['imie']); } else { $fn = FALSE; echo '<p><font color="red" size="+1">Proszę podać imię !</font></p>'; } if (eregi ('^[[:alpha:].' -]{2,30}$', stripslashes(trim($_POST['nazwisko'])))) { $ln = escape_data($_POST['nazwisko']); } else { $ln = FALSE; echo '<p><font color="red" size="+1">Proszę podać nazwisko !</font></p>'; } if (isset($_POST['gr_dziek'])) { $gr = escape_data($_POST['gr_dziek']); }else{ $gr = FALSE; echo '<p><font color="red" size="+1">Proszę podać prawidłową Gr Dziekańską !</font></p>'; } if (isset($_POST['nr_alb'])) { $al = escape_data($_POST['nr_alb']); $search = mysql_query ("SELECT * FROM studenci WHERE nr_alb='$al'") or trigger_error("Przepraszamy, ale system nie znalazł odpowiedniego wpisu w bazie <p>:" .mysql_error()); $zm = mysql_fetch_assoc($search); if ($zm == NULL) { $pes = FALSE; } else $al = escape_data($_POST['nr_alb']); } if ('$fn' && '$ln' && '$gr' && '$al') { $query = "SELECT id_student FROM studenci WHERE nr_alb='$al'"; $result = mysql_query ($query) or trigger_error("Zapytanie: $query\n<br />Błąd MySQL: " . mysql_error()); if (mysql_num_rows($result) == 0) { $query = "INSERT INTO studenci (id_student, imie, nazwisko, gr_dziek, nr_alb) VALUES ('', '$fn', '$ln', '$gr_dziek', '$nr_alb')"; $result = mysql_query ($query) or trigger_error("Zapytanie: $query\n<br />Błąd MySQL: " . mysql_error()); if (mysql_affected_rows() == 1) { echo '<h3>Zostałeś dopisany do tematu.</h3>'; include ('./includes/footer.html'); exit(); } else { echo '<p><font color="red" size="+1">Nie zostałeś dopisany do tematu ze względu na błąd systemu. Przepraszamy za niedogodność.</font></p>'; } } else { echo '<p><font color="red" size="+1">Podany nr Albumu znajduje się już w bazie. Jeżeli masz wątpliwości skontaktuj sie z administratorem, lub wykładowcą.</font></p>'; } } else { echo '<p><font color="red" size="+1">Proszę spróbować jeszcze raz.</font></p>'; } $temat = "SELECT ilosc_wolnych_miejsc FROM `tematy` WHERE id_temat='$idt'"; $res_t = mysql_query ($temat) or trigger_error("Zapytanie: $temat\n<br />Błąd MySQL: " . mysql_error()); $il_wol = mysql_query ("SELECT * FROM `tematy` WHERE id_temat='$idt'"); $il_wol2 = mysql_fetch_assoc ($il_wol); $il_wol3 = $il_wol2 ['ilosc_wolnych_miejsc']; $stan = $il_wol3 -1; $up = mysql_query ("UPDATE `tematy` SET `ilosc_wolnych_miejsc`='$stan'") or trigger_error("Zapytanie: $up\n<br />Błąd MySQL: " . mysql_error()); mysql_close(); } ?> <h1>Zapisz się do tematu.</h1> <form action="dopisz.php" method="post"> <fieldset> </fieldset> <div align="center"><input type="submit" name="submit" value="Dopisz się" /></div> <input type="hidden" name="submitted" value="TRUE" /> </form> <?php include ('./includes/stopka.html'); ?>
Niestety jakoś brakuje mi pomysłów, co jest nie tak.
Przy okazji może ktoś podpowie jak mam zmienić
<?php ?>
Wszystko fajnie mi działa, ale niestety nie mogę dopisać użytkownika z polskimi znakami w Imieniu, lub nazwisku.
Z góry thx