Avatar billede celfa Nybegynder
26. april 2008 - 18:27 Der er 13 kommentarer og
1 løsning

Skrive til database derefter trække højeste id ud.

Hej. Meningen med dette er:

Jeg skriver til en databse - den del fungere fint.
Databsen benytter auto_increment.
Derfor ville jeg skrive til databasen, og derefter trække det højeste tal ud i id rækken i databasen. Som jeg så ville bruge til at oprette en mappe og en fil med.

Håber der er nogle der kan finde en løsning.

<?php
$host="localhost";
$username="xxx";
$password="xxx";
$db_name="xxx";
$tbl_name="xxx";

mysql_connect("$host", "$username", "$password")or die("Kan ikke forbinde til serveren ");
mysql_select_db("$db_name")or die("Kan ikke forbinde til databasen");
session_start();


$indhold = $_POST['indhold'];
$mintittel = $_POST['mintittel'];
$mindes = $_POST['mindes'];
$minekey = $_POST['minekey'];
$navnlink = $_POST['navnlink'];
$minu = '<a href="index.php?p='.$id.'">-'.$navnlink.'</a>';

$sql="INSERT INTO $tbl_name(title, description, keywords, minu)VALUES('$mintittel', '$mindes', '$minekey', '$minu')";
$result=mysql_query($sql);


$sql = 'SELECT `id` FROM `indhold` ORDER BY `id` DESC LIMIT 0, 30 ';
$idnummeret = $_GET['id'];
//Folder navn fra query string
$_SERVER['QUERY_STRING'];
$navntilmappeogfil = $_GET['id'];
$filnavn = $navntilmappeogfil . ".php";

//sti til den nye mappe
$sti = "/srv/www/vhosts/nytwebsite.dk/httpdocs/indhold/";
//hele stien til den nye mappe
$d = $sti . $navntilmappeogfil;
$a = $d . "/" . $filnavn;

mkdir($d);
chmod($d, 0777);

file_put_contents($a , $indhold);

print "oprettet mapper og fil og skrevet til database.... ".$navntilmappeogfil." hvis du er heldig"

?>
Avatar billede straszek Praktikant
26. april 2008 - 18:49 #1
Hvad er det helt præcist dit problem er?
Avatar billede celfa Nybegynder
26. april 2008 - 18:52 #2
Når jeg skriver nogle af de infos ind i databasen opretter den en ny række.. Med et nyt id. Det id der bliver oprettet skal jeg bruge som variabel til at oprette mappe og fil med.

Kan du følge mig? :)
Avatar billede straszek Praktikant
26. april 2008 - 18:55 #3
brug $lastid=mysql_insert_id(); efter din insert det give id'et på sidst indsatte række
Avatar billede celfa Nybegynder
26. april 2008 - 19:32 #4
Kan du ikke lige prøve at skrive det ind? jeg er ikke 100% med.

på forhånd tak.
Avatar billede celfa Nybegynder
26. april 2008 - 19:36 #5
der er fejl på disse 3 linier også
$minu = '<a href="index.php?p='.$id.'">-'.$navnlink.'</a>';
$idnummeret = $_GET['id'];
$navntilmappeogfil = $_GET['id'];
Avatar billede straszek Praktikant
26. april 2008 - 21:09 #6
du bruger $lastid=mysql_insert_id(); i lige efter din insert, så vil $lastid være lig det id som den sidst indsatte række har fået

Søren
Avatar billede celfa Nybegynder
26. april 2008 - 21:13 #7
Aaarh mange tak :)

Hvordan ville du/i få denne til at fungere
$minu = '<a href="index.php?p='.$id.'">-'.$navnlink.'</a>';

?
Avatar billede straszek Praktikant
26. april 2008 - 21:19 #8
hvad er problemet - den ser fin ud
Avatar billede celfa Nybegynder
26. april 2008 - 21:19 #9
Den siger at id ikke er defineret. Jeg kan ikke se hvordan jeg skal definere id'et når den skal skrives ind i databasen inden vi trækker id'et ud?
Avatar billede straszek Praktikant
26. april 2008 - 21:24 #10
så flytter du bare $minu = '<a href="index.php?p='.$id.'">-'.$navnlink.'</a>'; ned under din insert

Noget i stil med:
$sql="INSERT INTO $tbl_name(title, description, keywords, minu)VALUES('$mintittel', '$mindes', '$minekey', '$minu')";
$result=mysql_query($sql);
$id=mysql_insert_id();

minu = '<a href="index.php?p='.$id.'">-'.$navnlink.'</a>';
Avatar billede celfa Nybegynder
26. april 2008 - 21:29 #11
Den sætter altså ikke noget ind?
Avatar billede celfa Nybegynder
26. april 2008 - 21:31 #12
Undefined variable: minu
Avatar billede celfa Nybegynder
26. april 2008 - 21:32 #13
<?php
$host="localhost";
$username="xxxxxx";
$password="xxxxx";
$db_name="xxxx";
$tbl_name="xxxx";

mysql_connect("$host", "$username", "$password")or die("Kan ikke forbinde til serveren ");
mysql_select_db("$db_name")or die("Kan ikke forbinde til databasen");
session_start();


$indhold = $_POST['indhold'];
$mintittel = $_POST['mintittel'];
$mindes = $_POST['mindes'];
$minekey = $_POST['minekey'];
$navnlink = $_POST['navnlink'];

$sql="INSERT INTO $tbl_name(title, description, keywords, minu)VALUES('$mintittel', '$mindes', '$minekey', '$minu')";
$result=mysql_query($sql);
$idnummeret = mysql_insert_id();
$minu = '<a href="index.php?p='.$idnummeret.'">-'.$navnlink.'</a>';
$filnavn = $idnummeret . ".php";

//sti til den nye mappe
$sti = "/srv/www/vhosts/nytwebsite.dk/httpdocs/indhold/";
//hele stien til den nye mappe
$d = $sti . $idnummeret;
$a = $d . "/" . $filnavn;

mkdir($d);
chmod($d, 0777);

file_put_contents($a , $indhold);

print "oprettet mapper og fil og skrevet til database.... med id nummer: ".$idnummeret." hvis du er heldig"

?>
Avatar billede celfa Nybegynder
07. december 2011 - 17:51 #14
Fik selv løst problemet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester