Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


insert-loop

Postades av 2007-04-04 13:50:22 - Michael Dahlander, i forum mysq, Tråden har 10 Kommentarer och lästs av 1561 personer

Jag kör med php och mysql. Jag har en loop som för varje loop gör en insert i samma tabell. Uppgifter som sparas hämtas från en annan tabell. Problemet är att den klarar två loopar. Om jag väljer fler så avbryts hela sessionen. Samma problem uppstår vid delete. Klarar inte databasen av många insert i samma tabell omedelbart efter varandra? Eller vad är det som händer?

mvh
/Michael


Svara

Sv: insert-loop

Postades av 2007-04-04 14:22:15 - Andreas Hillqvist

Varför måste du loopa?

Kan du inte göra en insert med en SELECT?

INSERT INTO TableName (Col1, Col2, ColN)
SELECT Col1, Col2, ColN
FROM OtherOrSameTableName
WHERE ColX = Y


Detta fungera ju inte om du har herarkier av data.

Kan du inte beskriv hur din data ser ut, vad du vill åstakomma och hur du försöker lösa det?


Svara

Sv:insert-loop

Postades av 2007-04-04 14:46:54 - Michael Dahlander

En kund markerar flera valfria rader (poster) i en listruta. För varje markerad rad skickar jag över uppgifter från en tabell till en annan, just som du beskriver ovan. Jag skulle ju kunna bygga WHERE-satsen i stället för att infoga i varje loop. Så det blir ... WHERE ColX=Y OR ColX=Z ...

Jag har testat att skriva samma kod undervarandra som infogar fem olika poster och det går. Men om loopen gör samma sak så går det inte. Verkligen märkligt och frustrerande. Fattar inget.


Svara

Sv: insert-loop

Postades av 2007-04-04 15:20:55 - Per Persson

<b>WHERE ColX=Y OR ColX=Z</b>

Alternativ: WHERE ColX IN (Y, Z)


Skulle vilja se koden om det går för sig...


Svara

Sv:insert-loop

Postades av 2007-04-04 15:46:54 - Andreas Hillqvist

Det låter som du skall bygg en fråga med WHERE vilkor. Använd IN operatorn som Per nämner.
Oavsett om användaren specifierar dubeltter kommer inte detta påverka och endast poster som finns kommer läggas till. Desutom eker allt med en fråga istället för flera.

Så jag ser ingen fördel att göra det med en loop om du nu kan göra det med en SQL fråga.


Svara

Sv: insert-loop

Postades av 2007-04-04 16:13:52 - Michael Dahlander

Det blir bäst men en IN som ni föreslår. Jag bygger snutten redan i javascriptet, sparar som kaka och php kopplar ihop den med resten av sql-satsen. Funkar bra.

tack båda


Svara

Sv:insert-loop

Postades av 2007-04-04 16:41:51 - Andreas Hillqvist

Låter farligt.

Jag skulle posta ID med ett formulär, antingen som hidden, Checkbutton eller Select kontroller.

<form>
  <select name="id" multiple="multiple">
    <option value="1">AAA</option>
    <option value="2">BBB</option>
    <option value="3">CCC</option>
    <option value="4">DDD</option>
  </select>
</form>

alt.:
<form>
<input type="checkbox" name="id" value="1">
<input type="checkbox" name="id" value="2">
<input type="checkbox" name="id" value="3">
<input type="checkbox" name="id" value="4">
</form>


Loopa igenom dem på servern för att validera att de är id innan man slår samman dem.

Javascript cookie låter som du går över ån efter vatten.


Svara

Sv: insert-loop

Postades av 2007-04-04 18:36:20 - Michael Dahlander

Möjligt jag är lite omständig vet bara inte hur jag tar reda på flera markerade rader på en select på serversidan. javascript använder jag för att loopa igenom vilka rader som är markerade. Om man sedan spara det i en hidden eller kaka har väl ingen betydelse.


Svara

Sv:insert-loop

Postades av 2007-04-04 21:30:30 - Andreas Hillqvist

Javascriptet är ju inte nödvändig, genom att använda det måste man ha javascript aktiverat.

JAg följande när jag googlade:
http://www.weberdev.com/get_example-4012.html

JAg kan inte se att den kollar för SQL inject. Men det verkar som om det är en array med värden som man kan göra en join på efter att man kollat den.


Svara

Sv: insert-loop

Postades av 2007-04-04 22:21:33 - Michael Dahlander

Intressant artikel. Det blir visserligen en loop med många insert men en spännande lösning

Först:
<select name=test[] multiple> (har aldrig känt till att man kan namnge så)

Sedan insert till databasen:
for($i=0;$i<sizeof($_POST["test"]);$i++) {
sql = "insert into tbl_name values ($_POST["test"][$i])" ...

smart


Svara

Sv:insert-loop

Postades av 2007-04-04 22:44:47 - Per Persson

Ännu smartare:

if (count($_POST['test']) > 0) {
    $values = '(' . implode('), (', $_POST['test']) . ')';
    $sql = "INSERT INTO tbl_name VALUES $values";
}


Då behöver du bara skicka en SQL-sats till databasen.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
793
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies