Witam,
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 (IMG:
http://forum.php.pl/style_emoticons/default/questionmark.gif) ?(IMG:
http://forum.php.pl/style_emoticons/default/exclamation.gif)
<?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'";
$il_wol = mysql_query ("SELECT * FROM `tematy` WHERE id_temat='$idt'"); $il_wol3 = $il_wol2 ['ilosc_wolnych_miejsc'];
$stan = $il_wol3 -1;
?>
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>
<p><b>Imię:</b> <input type="text" name="imie" size="15" maxlength="15" value="
<?php if (isset($_POST['imie'])) echo $_POST['imie']; ?>" /></p>
<p><b>Nazwisko:</b> <input type="text" name="nazwisko" size="30" maxlength="30" value="
<?php if (isset($_POST['nazwisko'])) echo $_POST['nazwisko']; ?>" /></p>
<p><b>Gr. Dziekańska:</b> <input type="text" name="gr_dziek" size="11" maxlength="11" value="
<?php if (isset($_POST['gr_dziek'])) echo $_POST['gr_dziek']; ?>" /> </p>
<p><b>Nr Albumu:</b> <input type="text" name="nr_alb" size="11" maxlength="11" value="
<?php if (isset($_POST['nr_alb'])) echo $_POST['nr_alb']; ?>" /> </p>
</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
Ten post edytował mkotek 3.06.2009, 18:44:50