δεν γινεται καταχωρηση δεδομενων απο φορμα σε πινακα βδ

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

δεν γινεται καταχωρηση δεδομενων απο φορμα σε πινακα βδ

Δημοσίευση από stavroula_apo » 11 Μάιος 2011 12:17

Κώδικας: Επιλογή όλων

<?php require&#40;"db.php"&#41;;
if&#40;$_SESSION&#91;'access'&#93;!=3&#41;&#123;
	header&#40;'location&#58;index.php'&#41;;
	exit;
&#125;

echo '<?xml version="1.0" enconding="UTF-8" ?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http&#58;//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http&#58;//www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>InstructCourses</title>
<link rel="stylesheet" href="menu/menu_style.css" type="text/css" />
<script language="javascript" type="text/javascript" src="script.js"></script>
</head>

<body>
<div id="container">
<?php require&#40;"menu.php"&#41;; ?>
<?php
if&#40;!$_POST&#91;"submit"&#93;&#41;&#123;
?>

<h3>Ανάθεση Μαθήματος Σε Καθηγητή</h3>
<form name="instruct_courses" action="" method="post" onsubmit="return validateadd_course&#40;&#41;;" onreset="return confirm&#40;'Είστε σίγουρος ότι θέλετε να καθαρίσετε όλη τη φόρμα;'&#41;">
<fieldset>
<legend>Ανάθεση Μαθήματος</legend>
<div id="float">

	<label for="course">Μάθημα</label>

	<select class="textfield" name="course" id="coursetitle" tabindex="1">
        <option value="0">Επιλέξτε Μάθημα<option>
        <?php
            $sql="select courseid,coursetitle,credit_units,coursecode from course order by coursetitle";
            $result = mysql_query&#40;$sql&#41;;
            while &#40;$row=mysql_fetch_array&#40;$result&#41;&#41;&#123;
                echo "<option value='".$row&#91;'courseid'&#93;."'>".$row&#91;'coursetitle'&#93;." - ".$row&#91;'coursecode'&#93;."</option>";
            &#125;
        ?>
        </select>

        <br></br>
	<label for="teacher">Καθηγητής</label>
	<select class="textfield" name="teacher" id="teachername" tabindex="2">
        <option value="0">Επιλέξτε Καθηγητή<option>
        <?php
            $sql="select staffid,stafffirst,stafflast,stafftelephone,staffemail from staff order by stafffirst,stafflast";
            $result = mysql_query&#40;$sql&#41;;
            while &#40;$row=mysql_fetch_array&#40;$result&#41;&#41;&#123;
                echo "<option value='".$row&#91;'staffid'&#93;."'>".$row&#91;'stafffirst'&#93;." - ".$row&#91;'stafflast'&#93;."&#40;".$row&#91;'staffid'&#93;."&#41;</option>";
            &#125;
        ?>
        </select>
</div>
</fieldset>

  <input type="submit" name="submit" class="cbutton" value="Ανάθεση" tabindex="3"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
	<input type="reset" class="cbutton" value="Καθαρισμός" tabindex="4"/>
</form>
</div>
<br/>

<?php
&#125;else &#123;
$course=mysql_real_escape_string&#40;$_POST&#91;'course'&#93;&#41;;
$teacher=mysql_real_escape_string&#40;$_POST&#91;'teacher'&#93;&#41;;

if&#40;$course !="" && $teacher !=""&#41;&#123;

$query="INSERT INTO teachingassignement&#40;cinid,staffid&#41; values&#40;'$course', '$teacher'&#41;";
mysql_query&#40;$query, $con&#41; or die&#40;mysql_error&#40;$con&#41;&#41;;
$lastid = mysql_insert_id&#40;&#41;;
echo "Η εγγραφή καταχωρήθηκε επιτυχώς! <br/><br/>";
$query="select coursetitle,coursecode,stafffirst,stafflast from courseinstance,staff,course where staff.staffid=teachingassignement.staffid, course.courseid=courseinstance.courseid and courseinstance.cinid=teachingassignement";
$row=mysql_fetch_array&#40;$result&#41;;
?>
<table border="1">
<tr>
<th>Μάθημα&#58; </th>
<td><?php echo $row&#91;'coursetitle'&#93;;?></td>
</tr>
<tr>
<th>Καθηγητής&#58; </th>
<td><?php echo $row&#91;'stafffirst'&#93;." ".$row&#91;'stafflast'&#93;; ?></td>
</tr>

