Avatar of edavo
edavo
Flag for United States of America asked on

Php not Updating SQK Database

This should be easy for experts.

The code below is from a tutorial and everything works except it is not UPDATING The data base. You can see the page here:

http://bbsidekick.com/bb/index_edit_test.php

<!DOCTYPE html>
<html>
<head>
<title></title>
<link href="style.css" rel="stylesheet" type="text/css">
<style>
@import "http://fonts.googleapis.com/css?family=Droid+Serif";
/* Above line is used to import Google font style */
.maindiv{
margin:0 auto;
width:980px;
height:500px;
background:#fff;
padding-top:20px;
font-size:14px;
font-family:'Droid Serif',serif
}
.title{
width:100%;
height:70px;
text-shadow:2px 2px 2px #cfcfcf;
font-size:16px;
text-align:center;
font-family:'Droid Serif',serif
}
.divA{
width:70%;
float:left;
margin-top:30px
}
.form{
width:400px;
float:left;
background-color:#f0f8ff;
font-family:'Droid Serif',serif;
padding-left:30px
}
.divB{
width:100%;
height:100%;
background-color:#f0f8ff;
border:dashed 1px #999
}
.divD{
width:200px;
height:480px;
float:left;
background-color:#f0f8ff;
border-right:dashed 1px #999
}
#form3{
color:green;
font-weight:700
}
p{
font-weight:700;
text-align:center;
color:#5678C0;
font-size:18px;
text-shadow:2px 2px 2px #cfcfcf
}
form h2{
text-align:center;
text-shadow:2px 2px 2px #cfcfcf
}
textarea{
width:250px;
height:60px;
border-radius:1px;
box-shadow:0 0 1px 2px #123456;
margin-top:10px;
padding:5px 0;
border:none
}
.input{
width:250px;
height:15px;
border-radius:1px;
box-shadow:0 0 1px 2px #123456;
margin-top:10px;
padding:5px 0;
border:none;
margin-bottom:20px
}
.submit{
color:#fff;
border-radius:3px;
background:#1F8DD6;
padding:5px;
margin-top:40px;
border:none;
width:100px;
height:30px;
box-shadow:0 0 1px 2px #123456;
font-size:16px
}
a{
text-decoration:none;
font-size:16px;
margin:2px 0 0 30px;
padding:3px;
color:#1F8DD6
}
a:hover{
text-shadow:2px 2px 2px #cfcfcf;
font-size:18px
}
.clear{
clear:both
}
</style>
</head>
<body>
<div class="maindiv">
<div class="divA">
<div class="title">
<h2>Update Data Using PHP</h2>
</div>
<div class="divB">
<div class="divD">
<p>Click On Menu</p>
<?php
	$host="localhost"; 					// Put host name in a variable
	$username="bb2014"; 				// Put mysql username in a variable
	$password="sidekick2014"; 			// Put mysql password in a variable
	$db_name="bbsidekick"; 			// Put database name in a variable
	$tbl_name="posts"; 				// Put table name in a variable
		
	$connection = mysql_connect("$host","$username","$password"); 		// VITAL - Connect info: host/user/password
	mysql_select_db("$db_name")or die("cannot select DB"); 		// Select proper DB
	
if (isset($_GET['submit'])) {
$id = $_GET['id'];
$active = $_GET['active'];
$orderid = $_GET['orderid'];
$head = $_GET['head'];
$body = $_GET['body'];
$user = $_GET['user'];

$query = mysql_query('UPDATE posts SET
active="$active", orderid="$orderid", head="$head", body="$body", use="$user" where id="$id"', $connection);
}
$query = mysql_query('select * from posts', $connection);
while ($row = mysql_fetch_array($query)) {
echo '<b><a href="index_edit_test.php?update='.$row["id"].'">'.$row["head"].'</a></b>';
echo '<br />';
}
?>
</div><?php
if (isset($_GET['update'])) {
$update = $_GET['update'];
$query1 = mysql_query("select * from posts where id=$update", $connection);
while ($row1 = mysql_fetch_array($query1)) {
echo '<form class="form" method="get">';
echo '<h2>Update Form</h2>';
echo '<hr/>';
echo $row1["id"];
echo ' hdgfgkshdkjahdkahdsoiah ';
echo '<input class="input" type="hidden" name="did" value="'.$row1["id"].'" />';
echo '<br />';
echo '<label>' . 'ID:' . '</label>' . '<br />';
echo '<input class="input" type="text" name="id" value="'.$row1["id"].'" />';
echo '<br />';
echo '<label>' . 'User:' . '</label>' . '<br />';
echo '<input class="input" type="text" name="user" value="'.$row1["user"].'" />';
echo '<br />';
echo '<label>' . 'Active:' . '</label>' . '<br />';
echo '<input class="input" type="text" name="active" value="'.$row1["active"].'" />';
echo '<br />';
echo '<label>' . "Order:" . '</label>' . '<br />';
echo '<input class="input" type="text" name="orderid" value="'.$row1["orderid"].'" />';
echo '<br />';
echo '<label>' . 'Head:' . '</label>' . '<br />';
echo '<input class="input" type="text" name="head" value="'.$row1["head"].'" />';
echo '<br />';
echo '<label>' . "Address:" . '</label>' . '<br />';
echo '<textarea rows="15" cols="15" name="body">'.$row1["body"].'';
echo '</textarea>';
echo '<br />';
echo '<input class="submit" type="submit" name="submit" value="update" />';
echo '</form>';
}
}
if (isset($_GET['submit'])) {
echo '<div class="form" id="form3"><br><br><br><br><br><br>
<span>Data Updated Successfuly......!!</span></div>';
}
?>
<div class="clear"></div>
</div>
<div class="clear"></div>
</div>
</div><?php
mysql_close($connection);
?>
</body>
</html>

Open in new window

PHPMySQL Server

Avatar of undefined
Last Comment
edavo

8/22/2022 - Mon
Dave Baldwin

Variables are not substituted in single quoted strings like one:
$query = mysql_query('UPDATE posts SET
active="$active", orderid="$orderid", head="$head", body="$body", use="$user" where id="$id"', $connection);
}

Open in new window

When I changed it to this, it started working.
$squery = "UPDATE posts SET active='$active', orderid='$orderid', head='$head', body='$body', user='$user' where id='$id'";
$result = mysql_query($squery);
if (!$result) {
    $message  = 'Invalid query: ' . mysql_error() . "\n";
    $message .= 'Whole query: ' . $squery;
    die($message);
}

Open in new window

Loganathan Natarajan

Always have error printed on this mysql command

$query = mysql_query('UPDATE posts SET
active="$active", orderid="$orderid", head="$head", body="$body", use="$user" where id="$id"', $connection);
}  or die ('query failed '.mysql_error())

Open in new window


more details http://php.net/manual/en/function.mysql-error.php
edavo

ASKER
STill not working - I pasted in exactly as you have.

I am sure it has to do with the ' and the " being out of wack, but I have switched them so many times and couldn't get any version to work.

dM
All of life is about relationships, and EE has made a viirtual community a real community. It lifts everyone's boat
William Peck
Dave Baldwin

I set up the database with all the same login and fields on my systems and the change I showed you above works perfectly.
Ray Paseur

One of the unfortunate things about the internet is that old and obsolete code examples are not marked with expiration dates.  PHP's support for the MySQL extension expired about five years ago.  It's deprecated in modern PHP and so the example you've found in that ancient tutorial should not even be online any more, much less held out as a teaching example.  It's just plain wrong, full of coding errors and security holes.  Nobody does anything like that any more.  Discard it at once and never look at it again!  

If you're new to PHP and want some safe and dependable places to learn, this article can help you find them, and can also help you avoid getting tripped up by the old stuff.
https://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_11769-And-by-the-way-I-am-new-to-PHP.html

To understand why PHP is doing away with MySQL and what you must do to keep your scripts running, this article can help.  It's a lot to learn, but the examples will map the familiar but obsolete MySQL extension to the modern database extensions.
https://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/PHP_Databases/A_11177-PHP-MySQL-Deprecated-as-of-PHP-5-5-0.html

I'll see if I can show you a safer way to write this script after I have a little while to digest the author's original intent.
Ray Paseur

A quick look at it tells me that this code smell could be part of the problem.

use="$user"

Should that be more like this?

user="$user"
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.
SOLUTION
Ray Paseur

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
ASKER CERTIFIED SOLUTION
Log in to continue reading
Log In
Sign up - Free for 7 days
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.
edavo

ASKER
I appreciate your feedback