Μήπως μπορείτε να με βοηθήσετε;

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 09 Ιούλ 2010 21:38

Γεια σας

Είναι πρώτη φορά που γράφω εδώ.
:)

Βασικά ασχολούμαι με μία πτυχιακή εργασία που το θέμα της είναι τα ωρολόγια προγράμματα. Αυτό που δημιούργησα ήταν μία φόρμα στην οποία να μπορεί ο κάθε καθηγητής να στέλνει ποιες μέρες είναι διαθέσιμος για μάθημα. Και στην συνέχεια με ένα άλλο script php αντλώ τα δεδομένα από τη βάση και τα χρησιμοποιώ στο fet(εφαρμογή για ωρολόγια προγράμματα).

Δημιούργησα 3 αρχεία(forma.php, forma2.php, forma3.php). Τρέχουν και τα 3 αλλά δεν κάνει UPDATE στη βάση.

Μήπως μπορείτε να με βοηθήσετε. Πρώτη φορά ασχολούμαι με αυτά.

Σας στέλνω τα αρχεία.
Συνημμένα
efar.rar
(1.76 KiB) Μεταφορτώθηκε 150 φορές

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από burnmind » 10 Ιούλ 2010 03:56

Τι error σου εμφανίζει; Συνήθως εκεί βρίσκεις και το πρόβλημα. Δοκίμασες να εμφανίσεις τα δεδομένα που στέλνεις για να δεις αν είναι σωστά;

Με μια πολύ γρήγορη ματιά στο update query σου, γράφεις:

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

WHERE id='$_POST[id]'
Κατ'αρχήν, αν το id είναι integer, βγάλε τα quotes. Επίσης, μάλλον εδώ είναι το λάθος, δεν περνάς κάπου το id μέσα στο form του forma2.php ώστε να το "τραβήξεις" στο forma3.php..

ΥΓ: Πιστεύω πως είναι προτιμότερο να post-άρεις το συγκεκριμένο κομάτι του κώδικα που έχεις πρόβλημα, ή όλον τον κώδικα (αν δεν είναι τεράστιος) παρά να βάζεις attachment (παίζει να είναι και το πρώτο attachment τέτοιου είδους που κατεβάζω).

Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 10 Ιούλ 2010 12:02

Το παράξενο είναι πως δε μου εμφανίζει κανένα error. Απλώς δεν κάνει update στη βάση.

Μάλλον έχεις δίκιο. Δεν έχω βάλει πουθενά το id για να το τραβήξει. Πώς θα το βάλω όμως στo forma2.php ;


Αν βγάλω τα quotes εμφανίζει λάθος.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Banavas » 10 Ιούλ 2010 12:19

βαλ' το σε ένα hidden input μέσα στη φόρμα.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 10 Ιούλ 2010 14:50

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

Μου εμφανίζει το εξής μήνυμα για το forma3.php: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Το έβαλα ως hidden στο forma2.php. Αλλά κάπου κάνω λάθος στο forma3.php.

forma2.php....print("<form action=\"forma3.php\" method=\"post\" />");

print("Επιλέξτε το επίθετο σας:"."<br/>");
print("<select name=\"lastname\">");

while ($myrow = mysql_fetch_row($result))
{
print("<option value=\"row\"");
print(">$myrow[1]");
}
print ("</select>"."<br>"."<br>");
print("<input type=\"hidden\" name=\"Hidden\" value=$myrow[id]>");
print("<br>"."<br>");
...

forma3.php

<?php

if($_POST[monday1]=="on")
$_POST[monday1]=1;
else $_POST[monday1]=0;

if($_POST[monday2]=="on")
$_POST[monday2]=1;
else $_POST[monday2]=0;

if($_POST[tuesday1]=="on")
$_POST[tuesday1]=1;
else $_POST[tuesday1]=0;

if($_POST[tuesday2]=="on")
$_POST[tuesday2]=1;
else $_POST[tuesday2]=0;

if($_POST[wednesday1]=="on")
$_POST[wednesday1]=1;
else $_POST[wednesday1]=0;

