OK
to może inaczej (mała zmiana :/) . Do tabeli studenci chcę zapisać wartość element $idt jako id_temat i niestety za każdym razem zapisuje mi w tym miejscu 0.
<?php
$query = "INSERT INTO studenci (id_student, imie, nazwisko, gr_dziek, nr_alb, id_temat) VALUES ('', '$fn', '$ln', '$gr_dziek', '$nr_alb', '$idt')";
?>
Wszystkie inne dane są zapisywane poprawnie, więc dlaczego nie chce mi się dopisać id_temat? Już wyświetlałem wartość zmiennej $idt (która jest przekierowywana za pomocą adresu .php?nr) i jej wartość jest poprawna.
<?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');
$fn = escape_data($_POST['imie']);
} else {
$fn = FALSE;
echo '<p><font color="red" size="+1">Proszę podać imię !</font></p>';
}
{
$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']);
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'";
$query = "INSERT INTO studenci (id_student, imie, nazwisko, gr_dziek, nr_alb, id_temat) VALUES ('', '$fn', '$ln', '$gr_dziek', '$nr_alb', '$idt')";
echo '<h3>Zostałeś dopisany do tematu.</h3>'; $temat = mysql_query ("SELECT ilosc_wolnych_miejsc FROM tematy WHERE id_temat='$idt'"); $up = mysql_query ("UPDATE tematy SET ilosc_wolnych_miejsc=ilosc_wolnych_miejsc-1"); include ('./includes/footer.html');
} 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>';
}
?>
Tabela Studenci wygląda:
CREATE TABLE IF NOT EXISTS `studenci` (
`id_student` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`imie` char(50) COLLATE utf8_polish_ci DEFAULT NULL,
`nazwisko` char(50) COLLATE utf8_polish_ci DEFAULT NULL,
`id_wydzial` int(10) UNSIGNED DEFAULT NULL,
`gr_dziek` char(8) COLLATE utf8_polish_ci DEFAULT NULL,
`nr_alb` char(8) COLLATE utf8_polish_ci DEFAULT NULL,
`id_temat` int(10) DEFAULT NULL,
PRIMARY KEY (`id_student`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=20 ;
Dodatkowo co dziwniejsze w kodzie:
<?php
$temat = mysql_query ("SELECT ilosc_wolnych_miejsc FROM tematy WHERE id_temat='$idt'"); $up = mysql_query ("UPDATE tematy SET ilosc_wolnych_miejsc=ilosc_wolnych_miejsc-1"); ?>
zmniejsza mi wartość, ale niestety we wszystkich rekordach, a powinno tylko w jednym, gdzie id_temat się zgadza :/
natomiast kombinacja:
<?php
$up = mysql_query ("UPDATE tematy SET ilosc_wolnych_miejsc=ilosc_wolnych_miejsc-1 WHERE id_temat='$idt'"); ?>
Tabela Tematy wygląda następująco:
CREATE TABLE IF NOT EXISTS `tematy` (
`id_temat` int(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_przedmiot` int(10) UNSIGNED DEFAULT NULL,
`id_wykladowca` int(10) UNSIGNED DEFAULT NULL,
`id_wydzial` int(10) UNSIGNED DEFAULT NULL,
`temat` varchar(500) COLLATE utf8_polish_ci DEFAULT NULL,
`ilosc_wolnych_miejsc` int(10) UNSIGNED DEFAULT NULL,
`na_ile_osob` int(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (`id_temat`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=3 ;
nie zmienia mi żadnej wartości :/
Pomoże ktoś?