Jump to content

Archived

This topic is now archived and is closed to further replies.

Uphoreum

MySQL Data Entry Spaces?

Recommended Posts

I used to know the answer to this question, but I forgot and I can't find the information again. When I use UPDATE or INSERT to put data in to a table, if that data has a space, it cuts off the string at the space. How can I stop this from happening?

Share this post


Link to post
Share on other sites
It shouldn't happen. Can we see your code?

Share this post


Link to post
Share on other sites
Here's the main chunk of the first page. It's several text boxes that link to...
[code]
echo "<form name='favupdate' action='update.php' method='get'>";
echo "Book: <input type='text' name='book' value=$row[book]>";
echo "<br>";
echo "Game: <input type='text' name='game' value=$row[game]>";
echo "<br>";
echo "Celeb: <input type='text' name='celeb' value=$row[celeb]>";
echo "<br>";
echo "Movie: <input type='text' name='movie' value=$row[movie]>";
echo "<br>";
echo "TV Show: <input type='text' name='tv' value=$row[tv]>";
echo "<br>";
echo "Music: <input type='text' name='music' value=$row[music]>";
echo "<br>";
echo "<input type='submit' value='Update'>";[/code]

...this page:
[code]
<html>
<?php
$con = mysql_connect("localhost","anonymous");
mysql_select_db("users",$con);
mysql_query("UPDATE favs SET book = '$_GET[book]' WHERE uid = 'testid'");
mysql_query("UPDATE favs SET game = '$_GET[game]' WHERE uid = 'testid'");
mysql_query("UPDATE favs SET celeb = '$_GET[celeb]' WHERE uid = 'testid'");
mysql_query("UPDATE favs SET movie = '$_GET[movie]' WHERE uid = 'testid'");
mysql_query("UPDATE favs SET tv = '$_GET[tv]' WHERE uid = 'testid'");
mysql_query("UPDATE favs SET music = '$_GET[music]' WHERE uid = 'testid'");
echo "Update Successful! <a href='index.php'>Click To Return</a>.";
?>
</html>[/code]

Share this post


Link to post
Share on other sites
The problem occurs not when you insert the data into the database, but in your form. If you had looked at the data being returned from the form, you would have see this. You need to put quotes around all values of attributes in the <input> tags. If your data includes quotes or HTML tags, pass it through the htmlentities() function first:
[code]<?php
echo "<form name='favupdate' action='update.php' method='get'>";
echo "Book: <input type='text' name='book' value='{$row['book']}'>";
echo "<br>";
echo "Game: <input type='text' name='game' value='{$row['game']}'>";
echo "<br>";
echo "Celeb: <input type='text' name='celeb' value='{$row['celeb']}'>";
echo "<br>";
echo "Movie: <input type='text' name='movie' value='{$row['movie']}'>";
echo "<br>";
echo "TV Show: <input type='text' name='tv' value='{$row['tv']}'>";
echo "<br>";
echo "Music: <input type='text' name='music' value='{$row['music']}'>";
echo "<br>";
echo "<input type='submit' value='Update'>";
?>[/code]

Ken

Share this post


Link to post
Share on other sites
AVO, you're solutions do not relate to the OP's problem at all, please refrain from posting non-solutions.

Ken

Share this post


Link to post
Share on other sites
Ken's Code fixed it. Thanks!

He's right, the data in the table was fine, but when I tried to read it back into the form, it got screwed up. I never used MySQL to just look at the table first.

Share this post


Link to post
Share on other sites

×

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.