i nedenstående tabel har jeg brug for at indstætte en variabel (antal) , som sætter X antal records ind i min database. Jeg har ingen problemer med at indsætte en enkelt men hvordan sætter jeg den til at indsætte X antal ind?
Tabel: ini int(11) Nej auto_increment uge varchar(80) Nej bruger varchar(79) Nej type varchar(89) Nej
Jeg har prøvet mig lidt frem og det ser desværr ikke ud til at virke. Det skal være på den måde at "ini" er den eneste som for en ny værdi.(auto_increment) mens x antal laver en løkke. uge,bruger,type står i formularen som et "hidden field" og allerede har en værdi. PS: Jeg er stadigvæk lidt grøn. (ikke dum tror jeg nok!!)
// begin Recordset $query_Recordset1 = "SELECT * FROM hit"; $Recordset1 = $config->SelectLimit($query_Recordset1) or die($config->ErrorMsg()); $totalRows_Recordset1 = $Recordset1->RecordCount(); // end Recordset
// rebuild the query string by replacing pageNum and totalRows with the new values $queryString_news = KT_removeParam("&" . $HTTP_SERVER_VARS['QUERY_STRING'], "pageNum_news"); $queryString_news = KT_replaceParam($queryString_news, "totalRows_news", $totalRows_news);
//keep all parameters except bruger_id KT_keepParams('bruger_id');
Har lige lagt hele siden på, håber der er en som sidder med guld kornet!!
Synes godt om
Slettet bruger
25. juni 2005 - 17:05#8
Måske er det bare mig, der er forvirret, men hvis du skal indsætte mere end et sæt data, hvor kommer de andre sæt så fra? Den formular har jo kun et sæt.
Det må være fordi jeg har brugt dreamweaver til at lave koden i, den fjerner desværre ikke alt når man så fjerner noget bagefter.
Synes godt om
Slettet bruger
25. juni 2005 - 17:44#10
Nu tror jeg nok, jeg fangede, hvad du er ude efter. Ret mig, hvis jeg tager fejl.
1) din tabel har de 4 værdier: ini, bruger,uge og type
2) det er meningen at værdien ini skal indeholde antallet af gange, som den specifikke bruger har sendt formularen i en uge.
3) du ønsker IKKE at oprette en ny række i tabellen, hvis der allerede findes en med samme bruger, uge og type. Så skal ini bare tælles op med 1 i stedet.
Hvis jeg har ret, så skal ini ikke være en autoincrement, men bare en almindelig int. Derudover skal du vistnok sætte bruger, uge og type tilsammen til at være primary key, og så kan du bruge REPLACE INTO i stedet for INSERT.
1) rigtig 2) rigtig 3) jeg ønsker at opretten en ny række i tabellen med en unik 'ini', 'uge', 'bruger' og type, der er ingen probelmer med de sidste 3 parameter.
jeg har allerede lavet systemet hvor man kan trykke submit knap og så får jeg det ønskede ind "en" gang, men nu har jeg brug for at kunne lave det samme med x antal 'ini' enten ved selv at skrive hvor mange eller vælge dette ved en drop down menu.
Desværre kan jeg ikke sige at jeg har fået det til at virke. Jeg har prøvet utallige forsøg uden held. Det er dog lykkes mig nu at lave siden på en måde hvor jeg ikke får fejl på den ene eller den anden måde. Men den lægger kun en ny record ind så løkken virker ikke efter hensigten.
Lægger lige hele koden frem igen, du kan måske gennemskue hvad der er galt.
// begin Recordset $query_Recordset1 = "SELECT * FROM hit"; $Recordset1 = $config->SelectLimit($query_Recordset1) or die($config->ErrorMsg()); $totalRows_Recordset1 = $Recordset1->RecordCount(); // end Recordset
//PHP ADODB document - made with PHAkt 2.6.2 //PHP ADODB document - made with PHAkt 2.6.2?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
Du skal - lige som i mit eksempel - sætte starten af SQL-strengen før løkken, og derefter huske at bruge .= inde i løkken, ikke bare = (For ellers overskriver du den tidligere udgave af strengen).
Eller, hvis du absolut vil udføre et kald til databasen for hver gennemgang af løkken, så din databaseserver ikke keder sig (dårlig ide), så skal du sørge for at SQL-koden bliver udført inde i løkken.
Hint: Hvad gør følgende?
for($x=0;$x<2;$x++) echo 'Hej'; echo ' med dig';
Og hvad med
for($x=0;$x<2;$x++) { echo 'Hej'; echo ' med dig'; }
// begin Recordset $query_Recordset1 = "SELECT * FROM hit"; $Recordset1 = $config->SelectLimit($query_Recordset1) or die($config->ErrorMsg()); $totalRows_Recordset1 = $Recordset1->RecordCount(); // end Recordset
//PHP ADODB document - made with PHAkt 2.6.2 //PHP ADODB document - made with PHAkt 2.6.2?> <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head>
Den skulle nu gerne skrive "HejHej med dig" - altså to gange "Hej" men kun en gang "med dig".
Jeg glemte, at der skal komma mellem parenteserne med data. Ret
$insertSQL .= sprintf("(%s, %s, %s)",
Til
$insertSQL .= sprintf("(%s, %s, %s),",
Og så skal der lige en linie til at fjerne det overflødige sidste komma, når løkken er færdig. Denne linie skal indsættes efter } og før selve kaldet til databasen.
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.