if($_POST[wednesday2]=="on")
$_POST[wednesday2]=1;
else $_POST[wednesday2]=0;

if($_POST[thursday1]=="on")
$_POST[thursday1]=1;
else $_POST[thursday1]=0;

if($_POST[thursday2]=="on")
$_POST[thursday2]=1;
else $_POST[thursday2]=0;

if($_POST[friday1]=="on")
$_POST[friday1]=1;
else $_POST[friday1]=0;

if($_POST[friday2]=="on")
$_POST[friday2]=1;
else $_POST[friday2]=0;

$db=mysql_connect("127.0.0.1","root", "efilia26");
mysql_select_db("timetable", $db);
$sql="UPDATE nametable SET monday1=\"$_POST[monday1]\", monday2=\"$_POST

[monday2]\", tuesday1=\"$_POST[tuesday1]\", tuesday2=\"$_POST[tuesday2]\",

wednesday1=\"$_POST[wednesday1]\", wednesday2=\"$_POST[wednesday2]\",

thursday1=\"$_POST[thursday1]\", thursday2=\"$_POST[thursday2]\",

friday1=\"$_POST[friday1]\", friday2=\"$_POST[friday2]\" WHERE id=$_POST[id] ";
$result=mysql_query($sql) or die(mysql_error());
//echo $result;
echo "Ευχαριστούμε για την καταχώρηση σας";

?>


