Gilly79 Posted October 19, 2009 Share Posted October 19, 2009 Hello Im trying to upload and then display images from a mysql database - Its only basic and i only need one pic per user on the database hence why using mysql I really need osme help as ive been going round in circles for a couple of days now - I know its probably very simple but my head is spinning - any help would be amazing - Be very gratefull The database has blob specified for the pic Here is my post data <form id="form1" method="post" action="djregistercheck.php" enctype="multipart/form-data"> <p> <label>Dj Name <input type="text" name="DJName" id="DJName" /> </label> * - Must Be Entered </p> <p> <label>Your Email <input type="text" name="Email" id="Email" /> </label>* - Must Be Valid Email Address </p> <p> <label>Password <input type="password" name="Password" id="Password" /> </label>* - Must be more than 6 charachters </p> <p> <label>Name <input type="text" name="Name" id="Name" /> </label> * - Must Be Entered </p> <p> <label>Surname <input type="text" name="Name" id="Name" /> </label> * - Must Be Entered </p> <p> <label>Description <input type="text" name="Description" id="Description" /> </label> * - Must Be Entered </p> <p> <label>Expierience <input type="text" name="Expierience" id="Expierience" /> </label> * - Must Be Entered </p> <p> <label>Website <input type="text" name="Website" id="Website" /> </label> * - Must Be Entered </p> <p> <label>Location <input type="text" name="Location" id="Location" /> </label> * - Must Be Entered </p> <p> <label>Mobilephone <input type="text" name="Mobilephone" id="Mobilephone" /> </label> * - Must Be Entered </p> <p> <label>Picture <input type="file" name="Pic" size="50" id="Pic" /> </label> * - Must Be Entered </p> <p> <input type="submit" name="button" id="button" value="Submit" /> </p> </form> and here is the djregistercheck page <?php include 'connection.php'; // Main ---------- session_start(); // Get the data collected from the user $DJName = $_POST['DJName']; $Email = $_POST['Email']; $Password = $_POST['Password']; $Name = $_POST['Name']; $Surname = $_POST['Surname']; $Description = $_POST['Description']; $Expierience = $_POST['Expierience']; $Website = $_POST['Website']; $Location = $_POST['Location']; $Mobilephone = $_POST['Mobilephone']; $Pic = $_POST['Pic']; if (empty($Email)) { $_SESSION["message"] = "Email Address is Empty - Please re-enter" ; header("Location: djregister.php"); exit; //Ends the script and redirects to above } //Check to see if the email contains '@' else if (strpos($Email,'@') < 1) { $_SESSION["message"] = "Email Address is Invalid - Please re-enter" ; header("Location: djregister.php"); exit; //Ends the script and redirects to above } //Checks to see if the password is less than 6 charachters else if (strlen($Password)<6) { $_SESSION["message"] = "Password must be longer than 6 charachters" ; header("Location: djregister.php"); exit; //Ends the script and redirects to above } } //All was OK - Log details to Customer Database and re-direct to login so customer can now login else $query = "INSERT INTO Dj (DJName, Email, Password, Name, Surname, Description, Expierience, Website, Location, Mobilephone, Pic) VALUES ('$DJName', '$Email', '$Password', '$Name', '$Surname', '$Description', '$Expierience', '$Website', '$Location', '$Mobilephone', '$Pic')"; $result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); $_SESSION["message"] = "Thank You $DJName For Registering - Please now log in to View Site" ; header("Location: login.php"); //This sets the redirection information exit; //Ends the script and redirects to above // execute query // print $query; $result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); // close connection mysql_close($connection); ?> So im not sure if that works correctley but i presume it does as when i do the below a file path is displayed Here is the code for the display //Include the connection details, open $connection and select database include ("connection.php"); //Prepare query $query = "SELECT DJName, Email, Description, Expierience, Website, Pic FROM Dj"; // execute query $result = mysql_query($query) or die ("Error in query: $query. ".mysql_error()); // see if any rows were returned if (mysql_num_rows($result)>0) { echo "<table border=1>\n<tr>" . "<th>DJName</th>" . "<th>Email</th>" . "<th>Description</th>" . "<th>Expierience</th>" . "<th>Website</th>". "<th>Pic</th>"; while ($row = @ mysql_fetch_array($result)) { //while($row = mysql_fetch_row($result)) { echo "<tr>"; echo "<td class=BorderMeRed>".$row["DJName"]."</td>"; echo "<td class=BorderMeRed>".$row["Email"]."</td>"; echo "<td class=BorderMeRed>".$row["Description"]."</td>"; echo "<td class=BorderMeRed>".$row["Expierience"]."</td>"; echo "<td class=BorderMeRed>".$row["Website"]."</td>"; echo "<td class=BorderMeRed>".$row["Pic"]."</td>"; echo "</tr>"; } echo "</table>"; } else { // no // print status message print "No rows found!"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/178285-displaying-image-pathname-instead-of-image/ Share on other sites More sharing options...
abazoskib Posted October 19, 2009 Share Posted October 19, 2009 why dont you store a filename for the pic, or a relative path? Quote Link to comment https://forums.phpfreaks.com/topic/178285-displaying-image-pathname-instead-of-image/#findComment-940103 Share on other sites More sharing options...
radox Posted October 20, 2009 Share Posted October 20, 2009 Your code and html display is all wrong. The "file" input will return a $_FILES array Here's some code play with: $image=''; $imagedest='unix or windows path'; $tmp_name=$_FILES['Pic']['tmp_name']; $image_type=explode('/',$_FILES['Pic']['type']); $fulldest=$imagedest.$image; if(isset($_FILES['Pic'])&&$_FILES['Pic']['name']!=''){ if(preg_match('/\\.(jpg|gif|jpeg|bmp)$/i',$image)){ if(move_uploaded_file($tmp_name,$fulldest)){ echo 'file uploaded'; } } } You have to create the imagedest path on your server. You're not storing the image in the db, only the filename. Then, when you want to display the image, you need to pull the path and have your html in proper form. Not: echo "<td class=BorderMeRed>".$row["Pic"]."</td>"; This: echo '<td class=BorderMeRed><img src="'.$row['Pic'].'</img></td>'; PS. Please learn the difference between a single and double quote. Quote Link to comment https://forums.phpfreaks.com/topic/178285-displaying-image-pathname-instead-of-image/#findComment-940692 Share on other sites More sharing options...
abazoskib Posted October 20, 2009 Share Posted October 20, 2009 server performance can suffer if you echo too much html. try to keep it to a minimum. Quote Link to comment https://forums.phpfreaks.com/topic/178285-displaying-image-pathname-instead-of-image/#findComment-940699 Share on other sites More sharing options...
mikesta707 Posted October 20, 2009 Share Posted October 20, 2009 please put your code in code or php tags tags. As for your problem... you haven't really specified what it was. Is it not displaying the path? what is happening and what do you expect to happen Quote Link to comment https://forums.phpfreaks.com/topic/178285-displaying-image-pathname-instead-of-image/#findComment-940708 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.