Avatar of edavo
edavoFlag 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
Avatar of Dave Baldwin
Dave Baldwin
Flag of United States of America image

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

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
Avatar of edavo
edavo
Flag of United States of America image

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
Avatar of Dave Baldwin
Dave Baldwin
Flag of United States of America image

I set up the database with all the same login and fields on my systems and the change I showed you above works perfectly.
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

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.
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

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"
SOLUTION
Avatar of Ray Paseur
Ray Paseur
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
ASKER CERTIFIED SOLUTION
Avatar of Dave Baldwin
Dave Baldwin
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
Avatar of edavo
edavo
Flag of United States of America image

ASKER

I appreciate your feedback
PHP
PHP

PHP is a widely-used server-side scripting language especially suited for web development, powering tens of millions of sites from Facebook to personal WordPress blogs. PHP is often paired with the MySQL relational database, but includes support for most other mainstream databases. By utilizing different Server APIs, PHP can work on many different web servers as a server-side scripting language.

125K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo