Ενα προβλημα με quotes.. και ενα update.

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

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

Απάντηση
lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

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

Σωτηρη ακολουθησα αυτο που ειπες και με μονα και με διπλα quotes

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

for &#40;$i=0; $i <$num_results; $i++&#41; &#123;
$row = mysql_fetch_array&#40;$result&#41;;
echo "<tr>
<td>".stripslashes&#40;$row&#91;"isbn"&#93;&#41;."</td>     <--36 line 
<td>".stripslashes&#40;$row&#91;"author"&#93;&#41;."</td>   <--37 line
<td>".stripslashes&#40;$row&#91;"title"&#93;&#41;."</td>    <--38 line
<td>".stripslashes&#40;$row&#91;"price"&#93;&#41;."</td>   <-- 39 line
</tr>";
Βγαζει error
Αριθμός τίτλων που πληρούν τα κριτήρια αναζήτησης: 1

Notice: Undefined index: isbn in C:\wamp\www\on line store book\results.php on line 36

Notice: Undefined index: author in C:\wamp\www\on line store book\results.php on line

37

Notice: Undefined index: title in C:\wamp\www\on line store book\results.php on line 38

Notice: Undefined index: price in C:\wamp\www\on line store book\results.php on line

39
isbn author title price


Μου φερνει αποτελεσμα αλλα δεν μου το δειχνει


ακριβως ιδιο error και αποτελεσμα και με τα ΜΟΝΑ quotes

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

for &#40;$i=0; $i <$num_results; $i++&#41; &#123;
$row = mysql_fetch_array&#40;$result&#41;;
echo "<tr>
<td>".stripslashes&#40;$row&#91;'isbn'&#93;&#41;."</td>
<td>".stripslashes&#40;$row&#91;'author'&#93;&#41;."</td>
<td>".stripslashes&#40;$row&#91;'title'&#93;&#41;."</td>
<td>".stripslashes&#40;$row&#91;'price'&#93;&#41;."</td>
</tr>";

Khronos αν βαλω το query σου
δεν θα εμφανισει κανενα λαθος αλλα δεν θα δειξει αποτελεσμα

Αριθμός τίτλων που πληρούν τα κριτήρια αναζήτησης: 1
isbn author title price
<-- εδω θα επρεπε να δειξει τιτλους βιβλιων


Mαγκες ευχαριστω εστω για την προσπαθεια που κανετε ...ολους σας
ειμαι πολυ πεισματαρης και θα το βρω εστω κι αν το θερμομετρο χτυπησει 40C

Ψαχνω παραλληλα και το αναθεματισμενο το update ...



:lol: Νο SUMMER ΛΕΜΕ ... :kaloe: [/list]

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από mrpc » 24 Ιούλ 2010 18:01

Το Undefined index δεν έχει σχέση με τα quotes.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από soteres2002 » 24 Ιούλ 2010 18:31

mrpc έγραψε:Το Undefined index δεν έχει σχέση με τα quotes.
Ακριβώς... Στα tables που έχεις μέσα στον κώδικα κάνεις κάπου αναφορά σε κάποιο key που μάλλον δεν υπάρχει.... Μπορείς να αντικαταστήσεις κάθε αναφορά $table['key'] με μία συνάρτηση getValue($tableRef, $keyVal), στην οποία θα ελέγχεις άν όντως υπάρχει το κλειδί ώς αναφορά μέσα στον πίνακα $tableRef.

Δηλαδή,

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

function getValue&#40;$tableRef, $keyVal&#41; &#123;
   if&#40;isset&#40;$tableRef&#91;$keyVal&#93;&#41;&#41;
      return $tableRef&#91;$keyVal&#93;;
   else
      return "UNDEFINED";
&#125;
Αυτό μπορείς να το κάνεις αν όντως είναι προβληματικό το ότι μερικά keys δεν υπάρχουν κάπου στον κώδικα που τα χρειάζεσαι...

Βασικά έχω την εντύπωση ότι για να λυσεις το πρόβλημά σου πρέπει να αντικαταστήσεις την κλήση mysql_fetch_array() με την κλήση της MySQL library mysql_fetch_assoc(). Η πρώτη που έχεις σου επιστρέφει ένα array, οπότε δεν μπορείς να κάνεις retrieve τα results με keys αλλα με array indexes, δηλαδή $result[0], $result[1] κτλ. Με την _assoc() παίρνεις συσχετισμένο πίνακα (associative array) που αποθηκεύει key - value ζεύγη, αυτό που θες δηλαδή στον κώδικα που πόσταρες...

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

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από Khronos » 24 Ιούλ 2010 18:48

soteres2002 έγραψε:Βασικά έχω την εντύπωση ότι για να λυσεις το πρόβλημά σου πρέπει να αντικαταστήσεις την κλήση mysql_fetch_array() με την κλήση της MySQL library mysql_fetch_assoc(). Η πρώτη που έχεις σου επιστρέφει ένα array, οπότε δεν μπορείς να κάνεις retrieve τα results με keys αλλα με array indexes, δηλαδή $result[0], $result[1] κτλ. Με την _assoc() παίρνεις συσχετισμένο πίνακα (associative array) που αποθηκεύει key - value ζεύγη, αυτό που θες δηλαδή στον κώδικα που πόσταρες...
By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).

lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από lskostas » 24 Ιούλ 2010 19:11

θα το δοκιμασω ολα ... αναμεινατε

πρεπει να φτιαξω την function , θα δω πως θα το κανω ...


Επειδη ομως και το θεμα του update (το case 2) ειναι πολυ σημαντικο ...


το update.php

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


<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE. 

// Connect database. 
include&#40;"connectdb.php"&#41;;

// ***** This part will process when you Click on "Submit" button ***** 
// Check, if you clicked "Submit" button 
//if&#40;$_POST&#91;'submit'&#93;&#41;&#123;
//if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41;
if &#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41; 
 &#123;

//if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41; &#123;
// Get parameters from form. 
$id=$_POST&#91;'id'&#93;;
$name=$_POST&#91;'name'&#93;;
$email=$_POST&#91;'email'&#93;;
$tel=$_POST&#91;'tel'&#93;;



// Do update statement. 


// Re-direct this page to select.php.
header&#40;"location&#58;select.php"&#41;;
exit;
&#125;

// ************* End update part *************

// *** Select data to show on text fields in form. ***

// Get id parameter &#40;GET method&#41; from select.php 
$id=$_GET&#91;'id'&#93;;

// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query&#40;"select * from phonebook where id='$id'"&#41;;

// Split records in $result by table rows and put them in $row. 
$row=mysql_fetch_assoc&#40;$result&#41;;

// Close database connection. 
//mysql_close&#40;&#41;;
?>

<!-- END OF PHP CODES AND START HTML TAGS -->

<html>
<body>
<!-- set this form to POST method and target this form to itself &#40;$PHP_SELF;&#41;--> 
<!-- <form id="form1" name="form1" form action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;;?>" method="post"> --> 
<form id="form1" name="form1" method="post" action="<?php echo $PHP_SELF; ?>"
<p>Name &#58; 
<!-- name of this text field is "name" -->
<input name="name" type="text" id="name" value="<?php echo $row&#91;'name'&#93;; ?>"/>


<br />
Email &#58; 
<!-- name of this text field is "email" -->
<input name="email" type="text" id="email" value="<?php echo $row&#91;'email'&#93;; ?>"/>
<br />
Tel &#58; 
<!-- name of this text field is "tel" -->
<input name="tel" type="text" id="tel" value="<?php echo $row&#91;'tel'&#93;; ?>"/>
</p>
<p>

<input type="submit" name="submit" value="submit" />
</p>
</form> 
</body>
</html>

το select.php απο οπου επιλεγω το id του row που θα παρει το update.php

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

<?php
// Connect database
include&#40;"connectdb.php"&#41;;

