Jump to content

Passing multiple variable errors...last variable vanishes.


markosaurus

Recommended Posts

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

 

Link to comment
Share on other sites

<?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>";	
?>

Link to comment
Share on other sites

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.) 

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.