markosaurus
07-19-2007, 12:12 PM
Hi folks, I know this is a big ask but I have been trying to figure this one out for a few days now and it is starting to drive me mad. I'm sure this is something simple that I have done wrong but I can't for the life of me figure out what is wrong here. I'm just learning PHP so any pointers would be very greatfully appreciated.
Some background.
I decided I needed to learn PHP, I really enjoy it but keep getting stuck on things like this due to my lack of knowledge. So I set myself a challenge to write a PHP CMS system using PHP, mySQL, XHTML and CSS. All was going fine (all be it rather slowly) until I tried to write the page to edit articles in the CMS.
I have the 'ID', 'title', 'venue' and 'article' stored in the database fine. I can pull entries out and display them fine. I now want to edit them using a browser. So I thought I would use the same form I used to add mySQL entries and change ti so that it loads in the article into the form fields depending on the id. (This is chosen through a link saying 'edit).
Code:
<?php
include('includes/connect.php');
//$id = $_POST['ID'];
//$title=$_POST['title'];
$article=$_POST['article'];
include_once('includes/nav.php');
print"<div id=wrapper>";
$result = mysql_query("SELECT * FROM cmsarticles");
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
print
"<div class=item><div id=gigtxt><h2>".$row{'title'}."</h2>
<h3>".$row{'venue'}."</h3>
<h4>".$row{'article'}."</h4>
<a href=delete_article.php?id=".$row{'ID'}."&title=".$row{'title'}."><img src='img/delete.jpg' /></a>
<a href=edit.php?id=".$row{'ID'}."&title=".$row{'title'}."&venue=".$row{'venue'}."&article=".$row{'article'}."><img src='img/edit.jpg' /></a></div></div>";
}
mysql_close();
print"</div>";
?>
I'm trying to pass multiple variables using a URL in the form of:
edit.php?id=46&title=34.4.56&venue=Whitley&article=ydddjadjkgdgsdjsa
I'm only actually passing the variable;
edit.php?id=46&title=34.4.56&venue=Whitley
The delete button works fine BTW Smiley
I need to add the article into the URL as well, but it isn't adding it. I wondered if there is a limit to how many variables can be passed in one URL but I have looked around and found lots of sites with very long and complicated variables. - So this can't be the problem.
I tried re-arranging the variables to see if it was just the last one being removed for some reason. It is not. It is the 'article' variable which never works.
I then tried adding a 'spare' variable in at the end of the url to see if this would force the 'article' variable to work, but this did not work either.
Here is the form:
Code:
<!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=ISO-8859-1" />
<title>edot3 - simpleCMS</title>
<link href="db.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
include_once('includes/nav.php');
$title=$_GET{'title'};
$venue=$_GET{'venue'};
$article=$_GET{'article'};
?>
<div id="wrapper">
<form id="form1" name="add" method="post" action="admin/edit_article.php">
<div class="article">
<div class="title">
<h2>Edit an article</h2></div>
<label><p>Title (Date)</p>
<input type="text" name="title" value="
<?php
echo $title;
?>
"></input>
</label>
<label><p>Venue (Location)</p>
<input type="text" name="venue" value="
<?php
echo $venue;
?>
"></input>
</label>
<label><p>Article (Gig information)</p>
<textarea name="article" cols=30 rows=10><?php echo $article; ?></textarea>
</label>
<br />
<label>
<input type="submit" name="submit" value="Submit" />
</label>
</div>
</form>
</div>
</body>
</html>
Any help would be amazing. Any eagle-eyes out there can spot what I've done?
Thanks
Mark
Some background.
I decided I needed to learn PHP, I really enjoy it but keep getting stuck on things like this due to my lack of knowledge. So I set myself a challenge to write a PHP CMS system using PHP, mySQL, XHTML and CSS. All was going fine (all be it rather slowly) until I tried to write the page to edit articles in the CMS.
I have the 'ID', 'title', 'venue' and 'article' stored in the database fine. I can pull entries out and display them fine. I now want to edit them using a browser. So I thought I would use the same form I used to add mySQL entries and change ti so that it loads in the article into the form fields depending on the id. (This is chosen through a link saying 'edit).
Code:
<?php
include('includes/connect.php');
//$id = $_POST['ID'];
//$title=$_POST['title'];
$article=$_POST['article'];
include_once('includes/nav.php');
print"<div id=wrapper>";
$result = mysql_query("SELECT * FROM cmsarticles");
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
"<div class=item><div id=gigtxt><h2>".$row{'title'}."</h2>
<h3>".$row{'venue'}."</h3>
<h4>".$row{'article'}."</h4>
<a href=delete_article.php?id=".$row{'ID'}."&title=".$row{'title'}."><img src='img/delete.jpg' /></a>
<a href=edit.php?id=".$row{'ID'}."&title=".$row{'title'}."&venue=".$row{'venue'}."&article=".$row{'article'}."><img src='img/edit.jpg' /></a></div></div>";
}
mysql_close();
print"</div>";
?>
I'm trying to pass multiple variables using a URL in the form of:
edit.php?id=46&title=34.4.56&venue=Whitley&article=ydddjadjkgdgsdjsa
I'm only actually passing the variable;
edit.php?id=46&title=34.4.56&venue=Whitley
The delete button works fine BTW Smiley
I need to add the article into the URL as well, but it isn't adding it. I wondered if there is a limit to how many variables can be passed in one URL but I have looked around and found lots of sites with very long and complicated variables. - So this can't be the problem.
I tried re-arranging the variables to see if it was just the last one being removed for some reason. It is not. It is the 'article' variable which never works.
I then tried adding a 'spare' variable in at the end of the url to see if this would force the 'article' variable to work, but this did not work either.
Here is the form:
Code:
<!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=ISO-8859-1" />
<title>edot3 - simpleCMS</title>
<link href="db.css" rel="stylesheet" type="text/css" />
</head>
<body>
<?php
include_once('includes/nav.php');
$title=$_GET{'title'};
$venue=$_GET{'venue'};
$article=$_GET{'article'};
?>
<div id="wrapper">
<form id="form1" name="add" method="post" action="admin/edit_article.php">
<div class="article">
<div class="title">
<h2>Edit an article</h2></div>
<label><p>Title (Date)</p>
<input type="text" name="title" value="
<?php
echo $title;
?>
"></input>
</label>
<label><p>Venue (Location)</p>
<input type="text" name="venue" value="
<?php
echo $venue;
?>
"></input>
</label>
<label><p>Article (Gig information)</p>
<textarea name="article" cols=30 rows=10><?php echo $article; ?></textarea>
</label>
<br />
<label>
<input type="submit" name="submit" value="Submit" />
</label>
</div>
</form>
</div>
</body>
</html>
Any help would be amazing. Any eagle-eyes out there can spot what I've done?
Thanks
Mark