// Get all records in all columns from table and put it in $result.
$result=mysql_query&#40;"select * from phonebook"&#41;;

/*Split records in $result by table rows and put them in $row.
Make it looping by while statement. */
while&#40;$row=mysql_fetch_assoc&#40;$result&#41;&#41;&#123;

// Output
 echo $row&#91;'id'&#93; ;
 echo $row&#91;'name'&#93; ;
 echo $row&#91;'email'&#93; ;
 echo $row&#91;'tel'&#93; ;

// Add a link with a parameter&#40;id&#41; and it's value.
echo '<a href="update.php?id='.$row&#91;'id'&#93;.'">Update</a>';

&#125;

//mysql_close&#40;&#41;;
?> 
Εχω χρησιμοποιησει και τα 2 παρακατω update statement

KANENA error απλα με ανακατευθυνει στην ιδια σελιδα χωρις να εχει γινει update ...

1) mysql_query("update phonebook set name='$name', email='$email', tel='$tel' where id='$id'");

2) mysql_query("update phonebook set name='$name', email='$email', tel='$tel' where id='$id'") or die(mysql_error());


:oops:

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από mrpc » 24 Ιούλ 2010 20:20

Δεν σου βγάζει το error επειδή ανακατευθύνεις τον browser.
Δηλαδή, με το "mysql_query("update phonebook set name='$name', email='$email', tel='$tel' where id='$id'") or die(mysql_error()); " λες να σου εμφανίσει το error, αλλά μετά κάνεις το header("location:select.php"); και δεν βλέπεις τι έβγαλε.
Βάλε για λίγο σε comment το header... και θα δεις το error λογικά.

lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

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

mrpc έγραψε:Δεν σου βγάζει το error επειδή ανακατευθύνεις τον browser.
Δηλαδή, με το "mysql_query("update phonebook set name='$name', email='$email', tel='$tel' where id='$id'") or die(mysql_error()); " λες να σου εμφανίσει το error, αλλά μετά κάνεις το header("location:select.php"); και δεν βλέπεις τι έβγαλε.
Βάλε για λίγο σε comment το header... και θα δεις το error λογικά.

Σωστος


Μου βγαζει error
Notice: Undefined index: id in C:\wamp\www\3\update.php on line 17

η line 17 ειναι η--> $id=$_POST['id']; // Παιρνει την τιμη απ την φορμα

Aλλο ενα undenfined error ...

lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από lskostas » 24 Ιούλ 2010 21:37

Βρηκα κατι δεν ξερω αν ειμαι σε καλο δρομο


Forbidden

You don't have permission to access /3/< on this server.


3 ειναι το directory μου


το update.php ειναι ετσι...Φιλε οπως βλεπεις δεν κανει redirect πλεον

+ οτι αλλαξα την post method

<form id="form1" name="form1" method="POST" action="<? echo $PHP_SELF; ?>" >

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

<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE. 

// Connect database. 
include&#40;"connectdb.php"&#41;;

// ***** This part will process when you Click on "Submit" button ***** 
// Check, if you clicked "Submit" button 
//if&#40;$_POST&#91;'submit'&#93;&#41;&#123;
//if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41;
if &#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41; 
 &#123;

//if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41; &#123;
// Get parameters from form. 
$id=$_POST&#91;'id'&#93;;
$name=$_POST&#91;'name'&#93;;
$email=$_POST&#91;'email'&#93;;
$tel=$_POST&#91;'tel'&#93;;



// Do update statement. 
//mysql_query&#40;"update phonebook set name='$name', email='$email', tel='$tel' where id='$id'"&#41;;
mysql_query&#40;"update phonebook set name='$name', email='$email', tel='$tel' where id='$id'"&#41; or die&#40;mysql_error&#40;&#41;&#41;;

// Re-direct this page to select.php.
//header&#40;"location&#58;select.php"&#41;;
exit;
&#125;

// ************* End update part *************

// *** Select data to show on text fields in form. ***

// Get id parameter &#40;GET method&#41; from select.php 
$id=$_GET&#91;"id"&#93;;

// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query&#40;"select * from phonebook where id='$id'"&#41;;

// Split records in $result by table rows and put them in $row. 
$row=mysql_fetch_assoc&#40;$result&#41;;

// Close database connection. 
//mysql_close&#40;&#41;;
?>

<!-- END OF PHP CODES AND START HTML TAGS -->

<html>
<body>

<form id="form1" name="form1" method="POST" action="<? echo $PHP_SELF; ?>" >
<p>Name &#58; 
<!-- name of this text field is "name" -->
<input name="name" type="text" id="name" value="<?php echo $row&#91;'name'&#93;; ?>"/>


<br />
Email &#58; 
<!-- name of this text field is "email" -->
<input name="email" type="text" id="email" value="<?php echo $row&#91;'email'&#93;; ?>"/>
<br />
Tel &#58; 
<!-- name of this text field is "tel" -->
<input name="tel" type="text" id="tel" value="<?php echo $row&#91;'tel'&#93;; ?>"/>
</p>
<p>
<!--<input type="submit" name="submit" value="submit" />-->
<input type="submit" name="submit" value="Add" />
</p>
</form> 
</body>
</html>

και το select.php

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

<?php
// Connect database
include&#40;"connectdb.php"&#41;;

// Get all records in all columns from table and put it in $result.
$result=mysql_query&#40;"select * from phonebook"&#41;;

/*Split records in $result by table rows and put them in $row.
Make it looping by while statement. */
while&#40;$row=mysql_fetch_assoc&#40;$result&#41;&#41;&#123;

// Output
 echo $row&#91;'id'&#93; ;
 echo $row&#91;'name'&#93; ;
 echo $row&#91;'email'&#93; ;
 echo $row&#91;'tel'&#93; ;

// Add a link with a parameter&#40;id&#41; and it's value.
echo '<a href="update.php?id='.$row&#91;'id'&#93;.'">Update</a>';

&#125;

//mysql_close&#40;&#41;;
?> 

ΣΗΜΕΙΩΣΗ.και στα δυο τα αρχεια εχω επενεργοποιησει το mysql_close(); βαζοντας //

Αλλιως μου κολλαει η σελιδα.Δεν ξερω κατα ποσο επηρεαζει ...

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από mrpc » 25 Ιούλ 2010 03:00

Στη φόρμα σου δε βλέπω κάπου να ορίζεις το id. Άρα για αυτό σου χτυπάει ότι δεν έχει οριστεί το $_POST['id'].

lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

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

mrpc έγραψε:Στη φόρμα σου δε βλέπω κάπου να ορίζεις το id. Άρα για αυτό σου χτυπάει ότι δεν έχει οριστεί το $_POST['id'].
Οχι εχει ορισθει στην update.php

// Get parameters from form.
$id=$_POST['id'];
$name=$_POST['name'];
$email=$_POST['email'];
$tel=$_POST['tel'];

Υπαρχει καποιος αλλος τροπος να το ορισω ?

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ενα προβλημα με quotes.. και ενα update.

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

Εκεί λες ότι το $id παίρνει τιμή από το $_POST['id'], το οποίο πρέπει να έχει οριστεί από τη φόρμα.
Στη φόρμα δεν υπάρχει αντίστοιχο input field, άρα δεν θα δουλέψει.

lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

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

mrpc έγραψε:Εκεί λες ότι το $id παίρνει τιμή από το $_POST['id'], το οποίο πρέπει να έχει οριστεί από τη φόρμα.
Στη φόρμα δεν υπάρχει αντίστοιχο input field, άρα δεν θα δουλέψει.


Μεσα στο update ειναι και η φορμα , μηπως ομως δεν ειναι σωστη η POST METHOD ???

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


<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE. 

// Connect database. 
include&#40;"connectdb.php"&#41;;

// ***** This part will process when you Click on "Submit" button ***** 
// Check, if you clicked "Submit" button 
//if&#40;$_POST&#91;'submit'&#93;&#41;&#123;
//if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41;
if &#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41; 
 &#123;

//if&#40;isset&#40;$_POST&#91;'submit'&#93;&#41;&#41; &#123;
// Get parameters from form. 
$id=$_POST&#91;'id'&#93;;
$name=$_POST&#91;'name'&#93;;
$email=$_POST&#91;'mail'&#93;;
$tel=$_POST&#91;'tel'&#93;;



// Do update statement. 
//mysql_query&#40;"update phonebook set name='$name', email='$email', tel='$tel' where id='$id'"&#41;;
mysql_query&#40;"update phonebook set name='$name', email='$email', tel='$tel' where id='$id'"&#41; or die&#40;mysql_error&#40;&#41;&#41;;

// Re-direct this page to select.php.
//header&#40;"location&#58;select.php"&#41;;
exit;
&#125;

// ************* End update part *************

// *** Select data to show on text fields in form. ***

// Get id parameter &#40;GET method&#41; from select.php 
$id=$_GET&#91;"id"&#93;;

// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query&#40;"select * from phonebook where id='$id'"&#41;;

// Split records in $result by table rows and put them in $row. 
$row=mysql_fetch_assoc&#40;$result&#41;;

// Close database connection. 
//mysql_close&#40;&#41;;
?>

<!-- END OF PHP CODES AND START HTML TAGS -->

<html>
<body>

<form id="form1" name="form1" method="POST" action="<? echo $PHP_SELF; ?>" >
<p>Name &#58; 
<!-- name of this text field is "name" -->
<input name="name" type="text" id="name" value="<?php echo $row&#91;'name'&#93;; ?>"/>


<br />
Email &#58; 
<!-- name of this text field is "email" -->
<input name="email" type="text" id="email" value="<?php echo $row&#91;'email'&#93;; ?>"/>
<br />
Tel &#58; 
<!-- name of this text field is "tel" -->
<input name="tel" type="text" id="tel" value="<?php echo $row&#91;'tel'&#93;; ?>"/>
</p>
<p>
<!--<input type="submit" name="submit" value="submit" />-->
<input type="submit" name="submit" value="Add" />
</p>
</form> 
</body>
</html>
Δεν εχω καταλαβει mrpc , αν θες γινε πιο σαφης
πρεπει να βαλω καποιο input field στην φορμα ??? Και αν ναι , πως ?

Σ ευχαριστω για την επιμονη σου παντως :pint:

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ενα προβλημα με quotes.. και ενα update.

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

Γνωρίζεις τι ακριβώς κάνει η $_POST ;
Γενικά έχω την αίσθηση ότι προσπαθείς να επεξεργαστείς ένα php script χωρίς να γνωρίζεις αρκετά βασικά πράγματα.

lskostas
Δημοσιεύσεις: 32
Εγγραφή: 22 Ιούλ 2010 13:12

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από lskostas » 26 Ιούλ 2010 02:24

Bασικα προσπαθω να καταλαβω ενα script που μου εχει δωθει ως εχει
και μαλιστα με πολλα λαθη

πχ
if($_POST['Submit']){ μου χτυπαει


ενω οταν το εκανα
if(isset($_POST['Submit'])) { τρεχει και χτυπαει παρακατω ...

προσπαθω να κανω debugging και να καταλαβω γιατι τρεχει το ενα κ οχι το αλλο.
Θεωρησα παντως σωστο να αλλαξω το post σε if(isset($_POST['Submit'])) {

Και ναι εχεις δικιο , καποια πραγματα τα βλεπω πρωτη φορα και ισως να μην τα καταλαβαινω.






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

<?php
// START PHP CODES. THIS PART MUST ON THE TOP OF THIS PAGE. 

// Connect database. 
include&#40;"connectdb.php"&#41;;

// ***** This part will process when you Click on "Submit" button ***** 
// Check, if you clicked "Submit" button 
//if&#40;$_POST&#91;'Submit'&#93;&#41;&#123;                   <-- ΑΥΤΟ ΤΟ ΑΚΥΡΩΣΑ
if&#40;isset&#40;$_POST&#91;'Submit'&#93;&#41;&#41; &#123;           <--ΤΟ ΑΝΤΙΚΑΤΕΣΤΗΣΑ ΜΕ ΑΥΤΟ
// Get parameters from form. 
$id=$_POST&#91;'id'&#93;;
$name=$_POST&#91;'name'&#93;;
$email=$_POST&#91;'email'&#93;;
$tel=$_POST&#91;'tel'&#93;;
ΣΤΕ 
// Do update statement. 
mysql_query&#40;"update phonebook set name='$name', email='$email', tel='$tel' where id='$id'"&#41;;

// Re-direct this page to select.php.
//header&#40;"location&#58;select.php"&#41;;    <-- ΔΕΝ ΚΑΝΩ REDIRECT ΩΣΤΕ ΝΑ ΠΑΡΩ ΔΩ ERROR 
exit;
&#125;
// ************* End update part *************

// *** Select data to show on text fields in form. ***

// Get id parameter &#40;GET method&#41; from select.php 
$id=$_GET&#91;'id'&#93;;

// Get records in all columns from table where column id equal in $id and put it in $result.
$result=mysql_query&#40;"select * from phonebook where id='$id'"&#41;;

// Split records in $result by table rows and put them in $row. 
$row=mysql_fetch_assoc&#40;$result&#41;;

// Close database connection. 
//mysql_close&#40;&#41;;                     <-- TO ΑΚΥΡΩΝΩ ΕΠΕΙΔΗ ΜΟΥ ΚΟΛΛΑΕΙ ΤΗΝ ΣΕΛΙΔΑ
?>

<!-- END OF PHP CODES AND START HTML TAGS -->

<html>
<body>
<!-- set this form to POST method and target this form to itself &#40;$PHP_SELF;&#41;--> 
<form id="form1" name="form1" method="post" action="<?php echo $PHP_SELF; ?>">
<p>Name &#58; 
<!-- name of this text field is "name" -->
<input name="name" type="text" id="name" value="<?php echo $row&#91;'name'&#93;; ?>"/>
<br />
Email &#58; 
<!-- name of this text field is "email" -->
<input name="email" type="text" id="email" value="<?php echo $row&#91;'email'&#93;; ?>"/>
<br />
Tel &#58; 
<!-- name of this text field is "tel" -->
<input name="tel" type="text" id="tel" value="<?php echo $row&#91;'tel'&#93;; ?>"/>
</p>
<p>
<input type="submit" name="Submit" value="Submit" />
</p>
</form> 
</body>
</html>

Με τον κωδικα σε αυτην την μορφη μου βγαζει

Notice: Undefined index: id in C:\wamp\www\11\update.php on line 12

δηλ εδω $id=$_POST['id'];

???
:-?

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

Ενα προβλημα με quotes.. και ενα update.

Δημοσίευση από mrpc » 26 Ιούλ 2010 02:43

Οι post μεταβλητές έρχονται από την υποβολή της φόρμας σου. Π.χ. το <input name="tel"> σου στέλνει την $_POST['tel']. Δεν έχεις όμως κάποιο input field που να ορίζει το id.
Εσύ λοιπόν λες στην php να δώσει στην $id την τιμή που έχει η $_POST[;id'], αφού όμως δεν έχει οριστεί η $_POST['id'] σου χτυπάει λάθος.
Σημείωσε ότι τα notice δεν είναι errors, ο κώδικας συνεχίζει και εκτελείται, απλά λειτουργούν ως προειδοποιήσεις για διάφορους λόγους.
Σε production server συνήθως το error level δεν δείχνει τα notice.
Για αυτό είχες πρόβλημα στην αρχή του script όταν δεν χρησιμοποιούσες την isset. Δεν είναι λάθος το να μην την χρησιμοποιήσεις, απλά η php σου πετούσε notice ότι είναι πιο ασφαλές να τη χρησιμοποιήσεις.

Απάντηση

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

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

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