:o :(

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Khronos » 10 Ιούλ 2010 20:04

Swan23 έγραψε:print("<input type="hidden" name="Hidden" value=$myrow[id]>");
Δεν τσέκαρα όλο τον κώδικα αλλά με μια γρήγορη ματιά, πάλι δεν θα παίρνεις το id γιατί έχεις δώσει λάθος όνομα στο hidden πεδίο...

Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 10 Ιούλ 2010 20:55

Αν βάλω :

print("<input type=\"hidden\" name=\"Hidden\" value=$myrow[0]>");

Είναι σωστό;


Στο forma3.php έβαλα

...WHERE id=$_POST[$myrow[0]] ";... μου εμφανίζει το εξής μήνυμα:

Parse error: parse error, expecting `']'' in C:\xampp\htdocs\forma3.php on line 46

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Banavas » 10 Ιούλ 2010 23:05

print("<input type=\"hidden\" name=\"id\" value=$myrow[id]>");
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 11 Ιούλ 2010 00:06

Έβαλα :

print("<input type=\"hidden\" name=\"id\" value=$myrow[id]>");

στο αρχείο forma2.php.

Το θέμα είναι τι θα βάλω στο αρχείο forma3.php;

$sql="UPDATE .... WHERE id=\"$_POST[id]\" ";

ή κάτι άλλο;

Επειδή είτε μου εμφανίζει parse error είτε όχι. Update δεν γίνεται....

:-? :(

Resandev
Δημοσιεύσεις: 28
Εγγραφή: 29 Μάιος 2005 11:56

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Resandev » 11 Ιούλ 2010 02:39

Στην φόρμα 3 τύπωσε το περιεχόμενο του $_POST['id'] να δεις αν έχεις μεταφέρει αυτό που θες στην άλλη σελίδα.

Μετά τύπωση το query με echo $sql; και κάντο copy και τρέξτο σε phpmyadmin να δεις αν τρέχει σαν σύνταξη.

ankafetz
Δημοσιεύσεις: 4
Εγγραφή: 07 Ιούλ 2010 21:56

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από ankafetz » 12 Ιούλ 2010 14:02

Swan23 έγραψε:Έβαλα :

print("<input type="hidden" name="id" value=$myrow[id]>");

στο αρχείο forma2.php.

Το θέμα είναι τι θα βάλω στο αρχείο forma3.php;

$sql="UPDATE .... WHERE id="$_POST[id]" ";

ή κάτι άλλο;

Επειδή είτε μου εμφανίζει parse error είτε όχι. Update δεν γίνεται....

:-? :(
απ' ότι κατάλαβα στον κώδικα που έχεις στο attachment θέλεις να κάνεις αναζήτηση στο πίνακα με βάση το lastname που δίνει κάποιος σωστά?
το θέμα είναι ότι η σελίδα δεν ξαναφορτώνει και το query αυτό θα βρίσκει πάντα την πρώτη εγγραφή του πίνακα. update μπορεί να γίνετε αλλά σε λάθος εγγραφή.

Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 12 Ιούλ 2010 16:25

Το θέμα είναι πως ούτε στην πρώτη εγγραφή ούτε και σε καμία άλλη εγγραφή δεν γίνεται update.

Δεν πειράζει όμως. Πού θα πάει; Δεν θα το βρω...ΘΑ ΤΟ ΒΡΩ!


Ευχαριστώ για τη βοήθεια. Να είστε καλά.

:)

ankafetz
Δημοσιεύσεις: 4
Εγγραφή: 07 Ιούλ 2010 21:56

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από ankafetz » 12 Ιούλ 2010 16:49

Swan23 έγραψε:Το θέμα είναι πως ούτε στην πρώτη εγγραφή ούτε και σε καμία άλλη εγγραφή δεν γίνεται update.

Δεν πειράζει όμως. Πού θα πάει; Δεν θα το βρω...ΘΑ ΤΟ ΒΡΩ!


Ευχαριστώ για τη βοήθεια. Να είστε καλά.

:)
το id μπρείς να το πάρεις στην form3??

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

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από fafos » 12 Ιούλ 2010 17:24

O kodikas pou grafeis einai paradeigma pros apofygh... typoneis ola ta stoixeia html me php (form2)... html typonoume mono otan einai aparaithto kai anagkaio..

dineis synthikes gia tis hmeres:

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

if&#40;$_POST&#91;tuesday2&#93;=="on"&#41;
$_POST&#91;tuesday2&#93;=1;
else $_POST&#91;tuesday2&#93;=0;
an eixes type INT sta pedia ths vashs sou den xreiazotan auto.. aplos sto pedio ths formas anti gia "on" vazeis to "1" kai opou den postaretai dinei apo mono tou to "0"

me thn forma den exo katalaveis ti stelneis:

print("<option value=\"row\"");

kai

print("<input type=\"hidden\" name=\"Hidden\" value=$myrow[id]>");

anti gia backslashes sto query tou update vaze mona quotes (p.x. monday1='$_POST[monday1]')

apofeugoume na vazoume pedia sthn vash me arithmo ston titlo tous.. p.x. to monday1 mporouse na einai monday_a kai to monday2 na einai monday_b


vale ena echo $sql; prin to $result=mysql_query($sql) or die(mysql_error()); kai pes mas ti grafei....

Άβαταρ μέλους
Swan23
Δημοσιεύσεις: 58
Εγγραφή: 09 Ιούλ 2010 21:18
Τοποθεσία: Δράμα

Μήπως μπορείτε να με βοηθήσετε;

Δημοσίευση από Swan23 » 12 Ιούλ 2010 19:25

Βάζω συνθήκες επειδή είναι checkbox και δεν γίνεται να περαστούν στη βάση. Στη βάση τα πεδία αυτά τα έχω tynint.

Κρατώ τις συμβουλές σου. Ήδη έχω αλλάξει τις ημέρες. Από monday1 σε monday_a κ.ο.κ.

Αυτό που θέλω να κάνω στη φόρμα2 είναι να τραβήξω από τη βάση τα ονόματα των καθηγητών(select) με στόχο ο χρήστης να μπορεί να διαλέξει το όνομα του. Μετά να διαλέξει ποιες μέρες (πρωινά ή απογευματινά) είναι διαθέσιμος να διδάξει.

Να στείλει τα δεδομένα στη βάση. Αλλά με update όχι με insert αφού υπάρχουν ήδη τα ονόματα.

Θα το πάρω ξανά από την αρχή. Μπορεί κάποιος να με καθοδηγεί αν προχωράω σωστά; 8) :roll: :oops:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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