Gå til innhold

Upload file and write to mysql


Anbefalte innlegg

Hallo,

prøver å mekke en side hvor jeg kan skrive inn nyheter og evt. laste opp et bilde (til mysql) som vises på hjemmesiden min. Problemet er at jeg suger i php.

 

Jeg har prøvd et tutorial på dette, og jeg får lasta opp bildet til servern min, det ser jeg i ftp programmet, men når jeg kjører view.php som jeg har laget for å se dataen jeg har lagt inn i mysql får jeg ikke opp en døyt.

 

Så om det er selve registreringen av data til msyql db'n som er feil eller at det er feil i view.php fila mi, og dataen egentlig ligger i databasen, veit jeg ikke. :blush:

 

Noen som kan hjelpe en stakkar? Mottas med takk.

 

her er formen

 

<form enctype="multipart/form-data" action="add.php" method="POST">

<p>Date:

<input type="text" name="date" />

<br />

<br />

Header:

<input type="text" name="header" />

</p>

<p>Body:

<input type="text" name="body" />

</p>

<p>

Image:

<input type="file" name="image" id="image" />

</p>

<p>

<input name="upload" type="submit" class="box" id="upload" value="upload" />

</p>

</form>

 

her er add.php

<?php

 

//This is the directory where images will be saved

$target = "images/";

$target = $target . basename($_FILES['image']['name']);

 

//This gets all the other information from the form

$date=$_POST['date'];

$header=$_POST['header'];

$body=$_POST['body'];

$image=($_FILES['image']['name']);

 

// Connects to your Database

mysql_connect("localhost", "brukernavn", "passord") or die(mysql_error());

mysql_select_db("pgrimcen_publisher") or die(mysql_error());

 

//Writes the information to the database

mysql_query("INSERT INTO 'publisher' VALUES('$date', '$header', '$body', '$image')");

 

//Writes the photo to the server

if(move_uploaded_file($_FILES['image']['tmp_name'], $target))

{

 

//Tells you if its all ok

echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";

 

}

else {

 

//Gives and error if its not

echo "Sorry, there was a problem uploading your file.";

}

?>

 

og her er view.php

<?php

// Connects to your Database

mysql_connect("localhost", "brukernavn", "passord") or die(mysql_error());

mysql_select_db("pgrimcen_publisher") or die(mysql_error());

 

//Retrieves data from MySQL

$data = mysql_query("SELECT * FROM publisher") or die(mysql_error());

 

//Puts it into an array

while($info = mysql_fetch_array( $data ));

 

//Outputs the image and other data

Echo "<img src=webadresse".$info['image'] ."> <br>";

Echo "<b>Date:</b> ".$info['date'] . "<br> ";

Echo "<b>Header:</b> ".$info['header'] . " <br>";

Echo "<b>Body:</b> ".$info['body'] . " <hr>";

?>

Lenke til kommentar
Videoannonse
Annonse
Hallo,

prøver å mekke en side hvor jeg kan skrive inn nyheter og evt. laste opp et bilde (til mysql) som vises på hjemmesiden min. Problemet er at jeg suger i php.

 

Jeg har prøvd et tutorial på dette, og jeg får lasta opp bildet til servern min, det ser jeg i ftp programmet, men når jeg kjører view.php som jeg har laget for å se dataen jeg har lagt inn i mysql får jeg ikke opp en døyt.

 

Så om det er selve registreringen av data til msyql db'n som er feil eller at det er feil i view.php fila mi, og dataen egentlig ligger i databasen, veit jeg ikke.  :blush:

 

Noen som kan hjelpe en stakkar? Mottas med takk.

 

her er formen

 

<form enctype="multipart/form-data" action="add.php" method="POST">

  <p>Date: 

    <input type="text" name="date" />

    <br />

    <br />

    Header:

    <input type="text" name="header" />

  </p>

  <p>Body:

    <input type="text" name="body" />

    </p>

  <p>

    Image:

    <input type="file" name="image" id="image" />

  </p>

  <p>

    <input name="upload" type="submit" class="box" id="upload" value="upload" />

  </p>

</form>

 

her er add.php

<?php

 

//This is the directory where images will be saved

$target = "images/";

$target = $target . basename($_FILES['image']['name']);

 

//This gets all the other information from the form

$date=$_POST['date'];

$header=$_POST['header'];

$body=$_POST['body'];

$image=($_FILES['image']['name']);

 

// Connects to your Database

mysql_connect("localhost", "brukernavn", "passord") or die(mysql_error());

mysql_select_db("pgrimcen_publisher") or die(mysql_error());

 

//Writes the information to the database

mysql_query("INSERT INTO 'publisher' VALUES('$date', '$header', '$body', '$image')");

 

//Writes the photo to the server

if(move_uploaded_file($_FILES['image']['tmp_name'], $target))

{

 

//Tells you if its all ok

echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";

 

}

else {

 

//Gives and error if its not

echo "Sorry, there was a problem uploading your file.";

}

?>

 

og her er view.php

<?php

// Connects to your Database

mysql_connect("localhost", "brukernavn", "passord") or die(mysql_error());

mysql_select_db("pgrimcen_publisher") or die(mysql_error());

 

//Retrieves data from MySQL

$data = mysql_query("SELECT * FROM publisher") or die(mysql_error());

 

//Puts it into an array

while($info = mysql_fetch_array( $data ));

 

//Outputs the image and other data

Echo "<img src=webadresse".$info['image'] ."> <br>";

Echo "<b>Date:</b> ".$info['date'] . "<br> ";

Echo "<b>Header:</b> ".$info['header'] . " <br>";

Echo "<b>Body:</b> ".$info['body'] . " <hr>";

?>

7649294[/snapback]

 

Du må vise til sti før du printer bilde ut navn, eks hvis du har lagret bildet i images/ må du referere til <img src="images/".$info['image']." />

 

Noe lignende har jeg gjort her: http://nibbler.no/files/gallery/upload.php

Lenke til kommentar
Du må vise til sti før du printer  bilde ut navn, eks hvis du har lagret bildet i images/ må du referere til <img src="images/".$info['image']." />

 

Noe lignende har jeg gjort her: http://nibbler.no/files/gallery/upload.php

7649330[/snapback]

 

Takk for svar, Cruella!

Jeg har en referanse til mappen. Det står i nederste bolk i view.php fila.. (webadresse, det står egentlig webadressen til bildemappa).

 

Problemet er at jeg hverken får fram bildet, eller noe tekst som jeg også la inn i formen. :cry:

Endret av Stressed_out
Lenke til kommentar

Prøv å legge til hvor du vil legge verdiene. Slik har jeg gjort det:

 

$sql = "INSERT INTO publisher (date,header,body,image)   VALUES ( "
       . "'" . $_POST['date'] . "', "
       . "'" . $_POST['header'] . "', "
       . "'" . $_POST['body'] . "', "
       . "'" . $image . "'"
       . ")";

 

Som du ser her trenger du ikke legge verdiene du får fra skjemaet fra forrige side i variabler for så å putte dem i SQL setningen. Her tar vi å legge $_POST variablene direkte i SQL setningen. Ikke at det har noe å si, men er raskere.

Endret av Vampen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...