Avatar billede flash_g Nybegynder
20. oktober 2005 - 08:18 Der er 3 kommentarer og
1 løsning

Indsætte flere rows via php

I nedennævnte kode henter jeg data fra input tabellen og forsøger så at indsætte en række af gangen i tabellen output. Der bliver indsat en række i tabellen output, men også kun en række.

Jeg modtager en Warning: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource.

Hvad mangler jeg for at indsætte samtlige rækker i output?


$sql_sel = "SELECT id, Item FROM test.input ORDER BY 1";
$result = mysql_query($sql_sel)
or die('Ikke fundet prøv igen');
while ($row = mysql_fetch_array($result)) {
 
  $id = $row["id"];
  $item = $row["item"];
  $sql_ins = "INSERT INTO test.output"
  ."(id, item)"
  ."VALUES($id, '$item')";
  $result = mysql_query($sql_ins)
  or die('Ikke oprettet prøv igen');
}
Avatar billede dmdisco Nybegynder
20. oktober 2005 - 08:23 #1
tror det er fordi du laver $result om i bunden af din while løkke prøv dette

$sql_sel = "SELECT id, Item FROM test.input ORDER BY 1";
$result = mysql_query($sql_sel)
or die('Ikke fundet prøv igen');
while ($row = mysql_fetch_array($result)) {
 
  $id = $row["id"];
  $item = $row["item"];
  $sql_ins = "INSERT INTO test.output"
  ."(id, item)"
  ."VALUES($id, '$item')";
  mysql_query($sql_ins)
  or die('Ikke oprettet prøv igen');
}
Avatar billede nielle Nybegynder
20. oktober 2005 - 08:31 #2
Jeg er ikke helt sikker, men jeg mener at du faktisk kan gøre det hele med en enkelt SQL-kommando:

INSERT INTO test.output (SELECT id, Item FROM test.input)
Avatar billede flash_g Nybegynder
20. oktober 2005 - 08:56 #3
Ja dmdisco du har ret! 100 point coming your way.
Avatar billede dmdisco Nybegynder
20. oktober 2005 - 09:05 #4
svar
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