PDA

View Full Version : PHP: Add, retrieve and display data in a MySQL database table


PhantomPhil
11-09-2002, 04:03 PM
Hello all.

I am just wondering if this is possible in PHP,a nd if so how do I do it?

1. I want any user to be able to add an entry to a table in a MySQL database

2. I want any user to be able to view the content of a table in MySQL database.

I have an account at Lycos/Tripod UK, which DOES support PHP and I have 1 MySQL Database. I run a PHP forum successfully.

Cheers,

scoutt
11-09-2002, 09:04 PM
for one, a lot can be learned if you read the php manual, and I have a few scipts on my site

here is one

http://www.snippetlibrary.com/viewhtml.php?id=6&kid=12&siteid=101

PhantomPhil
11-10-2002, 07:38 AM
Thanks Scoutt, I have found your site quite useful. I'm jusy wonderin, in that scipt you gave me, do I have to put in my username and password for the connection to the database. Also, am I correct in saying that the user will not be able to see the PHP script by pressinf View Source?

Thanks

scoutt
11-10-2002, 10:15 AM
yes you have to insert you username and password and DB name.

no user (unless they hack into your system or download your site with a website downloader) can see your php source. but it is suggested to keep the connection stuff in another file.

PhantomPhil
11-10-2002, 03:34 PM
Thanks, how do I go about including a link from my password file into my main PHP script?

scoutt
11-10-2002, 08:43 PM
if you have your info for your Db named connect.php then include it like this

<?
// main page
include_once("connect.php");

//then the rest of the page normally.

?>

PhantomPhil
11-11-2002, 11:22 AM
Thank you for your help. Everything is working so far, however I have another question:

This is the PHP script I am using now, in one of my webpages.

<?
mysql_connect ("localhost","usrname","pswd");
mysql_select_db ("database");

$sql = "select * from mohdatabase";
$result = mysql_query ($sql);

while ($row = mysql_fetch_array($result))
{
$field1= $row["field 1"];
$field2= $row["field 2"];
$field3= $row["field 3"];
$field4= $row["field 4"];

echo "$field1<br>";
echo "$field2<br>";
echo "$field3<br>";
echo "$field4<p>";

}
?>

In the output, how do I make field 4 a link. Can I include:

echo "<a href="url.html">$field4</a><p>";

Would that work? Also, do you have a basic script that allows visitors to submit to a database?

Thank you so far!

scoutt
11-11-2002, 11:35 AM
yes you can do that with the link, no problem.

a basic script for inserting into a DB, hmm you can't really get basic fo rthat as it depends on what version of php you are working with. not to hard though. just make a form of what you want to be intered into the DB and then send it the form to the same page as your insert script.

make the form and I will do the rest, bu tI have to know what the form variables are.

PhantomPhil
11-11-2002, 11:55 AM
Scoutt, please read attahced file for the info.

Thanks,

scoutt
11-11-2002, 02:24 PM
here you go.

rename the attached to form.php

PhantomPhil
11-11-2002, 03:38 PM
Thanks Scoutt.

I'll have a play and see wht can do.

Thanks!

PhantomPhil
11-13-2002, 11:51 AM
Hi.

Everything is working fine, apart from the Submit form. The form displays great, but the submit does not work.

Here is the form.php file:

----------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>

<title>title</title>

</head><body bg color="ffffff">
<?
if ($_POST['send']){
include ("connect.php");

$sql_insert = mysql_query("insert into mohdatabase (Webmaster_Name, Webmaster_Email, Site_Name, Site_URL)
values (
'".addslashes(htmlspecialchars($_POST[Webmaster_Name]))."',// these lines protect you from people.
'".addslashes(htmlspecialchars($_POST[Webmaster_Email]))."', // entering malicious code
'".addslashes(htmlspecialchars($_POST[Site_Name]))."',
'".addslashes(htmlspecialchars($_POST[Site_URL]))."' )");
echo "Thank you for adding your site"; // have anyhting you want once the info has been inserted.
// also can forward to another page once this is done.
// just give a link here then.
exit;
}

?>

<form method="post" action="form.php">

<table cellpadding="0 cellspacing="0" align="center">
<tr><td align="right">Your full name:</td>
<td align="left"><input type="text" size="30" name="Webmaster_Name"></td></tr>

<tr><td align="right">Your e-mail address:</td>
<td align="left"><input type="text" size="30" name="Webmaster_Email"></td></tr>

<tr><td align="right">Name of your site:</td>
<td align="left"><input type="text" size="30" name="Site_Name"></td></tr>

<tr><td align="right">Site URL:</td>
<td align="left"><input type="text" size="30" name="Site_URL"></td></tr>

<tr><td>&nbsp;</td><td align="center">

<INPUT TYPE="submit" VALUE="Submit" name="send"></td></tr>
</form>
</table>

</body>
</html>

---------------

And the connect.php file:

---------------

connect.php

<?php
// variables used to open connection to the database
$server = "localhost";
$user = "comhub";
$pass = "password";
$db = "database";

// open connection
$connection = mysql_connect($server, $user, $pass);

// select database
mysql_select_db($db, $connection);

?>
--------------

Thank you,

Phil

scoutt
11-13-2002, 12:02 PM
you might wanna try to change the $_POST['send'] to $_REQUEST['send'] instead. I have found $_POST to be a little flakey :)