Avatar billede pemo123456 Novice
23. april 2011 - 18:21 Der er 6 kommentarer og
1 løsning

Hvordan kalder jeg $row=id med det samme row'en bliver oprettet?

Hej

Jeg sidder og forsøger at lave nogle sider, hvor jeg kan uploade image filer til min side samtidig med at filerne bliver registreret i en mysql db. Opbygningen er således:

Første fil (choose_file.php) vælger jeg hvilke 3 filer, jeg vil uploade via denne form funktion: input name="ufile[]" type="file" id="ufile[]".

Anden fil (upload_file.php) er delt ind i 2 processer: I først bliver de 3 filer uploaded og registreret i databasen med navn, filtype, størrelse og placering. Anden del kalder oplysningerne frem, således at jeg kan se, hvad jeg lige har uploaded med navn, filtype, størrelse og preview af billedet. Hertil virker det godt. Næste del er, at jeg gerne vil have tildelt en beskrivelse til hvert billede. Jeg har derfor under preview af hvert billede en input type="text", hvor jeg kan indtaste de 3 beskrivelser.

Mit problem er herefter, at jeg ikke ved, hvordan jeg kan kalde $row=id frem i anden del af filens script, efter at $row=id er dannet i først del af filen.

Formålet hermed er, at jeg ved udførelse af script i tredje fil kan kæde billedbeskrivelsen sammen med det korrekte billede og dermed placeret i samme row.

Enhver hjælp modtages med stor glæde. :-)
Avatar billede repox Seniormester
23. april 2011 - 19:54 #1
Avatar billede The_Buzz Novice
23. april 2011 - 19:55 #2
Kan du ikke bare køre en "Select id from imageuploads where path = '/var/www/images/path_to_image.jpg'" hvor path vil være unik - i anden del af dit script - så du får det eksisterende database ID (Eller eksisterende database id's
Avatar billede The_Buzz Novice
23. april 2011 - 20:16 #3
<< blondine at jeg ikke tænkte på det repox *skammer mig*
Avatar billede pemo123456 Novice
23. april 2011 - 21:15 #4
Tak for hurtigt svar. Det driller dog stadig lidt. Har nedenstående script til upload af den første fil. Filen bliver uploaded og registreret i databasen, så der er "hul igennem". Men alligevel får jeg fejl på mysqli_insert_id(); delen. Har prøvet at flytte lidt rundt, bl.a. med oprettelse af forskellige forbindelse til databasen og tabellen (er den samme alle information skal i). Men alligevel giver den en fejl. Nedenstående afstedkommer denne fejl: Warning: mysqli_insert_id() expects exactly 1 parameter, 0 given in ... => sti til filen med scriptet (upload_file.php).

Gode forslag modtages gerne.


// Billede 1
$imagename1 = $HTTP_POST_FILES['ufile']['name'][0];
$ftype1 = $HTTP_POST_FILES['ufile']['type'][0];
$fsize1 = $HTTP_POST_FILES['ufile']['size'][0];

$query = mysqli_query($myConnection, "INSERT INTO jtimages (fname, type, size)
        VALUES('$imagename1','$ftype1','$fsize1')") or die (mysqli_error($myConnection));

$lastid1 = mysqli_insert_id();
Avatar billede repox Seniormester
24. april 2011 - 15:46 #5
Husker du at sende forbindelsen med til mysqli_insert_id()?
$lastid1 = mysqli_insert_id($myConnection); 
Avatar billede pemo123456 Novice
24. april 2011 - 15:59 #6
øh ja - troede jeg også jeg havde skrevet, men blev vist lidt sent i går, eftersom jeg nu ser, at dette ikke er modtaget.

Jeg fik det til at virke med denne løsning:

$query = mysqli_query($myConnection, "INSERT INTO myDB (fname, type, size)
        VALUES('$imagename1','$ftype1','$fsize1')") or die (mysqli_error($myConnection));

$lastid1 = (mysqli_insert_id($myConnection));
$_SESSION['imageid1'] = $lastid1;

Det var vistnok det ekstra (og yderste) sæt () som gjorde forskellen. I hvert fald virker det nu som ønsket.

Så mange tak for hjælpen - smid venligst en svar, så er der point på vej. :-)
Avatar billede repox Seniormester
24. april 2011 - 16:04 #7
Jamen, du fik svar her...
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