Dynadot โ€” .com Registration $8.99

Php Error *NP for whoever fixes it

Spaceship Spaceship
Watch

Mike_Wiseman

Established Member
Impact
3
Hey everyone, i am trying to fix my "edit" page and i cannot seem to get it. Whoever can help me with my error and fix it will receive some np$ :D
Heres the error:

Parse error: parse error, unexpected T_STRING in /home/john/public_html/vicious/tutorials/edit.php on line 19

Here is line 19:

mysql_query("UPDATE tutorials SET title='".$_POST['title'].", preview=".$_POST['preview']." description=".$_POST['description'].", tutorial=".$_POST['tutorial'].", author=".$_POST['author']." WHERE tutorial=".$_REQUEST['tut'].");

all the database stuff is correct (table, variables etc) so dont even post about that. Whoever can help me with my error and fix it will receive some np$ :D
 
Last edited:
0
•••
The views expressed on this page by users and staff are their own, not those of NamePros.
AfternicAfternic
Keep the NP...anyway,

I see it would be much easier if you predefine the $_POST strings. because I see many quotes, and this is probably where the problem resides.

Try this code:

$title = $_POST['title'];
$preview = $_POST['preview'];
$description = $_POST['description'];
$tutorial = $_POST['tutorial'];
$author = $_POST['author'];
$tut = $_REQUEST['tut'];

// Now enter your SQL query if you wish..

$update_data = mysql_query("UPDATE tutorials SET title='$title', preview='$preview', description='$description', tutorial='$tutorial', author='$author' WHERE tutorial='$tut');
 
0
•••
I agree with Mike, except that you forgot to add a terminal quote at the end of the SQL statement. Should be:

$update_data = mysql_query("UPDATE tutorials SET title='$title', preview='$preview', description='$description', tutorial='$tutorial', author='$author' WHERE tutorial='$tut' ");

Perl/PHP are terrible at dealing with nested quotes. An alternative to the method descibed by Mike is to put a '/' before each nested quotation mark, but I think the above way is better. Good luck!
 
1
•••
Ya my mistake..sorry :)
Thanks for the quick correction :tu:
 
0
•••
Ok thanks, that fixed that problem, but now there is another one. :'(
 
0
•••
Please paste it so that we can help you.
 
0
•••
Make sure that there is a semi-colon at the end of the previous line.
 
0
•••
i dont really know the error, im a php n00b and a member on this forum made it for me, i played around with it and i guess i screwed it up.

Heres the code:

<?php

if( isset( $_REQUEST['tut'] ) ){
$tut = $_REQUEST['tut'];
// set your database infomation.
include("config.php");

// connect to the mysql database server.
$connect = mysql_connect($dbhost, $dbusername, $dbuserpass);

// select the database
mysql_select_db($dbname, $connect);
$result = mysql_query("SELECT * FROM tutorials WHERE tutorial='$tut'");

// Retrieve all the data from the "tutorials" table
if(mysql_query("SELECT * FROM tutorials WHERE product='$tut'")){
if( isset($_POST['title']) && isset($_POST['preview']) && isset($_POST['description']) && isset($_POST['tutorial']) && isset($_POST['author'])){
$update_data = mysql_query("UPDATE tutorials SET title='$title', preview='$preview', description='$description', tutorial='$tutorial', author='$author' WHERE tutorial='$tut' ");
echo "Updated record!";
}
else{
$row = mysql_fetch_array( $result )
?>
<form method="post" action="edit.php?tut=<?php echo $_REQUEST['tut']; ?>">
Title: <input name="title" value="<?php echo $row['title']; ?>"><br>
Preview: <input name="preview" value="<?php echo $row['preview']; ?>"><br>
Description: <textarea name="description"><?php echo $row['description']; ?></textarea><br />
Tutorial: <textarea name="tutorial"><?php echo $row['tutorial']; ?></textarea><br />
Author: <input name="author" value="<?php echo $row['author']; ?>">
<input type="submit" value="Save" name="submit">
</form>
<?php
}
}
else
{
echo "Error";
}
}
else{
header("Location: tutorials.php");
}


?>


I dont know what there error is because it uses if/els and it just sais error so i dont know whats wrong
 
0
•••
Before checking deeply into use of if/else, you sure that you have field product, at first glance you use tutorial='$tut' then product='$tut' am I missing somethig?

mysql_query("SELECT * FROM tutorials WHERE product='$tut'")){
 
1
•••
Ok, i change all the product= and tutorial= to title= and it works, but not i think there is something wrong with the $row = mysql_fetch_array( $result ) because when you click edit it is soposed to display the content that you have to edit in the input forms, but for some reason they arnt showing up.
 
0
•••
Are you sure that you added ' ; ' to the statement?

$result = somequeryhere;
$row = mysql_fetch_array($result);
extract($row); // this is recommended ..you'll just use $title instead of $row['title'] however if you do not wish, it shouldnt stop your code from working
 
0
•••
where or how do i place the extractrow into the code?

$row = mysql_fetch_array( $result );
extract($row);
?>
<form method="post" action="edit.php?tut=<?php echo $_REQUEST['tut']; ?>">
Title: <input name="title" value="<?php echo $title; ?>"><br>
Preview: <input name="preview" value="<?php echo $preview; ?>"><br>
Description: <textarea name="description"><?php echo $description; ?></textarea><br />
Tutorial: <textarea name="tutorial"><?php echo $'tutorial; ?></textarea><br />
Author: <input name="author" value="<?php echo $author; ?>"><BR />
<input type="submit" value="Save" name="submit">
</form>

^ Would that work?
 
0
•••
Yea, it should. but I see a few errors in code

"><?php echo $'tutorial; ?></ $ and tutorial , remove the '
And try to remove the space here mysql_fetch_array($result); only

extract($row) is usually under the $row = mysql_fetch_array()
 
0
•••
Heres another error :(

Warning: extract(): First argument should be an array in /home/john/public_html/vicious/tutorials/edit.php on line 23

here is line 23:

extract($row);
 
0
•••
Revise the $row please.. tell me what it has $row = ??
 
0
•••
what do you mean? like the mysql rows? tables? like i said before, im a php n00b

$row = mysql_fetch_array($result); ?

rows:

title
preview
description
tutorial
author
 
0
•••
try this:

Code:
$tutorial = mysql_fetch_array(mysql_query("select * from posts WHERE tut='$tut'"));
if (empty ($tutorial[id])) {
	die("No info !");
}

echo $tutorial[title];
echo $tutorial[preview];
echo $tutorial[description];

etc...
 
0
•••
that didnt work, just created another error :'(
 
0
•••
Mike, send to me the whole file to ezzat @ safe-mail.net and mention your table field names in database, i 'll get working onto this.

Ok received.. and err..it was a bit complicated, do not worry I tested everything on localhost.

Well, basically, what you want it one file , edit.php which called the tutorial ID as i understand, and allow doing changes. It can submit info to itself, and if no form is submitted at first glance, it will just show the form.

Lets get this clear, you should have a file called
config.php contains database variables as regular;

you should also have a file called
form.html contains your html form as below exactly:

<form method="post" action="edit.php?tut=<?php echo $tut; ?>">
Title: <input name="title" value="<?php echo $title; ?>"><br>
Preview: <input name="preview" value="<?php echo $preview; ?>"><br>
Description: <textarea name="description"><?php echo
$description; ?></textarea><br />
Tutorial: <textarea name="tutorial"><?php echo $tutorial;
?></textarea><br />
Author: <input name="author" value="<?php echo $author; ?>"><BR />
<input type="submit" value="Save" name="submit">
</form>

at last you should have this only in your edit.php file:

<?php

if (isset($_REQUEST['tut'])) {
$tut = $_REQUEST['tut'];
}

// set your database infomation
include 'config.php';

// connect to the mysql database server
$connect = mysql_connect($dbhost, $dbusername, $dbuserpass);

// select the database
mysql_select_db($dbname, $connect) or die(mysql_error());

// sql query
$result = mysql_query("SELECT * FROM tutorials WHERE id='$tut'");
$row = mysql_fetch_array($result);
extract($row);

// define POST
$title = $_POST['title'];
$preview = $_POST['preview'];
$description = $_POST['description'];
$tutorial = $_POST['tutorial'];
$author = $_POST['author'];

if (isset($title) && isset($preview) && isset($description) && isset($tutorial) && isset($author)) {
$update_data = mysql_query("UPDATE tutorials SET title='$title',
preview='$preview', description='$description', tutorial='$tutorial',
author='$author' WHERE id='$tut'");
echo "Updated record!";
include 'form.html';
} else {
include 'form.html';
}
?>

Set these up together in one directory and test. But wait,

I recognized a new field ID in table tutorials, it should get the id number from url and get the info according to ID not tutorial, and that was a little mistake.

Just go to your table structure make sure you have the following structure

field 1 - id int(25) PRIMARY KEY--important--
field 2 - title Whatever varchar or text you like, this is your choice
field 3 - preview
field 4 - description
field 5 - tutorial
field 6 - author

Remember id is a new field. ID is primary key, ID is integer. id is assigned $_GET['tut'] meaning If you called edit.php?tut=12 it would find that
$tut = $_REQUEST['tut'] // value in this case 12;
Then run the statement where tutorial ID is 12 :)

Hope that cleared it up :tu:
 
Last edited:
0
•••
Obviously, something os getting mexied up with the table field names...
 
0
•••
Appraise.net
Unstoppable Domains
Domain Recover
NameMaxi - Your Domain Has Buyers
  • The sidebar remains visible by scrolling at a speed relative to the pageโ€™s height.
Back