Avatar billede superb Nybegynder
24. marts 2008 - 17:39 Der er 9 kommentarer og
1 løsning

Sætte array ind i mysql db

Jeg har nedenstående kode som jeg ikke kan få til at virke, nogen der har nogle bud til hvad der kan være galt?
$lines = file('booksforlife.dk/test.txt');
foreach ($lines as $line_num => $line) {
$pieces = explode("\t", $line);
$udvid = $pieces[0];
$kursusid = $pieces[1];
$kursusnavn = $pieces[2];
$navn = $pieces[3];
$mail = $pieces[4];
$nfurl = $pieces[5];

$shop[] = array(    'udvid' => $udvid,
            'kursusid' => $kursusid,
                    'kursusnavn' => $kursusnavn,
            'navn' => $navn,
                    'mail' => $mail,
            'nfurl' => $nfurl
                                          );
}

echo count($shop);

con_db();
for ($i=0,$j=count($shop); $i<$j; $i++) {
$query = "INSERT INTO kurser (kursusid,navn, mail) VALUES ($shop[$i]['kursusid'],$shop[$i]['navn'],$shop[$i]['mail'])";
mysql_query ($query) or die (mysql_error());
echo $shop[$i]['udvid'];
}
?>

Derudover ville jeg gerne kunne sende en mail hvor jeg bruger database resultaterne, jeg har prøvet nedenstående men det virker ikke.
  con_db();
$query = mysql_query("SELECT * FROM kurser");
while ($data = @mysql_fetch_array($query)){
echo ("<br>");
mail($data[mail],'Ang'.$data[kursusid],$data[kursusnavn]);
}
Avatar billede jakobdo Ekspert
24. marts 2008 - 17:52 #1
Får du nogle SQL fejl eller bliver der bare ikke indsat noget ?
Avatar billede superb Nybegynder
24. marts 2008 - 17:59 #2
jeg får en mysqlfejl
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'udvid']')' at line 1
Avatar billede superb Nybegynder
24. marts 2008 - 18:02 #3
ups der skal stå
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '['kursusid'],Array['navn'],Array['mail'])' at line 1
Avatar billede jakobdo Ekspert
24. marts 2008 - 18:06 #4
Ret: $query = "INSERT INTO kurser (kursusid,navn, mail) VALUES ($shop[$i]['kursusid'],$shop[$i]['navn'],$shop[$i]['mail'])";
til:
$query = "INSERT INTO kurser (kursusid,navn, mail) VALUES ('".$shop[$i]['kursusid']."','".$shop[$i]['navn']."','".$shop[$i]['mail']."')";
Avatar billede superb Nybegynder
24. marts 2008 - 18:22 #5
Tusind tak, det var lige hvad der manglede, ved du så evt også hvad jeg skal gøre for at få det med mail funktionen til at virke?
Jeg får bare en blank side når jeg bruger nedenstående, og er der evt. en smartere måde at gøre det på når man skal sende 200-300 mails?
require('config.php')
con_db();
$query = mysql_query("SELECT * FROM kurser");
while ($data = @mysql_fetch_array($query)){
mail($data[mail],'Ang'.$data[kursusid],$data[kursusnavn]);
echo "mail sendt";
}
Avatar billede jakobdo Ekspert
24. marts 2008 - 18:53 #6
Prøv denne:

<?php
require('config.php')
con_db();
$query = mysql_query("SELECT * FROM kurser");
while ($data = @mysql_fetch_array($query)){
    mail($data['mail'],'Ang: '.$data['kursusid'],$data['kursusnavn']);
    echo 'Email sendt til: ' . $data['mail'] . '<br />';
    flush();
}
?>

Måske den virker.
Og ellers skal du nok overveje: phpmailer()
Den kan forbinde direkte til en smtp-server og smide en masse emails afsted.
Avatar billede superb Nybegynder
05. april 2008 - 16:57 #7
ups du må undskylde jeg først svarer nu, har haft travlt med eksamenslæsning, det var lige hvad jeg manglede. Tusind tak, smid et svar og du får dine point
Avatar billede jakobdo Ekspert
05. april 2008 - 18:07 #8
Svar!
Avatar billede superb Nybegynder
07. april 2008 - 17:05 #9
Perfekt, tak igen
Avatar billede jakobdo Ekspert
07. april 2008 - 18:36 #10
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
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