Avatar billede starf Nybegynder
03. januar 2015 - 16:50 Der er 11 kommentarer og
1 løsning

inset data i mysql, fra array i hver sin række

Hvis jeg har et array der indeholder en række id numrer, og jeg ønsker hver af disse insat i en mysql række, hvordan gøres det lettest?

f.eks.:


$list = implode(",", $idlist);

$sql="INSERT INTO firmaprodukt (id, dato)
VALUES
('$list',NOW())";

rinter jeg list, vil den give mig data på følgende måde:
94,309,324,327

er der en let måde at gøre dette?
Avatar billede jakobdo Ekspert
03. januar 2015 - 19:09 #1
$list = implode(",", $idlist);

foreach($list as $id){
  $sql="INSERT INTO firmaprodukt (id, dato) VALUES ($id,NOW())";
  //Forbind til mysql.
  //Execute $sql
}
Avatar billede starf Nybegynder
03. januar 2015 - 19:46 #2
tak.

Hvis man så har 2 arrays (ikke et multidirectional selv om det sikkert havde været smartere)

array 2 indeholder en navne liste. som i den række følge de kommer i passer til id numrene.

$navn = navn1, navn2, navn3 osv osv.

$sql="INSERT INTO firmaprodukt (id,navn, dato)
VALUES
('$list','$navn',NOW())";

de vil altid indeholde lige mange så første id passer til første navn osv osv.

Er det muligt?
Avatar billede jakobdo Ekspert
03. januar 2015 - 20:01 #3
$list = implode(",", $idlist);
$navn = implode(",", $navnlist);

foreach($list as $key => $id){
  $sql="INSERT INTO firmaprodukt (id, navn, dato) VALUES ($id,$navn[$key], NOW())";
  //Forbind til mysql.
  //Execute $sql
}

Sådan måske?
Avatar billede starf Nybegynder
03. januar 2015 - 20:16 #4
får bare

Warning: Invalid argument supplied for foreach()
Avatar billede jakobdo Ekspert
03. januar 2015 - 20:26 #5
Så gør du noget forkert. :o)
Avatar billede starf Nybegynder
03. januar 2015 - 22:35 #6
Syntes ellers det er taget direkte over fra dig af, more or less.

if ($abnlist !== '') {

$list = implode(",", $idlist);
$navn = implode(",", $navnlist);


foreach($list as $key => $id){

$sql="INSERT INTO fp (id, navn,dato)
VALUES
($id,$navn[$key],NOW())";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "indhold er tilføjet...";

}
} else {
    echo "ingen abn fornyelser";
   
}
Avatar billede starf Nybegynder
03. januar 2015 - 23:16 #7
du må gerne smide et svar jeg har fået det til at virke :)
Avatar billede jakobdo Ekspert
03. januar 2015 - 23:52 #8
Svar
Avatar billede starf Nybegynder
04. januar 2015 - 00:05 #9
tak for hjælpen. du glemte svar
Avatar billede showsource Seniormester
04. januar 2015 - 06:37 #10
Man kan også nøjes med èn INSERT for flere rækker:

$id = array(1,2,3,4);
$navn = array("juhu","jups","jeps","jowjow");
$vals = array();
foreach($id as $key => $nr) {
$vals[] = "(".$nr.",'".$navn[$key]."',NOW())";
}

$str = "INSERT INTO tabel (id, dato) VALUES ".implode(",", $vals);
echo $str;
Avatar billede jakobdo Ekspert
04. januar 2015 - 07:52 #11
Prøver igen
Avatar billede jakobdo Ekspert
05. januar 2015 - 08:16 #12
Takker for point.
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

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