</table>
<input type="button" value="<Επιστροφή" class="button" onclick="document.location='add_course.php';"/>
<?php
&#125;
else&#123;
echo "Δεν συμπληρώσατε όλα τα στοιχεία της φόρμας";
&#125;
&#125;
mysql_close&#40;$con&#41;;
?>
<br />
<br />
</div>
</body>
</html>
Σας παραθετω το παραπανω κωδικα. προκειται για μια φορμα αναθεσης μαθηματος σε καθηγητη. εχω φτιαξει δυο drop down λιστακια τα οποια αντλουν δυναμικα απο τη βδ τα δεδομενα. το προβλημα ομως ειναι το εξης: οταν επιλεγω μαθημα κ καθηγητη μου βγαζει αυτο το μνμ
Cannot add or update a child row: a foreign key constraint fails (`school`.`teachingassignement`, CONSTRAINT `teachingassignement_ibfk_1` FOREIGN KEY (`cinid`) REFERENCES `courseinstance` (`cinid`) ON UPDATE CASCADE)
εχω κανει καπιο λαθος στα ερωτηματα συνταξης sql?
οι πινακες μου ειναι οι εξης
CREATE TABLE IF NOT EXISTS `course` (
`courseid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`coursetitle` varchar(80) NOT NULL,
`credit_units` tinyint(3) DEFAULT '3',
`coursecode` varchar(11) NOT NULL,
PRIMARY KEY (`courseid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=47 ;

CREATE TABLE IF NOT EXISTS `courseinstance` (
`cinid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`courseid` int(11) unsigned NOT NULL,
`semester` tinyint(3) NOT NULL,
PRIMARY KEY (`cinid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;

CREATE TABLE IF NOT EXISTS `staff` (
`staffid` int(11) unsigned NOT NULL AUTO_INCREMENT,
`stafffirst` varchar(25) NOT NULL,
`stafflast` varchar(25) NOT NULL,
`stafftelephone` varchar(10) DEFAULT NULL,
`staffemail` varchar(100) DEFAULT NULL,
`usid` int(11) unsigned NOT NULL,
PRIMARY KEY (`staffid`),
KEY `FK_staff_users` (`usid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ;

CREATE TABLE IF NOT EXISTS `teachingassignement` (
`cinid` int(11) unsigned NOT NULL,
`staffid` int(11) unsigned NOT NULL,
KEY `staffid` (`staffid`),
KEY `cinid` (`cinid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

δλδ εγω μ αυτο το τροπο θελω να γεμιζω τον πινακα teachingassignement

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

δεν γινεται καταχωρηση δεδομενων απο φορμα σε πινακα βδ

Δημοσίευση από fafos » 11 Μάιος 2011 15:48

to teleutaio query (opou zhtas na ektyposei thn eggrafh) einai entelos lathos.. epishs ston pinaka teachingassignement den vlepo kapoio monadiko id... an ta alla pedia einai monadika gia kathe eggrafh tha prepei na kaleis thn eggrafh symfona me auta pou epilegeis apo to drop down menu.. an omos yaparxoun idies times stis eggrafes tou teachingassignement tha prepei na doseis ena monadiko id to opoio tha diavazeis me to $lastid kai tha to zhtas gia na ektyposei thn eggrafh pou molis egine..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

stavroula_apo
Δημοσιεύσεις: 121
Εγγραφή: 18 Σεπ 2010 03:12

δεν γινεται καταχωρηση δεδομενων απο φορμα σε πινακα βδ

Δημοσίευση από stavroula_apo » 11 Μάιος 2011 16:45

fafos έγραψε:to teleutaio query (opou zhtas na ektyposei thn eggrafh) einai entelos lathos.. epishs ston pinaka teachingassignement den vlepo kapoio monadiko id... an ta alla pedia einai monadika gia kathe eggrafh tha prepei na kaleis thn eggrafh symfona me auta pou epilegeis apo to drop down menu.. an omos yaparxoun idies times stis eggrafes tou teachingassignement tha prepei na doseis ena monadiko id to opoio tha diavazeis me to $lastid kai tha to zhtas gia na ektyposei thn eggrafh pou molis egine..
γτ ειναι τελειως λαθος? δεν το κτλβν... δλδ πως θα ηταν το σωστο?

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6235
Εγγραφή: 30 Νοέμ 2004 03:09

δεν γινεται καταχωρηση δεδομενων απο φορμα σε πινακα βδ

Δημοσίευση από fafos » 11 Μάιος 2011 16:56

apo pou na arxiso? trexeis JOIN kai den prosdiorizeis apo pou einai to kathe pedio.. allo titlo exei to query kai allo kaneis fetch... prin to fetch prepei na kaleseis thn vash ( mysql_db_query() ) klp klp

h gnomh mou einai na dineis kai kapoio monadiko id ston pinaka teachingassignement gia na ginoun pio eukola ta pragmata:

Κώδικας: Επιλογή όλων

$query="INSERT INTO teachingassignement&#40;tid,cinid,staffid&#41; values&#40;'','$course', '$teacher'&#41;";

Κώδικας: Επιλογή όλων

$resultb="select teachingassignement.tid as id, course.coursetitle as title, staff.stafffirst as firstname, staff.stafflast as lastname from staff,course,teachingassignement where teachingassignement.tid='$lastid' AND course.courseid=teachingassignement.cinid AND staff.staffid=teachingassignement.staffid";

	$rowb = mysql_db_query&#40;$dbname, $resultb, $con&#41;;
	$rowb = mysql_fetch_array&#40;$rowb&#41;;
(opou $dbname to onoma ths vashs sou)

Κώδικας: Επιλογή όλων

<table border="1">
<tr>
<th>Μάθημα&#58; </th>
<td><?php echo $rowb&#91;'title'&#93;;?></td>
</tr>
<tr>
<th>Καθηγητής&#58; </th>
<td><?php echo $rowb&#91;'firstname'&#93;." ".$rowb&#91;'lastname'&#93;; ?></td>
</tr>

</table>
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες