almark Δημοσ. 12 Απριλίου 2010 Δημοσ. 12 Απριλίου 2010 Καλημέρα Ήθελα να κάνω μια ερώτηση που ίσως φανεί χαζή. Στον κώδικα της 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!!!
hartzoua Δημοσ. 12 Απριλίου 2010 Δημοσ. 12 Απριλίου 2010 Τη δεύτερη insert εντολή ($query2) απλά τη δημιουργείς, δεν την εκτελείς. Πρέπει μετά να τρέξει η εντολή mysql_query($query2). Ακόμα καλό θα είναι μετά από κάθε sql εντολή να ελέγχεις για το αποτέλεσμα της στη βάση δεδομένων. (πχ > $query="...."; $result=mysql_query($query); if($result && mysql_affected_rows()>0)) //για insert, mysql_num_rows($result) για select { ...... } else { ....... }
dewn735 Δημοσ. 12 Απριλίου 2010 Δημοσ. 12 Απριλίου 2010 Επίσης... ΣΗΜΑΝΤΙΚΟ!!! Αυτό: >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");
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.