Avatar billede danco Nybegynder
14. oktober 2009 - 01:52 Der er 23 kommentarer og
1 løsning

Loade flere Mysql queries

Hejsa alle guruer :)

Jeg sidder og arbejder på et projekt for øjeblikket. Men her er jeg løbet ind i problem.

Jeg har behov for at få min php kode til at købe flere Mysql queries igennem. Det er af typen INSERT.

Grunden til at det skal være flere queries er at jeg har en tabel hvor jeg skal indsætte rækkerne manuelt. Så der er en række med hver deres ugedag i en kolonne. Så derfor skal jeg bruge en form for løkke struktur.

Håber min spørgsmål er nogenlunde forståeligt og ikke mindst muligt at løse :)
Avatar billede Gudiik Nybegynder
14. oktober 2009 - 01:57 #1
kan du ikke bare lave mysql_query("INSERT INTO"); 2 gange i træk?.
Forstår ikke helt dit spørgsmål :(
Avatar billede arne_v Ekspert
14. oktober 2009 - 02:01 #2
Kald din mysql_query inden i en løkke ??
Avatar billede danco Nybegynder
14. oktober 2009 - 02:09 #3
Okay, jeg forsøger at omformulere.

Hvad jeg normalt ville gøre for at løse det her problem ville være som følger:

INSERT INTO tabel_navn (1, cell1, cell2, mandag);
INSERT INTO tabel_navn (2, cell1, cell2, tirsdag);
INSERT INTO tabel_navn (3, cell1, cell2, onsdag);
INSERT INTO tabel_navn (4, cell1, cell2, torsdag);
INSERT INTO tabel_navn (5, cell1, cell2, fredag);
INSERT INTO tabel_navn (6, cell1, cell2, lordag);
INSERT INTO tabel_navn (7, cell1, cell2, sondag);

Det er mit behov. Desværre virker det ikke at bare skrive mine queries sådan.

arne ; Jeg var nået frem til den konklusion at jeg skulle bruge en form for løkke, men kan du prøve at smide et eksempel på hvad du mener ?
Avatar billede Gudiik Nybegynder
14. oktober 2009 - 02:19 #4
<?
for($i = 0; $i < 10; $i++) {
mysql_query("INSERT INTO tabel_navn BLABLA");
}
?>

Dette vil den kører igennem 10 gange, det kan du bare ændre ved at ændre tallet.
Avatar billede danco Nybegynder
14. oktober 2009 - 02:27 #5
Gudikk ;

Den almindelige for løkke har været i mine tanker, men det ændre jo ikke rigtig ved det faktum at jeg har behov for 7 FORSKELLIGE rækker, dvs. rækker hvor 'dag' kolonnen er forskellig. Og efter min ringe viden om for løkker så gør den det samme hvor eneste gang, dvs. at jeg ikke kan programmere mig ud af problemet.
Avatar billede arne_v Ekspert
14. oktober 2009 - 02:34 #6
noget a la;

$dage = array('Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn');
for($i = 0; $i < 1000; $i++) {
  mysql_query('INSERT INTO tabel_navn VALUES(' . ($i + 1) . ',' . $cell1 . ',' . $cell2 . ",'" . $dage[$i % 7] . "')");
}

tilret selv med variabel navne og '' hvis streng.
Avatar billede showsource Seniormester
14. oktober 2009 - 10:00 #7
lidt a'la arne: ( utestet !!! )

$dage = array("Man", "Tir", "Ons", "Tor", "Fre", "Lør", "Søn");

$values = array();

$sql = "INSERT INTO tabel VALUES ";


for($i = 0; $i < 7; $i++) {
$values[] = "(".($i+1).", cell1, cell2, ".$dage[$i].")";
}

$sql .= implode(", ", $values);

echo $sql;

Og så kør query i stedet for echo
Avatar billede danco Nybegynder
17. oktober 2009 - 00:11 #8
Hejsa alle,

Undskyld min lange svartid. Men jeg har haft mange andre ting over hovedet.

arne ;
Jeg går med dit eksempel, det kan jeg overskue :)

Men når jeg skal have min kode til at køre INSERT til 2 forskellige tabeller hvordan kan jeg så køre den du har lavet, og samtidig gennemløbe en anden.

:)
Avatar billede arne_v Ekspert
17. oktober 2009 - 03:59 #9
Hvad skal du indsætte i den anden tabel?
Avatar billede danco Nybegynder
17. oktober 2009 - 11:34 #10
Okay jeg tror det må være tid til en forklaring af funktionaliteten i min kode :)

Jeg har en kode som opretter en bruger til tabellen (users), det er ganske simpelt, den indsætter bare data i en række. Når det er gjort skal den indsætte de 7 rækker i en anden tabel (kalender). På den måde smider den data ind i 2 forskellige tabeller i et og samme script.
Avatar billede arne_v Ekspert
18. oktober 2009 - 03:31 #11
Ja.

først en INSERT i users

så en for løkke som laver 7 x INSERT i calendar
Avatar billede danco Nybegynder
18. oktober 2009 - 05:32 #12
Arne;

Kunne du prøve at give et eksempel , jeg er ikke sikker på jeg forstår hvordan det skulle kunne løse problemet ?
Avatar billede arne_v Ekspert
18. oktober 2009 - 16:57 #13
Det passer af da perfekt med beskrivelsen i #10.

mysql_query("...");
for($i = 0; $i < 7; $i++) {
  mysql_query("...");
}
Avatar billede arne_v Ekspert
02. november 2009 - 02:46 #14
danco ?
Avatar billede danco Nybegynder
02. november 2009 - 08:20 #15
Ja jeg undskylder mine lange svartider.
Men det skyldes at jeg ikke kan få det til at virke med den for løkke.

Og ej heller får jeg nogle fejlmeddeleser, den indsætter bare ikke i databasen.
Avatar billede arne_v Ekspert
08. november 2009 - 04:43 #16
smid nogle:
  or die(mysql_error())
på !
Avatar billede danco Nybegynder
08. november 2009 - 11:54 #17
Jeg har det her kode, og det virker tilsyneladende ikke.

mysql_query("INSERT into brugere VALUES ('$ran','$brugernavn', '$password', '$email')");
for($i = 0; $i < 7; $i++) {
  mysql_query("INSERT into kalender kalender VALUES('$id','$bruger', '$overskrift', '$indhold', '$i')");
}

Så bruger jeg $i som "dag" dvs. 1=mandag 2=tirsdag osv.
Avatar billede arne_v Ekspert
08. november 2009 - 13:59 #18
kalender kalender ??
Avatar billede danco Nybegynder
08. november 2009 - 18:31 #19
Ja undskyld, det er en lige en lille skrivefejl.
Det er den slags ting der sker når man ikke er hjemme og dermed ikke kan tilgå filer :).

men der skulle naturligvis kun stå kalender én gang.
Avatar billede arne_v Ekspert
08. november 2009 - 21:48 #20
Hvordan ser den kode som ikke virker ud?

Helst copy paste!
Avatar billede danco Nybegynder
08. november 2009 - 22:51 #21
mysql_query("INSERT into brugere VALUES ('$ran','$brugernavn', '$password', '$email')");
for($i = 0; $i < 7; $i++) {
  mysql_query("INSERT into kalender VALUES('$id','$brugernavn', '$overskrift', '$indhold', '$i')");
}
Her en direkte copy paste.

$overskrift og $indhold henter jeg fra min input form, ligesom alle andre variable.
Avatar billede arne_v Ekspert
08. november 2009 - 22:58 #22
prøv så lige med:

mysql_query("INSERT into brugere VALUES ('$ran','$brugernavn', '$password', '$email')") or die(mysql_error());
for($i = 0; $i < 7; $i++) {
  mysql_query("INSERT into kalender VALUES('$id','$brugernavn', '$overskrift', '$indhold', '$i')") or die(mysql_error());
}
Avatar billede danco Nybegynder
08. januar 2010 - 14:10 #23
Hejsa,
jeg undskylder at jeg har glemt jer herinde.
men jeg har fundet en bedre måde at løse mit problem på.

Men brugeren der kom tættest på at besvare dette spørgsmål må jeg sige er Arne_v. Så Arne, gider du smide svar, så får du naturligvis point
Avatar billede arne_v Ekspert
08. januar 2010 - 15:11 #24
OK
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