markosaurus Posted July 19, 2007 Share Posted July 19, 2007 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). <?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 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: <!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 Quote Link to comment Share on other sites More sharing options...
DeadEvil Posted July 19, 2007 Share Posted July 19, 2007 <?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)) { 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>"; ?> Quote Link to comment Share on other sites More sharing options...
markosaurus Posted July 19, 2007 Author Share Posted July 19, 2007 Thanks for the reply...I tried that...are there any changes in there? I couldn't see any and it didn't work if there are. I'm tearing my hair out with this now! Quote Link to comment Share on other sites More sharing options...
JasonLewis Posted July 19, 2007 Share Posted July 19, 2007 try placing this in the form part. near the top with the other variables: print_r($_GET); just see if the article variable is being sent properly. Quote Link to comment Share on other sites More sharing options...
DeadEvil Posted July 19, 2007 Share Posted July 19, 2007 ..or print_r($result); exit; Quote Link to comment Share on other sites More sharing options...
markosaurus Posted July 19, 2007 Author Share Posted July 19, 2007 I just tried that and it returned: Array ( [id] => 46 [title] => 34.4.56 [venue] => Whitley ) on the page. I guess this means that the 'article' variable is not being read? (I had never seen that command before. That should be very helpful for debugging in the future.) Quote Link to comment Share on other sites More sharing options...
JasonLewis Posted July 19, 2007 Share Posted July 19, 2007 and your positive in the url it has &article=something cuz i am unsure about this at the moment. (yes, that is a very handy function indeed) Quote Link to comment Share on other sites More sharing options...
markosaurus Posted July 19, 2007 Author Share Posted July 19, 2007 How stupid am I? I just viewed source to see what the 'edit' link was and it is chopping off the last variable because the title is more than one word (it has a space in it). A single word title works first time. So I'm going to just pass the ID and pull the correct data form the database on the next page, much easier. Thanks for your help everyone. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.