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? Varför måste du loopa? 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 ... <b>WHERE ColX=Y OR ColX=Z</b> Det låter som du skall bygg en fråga med WHERE vilkor. Använd IN operatorn som Per nämner. 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. Låter farligt. 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. Javascriptet är ju inte nödvändig, genom att använda det måste man ha javascript aktiverat. Intressant artikel. Det blir visserligen en loop med många insert men en spännande lösning Ännu smartare:insert-loop
mvh
/MichaelSv: insert-loop
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?
Sv:insert-loop
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.Sv: insert-loop
Alternativ: WHERE ColX IN (Y, Z)
Skulle vilja se koden om det går för sig...Sv:insert-loop
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.Sv: insert-loop
tack bådaSv:insert-loop
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.
Sv: insert-loop
Sv:insert-loop
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.Sv: insert-loop
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])" ...
smartSv:insert-loop
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.