Προς το περιεχόμενο

insert


almark

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα

 

Ήθελα να κάνω μια ερώτηση που ίσως φανεί χαζή. Στον κώδικα της php μπορούμε να βάλουμε στο ίδιο αρχείο php δύο insert? Έχω φτιάξει ένα κώδικα στον οποίο κάποιος μπορεί να κάνει test και θέλω αυτά που πληκτρολογεί να μπαίνουν σε δύο πίνακες. Στον έναν μπαίνουν οι απαντήσεις και στον άλλο να του βγάζει το αποτέλεσμα. Στον πρώτο πίνακα που μπαίνουν οι απαντήσεις, η εισαγωγή γίνεται κανονικά. Στον δεύτερο που θέλω να βγαίνει η βαθμολογία, δεν γίνεται καμία εισαγωγή. Ο κώδικας μου είναι ο εξής:

 

>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body bgcolor="#CCCCCC">
<img src="e-class.jpg" width="500" height="70" longdesc="e-class.jpg">
<img src="pliroforiki.jpg" width="300" height="90" longdesc="pliroforiki.jpg">

<?php 

ini_set ('display_errors', 1);
error_reporting (E_ALL);

if (isset ($_POST['oloklirwsi_diagwnismatos'])){

$link=mysql_connect('localhost', 'almark', '123456');
@mysql_select_db("e-class");

mysql_query('set character set greek',$link);
mysql_query("SET NAMES 'utf8'",$link);

$query = "INSERT INTO apantiseis(apantisi1, apantisi2, apantisi3, apantisi4, apantisi5, apantisi6, apantisi7, apantisi8, apantisi9, apantisi10) VALUES ('{$_POST['apantisi1']}', '{$_POST['apantisi2']}', '{$_POST['apantisi3']}', '{$_POST['apantisi4']}', '{$_POST['apantisi5']}', '{$_POST['apantisi6']}', '{$_POST['apantisi7']}', '{$_POST['apantisi8']}', '{$_POST['apantisi9']}', '{$_POST['apantisi10']}')"; 

if (@mysql_query ($query)){
	print '<p>Το διαγώνισμα πραγματοποιήθηκε με επιτυχία.</p>';
}else{
	print '<p>Υπήρξε κάποιο σφάλμα κάτα την υποβολή του διαγωνίσματος. Προσπαθήστε ξανά</p>';
}

$count=0;

if ($_POST['apantisi1']=3){ $count=$count+1;} 
if ($_POST['apantisi2']=1){ $count=$count+1;} 
if ($_POST['apantisi3']=5){ $count=$count+1;} 
if ($_POST['apantisi4']=1){ $count=$count+1;} 
if ($_POST['apantisi5']=4){ $count=$count+1;} 
if ($_POST['apantisi6']=2){ $count=$count+1;} 
if ($_POST['apantisi7']=2){ $count=$count+1;} 
if ($_POST['apantisi8']=3){ $count=$count+1;} 
if ($_POST['apantisi9']=4){ $count=$count+1;} 
if ($_POST['apantisi10']=5){ $count=$count+1;} 

$query2 = "INSERT INTO bathmologies(am, kwdikosm, kwdikosd, bathmologia) VALUES ('032198', '101', '1', $count)";

mysql_close();
}
?>
<br><br>

<a href='FoititesMain.php'>Επιστοφή στην Προηγούμενη Σελίδα</a>

</body>
</html>

 

Αν μπορούσε να βοηθήσει κάποιος θα του ήμουν υποχρεωμένος. Είναι το τελευταίο πρα΄γμα που μου μένει για να τελειώσω την πτυχιακή μου. HELP!!!

Δημοσ.

Τη δεύτερη insert εντολή ($query2) απλά τη δημιουργείς, δεν την εκτελείς. Πρέπει μετά να τρέξει η εντολή mysql_query($query2). Ακόμα καλό θα είναι μετά από κάθε sql εντολή να ελέγχεις για το αποτέλεσμα της στη βάση δεδομένων. (πχ

>
$query="....";
$result=mysql_query($query);
if($result && mysql_affected_rows()>0)) //για insert, mysql_num_rows($result) για select
{
  ......
}
else
{
  .......
}

Δημοσ.

Επίσης... ΣΗΜΑΝΤΙΚΟ!!!

Αυτό:

>if ($_POST['apantisi4']=1){ $count=$count+1;} 

θα σου γυρνάει ΠΑΝΤΑ αποτέλεσμα 1. Στην php, το ένα = ισοδυναμεί με "θέσε τιμή στη μεταβλητή" Το σωστό είναι με δύο =

>if ($_POST['apantisi4']==1){ $count=$count+1;} 

και το ακόμα πιο σωστό:

>if ($_POST['apantisi4']==1) $count++; 

 

Επίσης, δεν υπάρχει λόγος για το error_reporting (E_ALL);, από τη στιγμή που αργότερα χρησιμοποιείς το @mysql_select_db("e-class");

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...