mheddaMedlem sedan feb. 2000385 inlägg Hej på er!
Jag har ett litet enkelt problem tror jag för er iallafall.
Men för mig står det still.
Jag får in en sträng som jag lägger i en array och sedan
lägger in i en databas inga problem.
$Message="user area plats sort antal";
$MessageArray = explode(" ", $Message);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray[3]);
$antal=addslashes($MessageArray[4]);
Men nu ska denna strängen kunna ha fler sorter samt antal med
avskiljare semikolon ; och det skall läggas in i databasen
user area plats sort antal
och sen om det finns det semikolon
user area plats sort antal
Så man måste väl loopa igenom och kolla semikolon och sedan lägga in
user area plats sort antal
på nytt men med ny sort och antal tills det inte finns några semikolon kvar
Någonting med for eller while kanske det känns som mitt huvud står still.
$Message="user area plats ;sort antal ;sort antal;";
$MessageArray = explode(" ", $Message);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray[3]);
$antal=addslashes($MessageArray[4]);
Finns det någon som kan hjälpa en stillastående hjärna :-)
Tack på förhand MVH hedda
SnakesMedlem sedan okt. 2004392 inlägg Skriv in strängen du vill ändra.. i detta fall:
$Message="user area plats ;sort antal ;sort antal;";
Och skriv in hur resultatet ska bli och inte bara
$sort=addslashes($MessageArray[3]);
mheddaMedlem sedan feb. 2000385 inlägg Tack för svaret.
Men hur menar du?
Jag hänger inte med riktigt:-0
Litet exempel kanske.
Det står still..
SnakesMedlem sedan okt. 2004392 inlägg Så ser det ut nu :
$Message="user area plats ;sort antal ;sort antal;";
$MessageArray = explode(" ", $Message);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray[3]);
$antal=addslashes($MessageArray[4]);
Min fråga är hur vill du att varje string ha för värde? alltså vad ska $sort ha för värde? och vad ska $antal ha för värde?
mheddaMedlem sedan feb. 2000385 inlägg När den påträffar semikolon så skall den skriva in värdet sort i sort och antal i antal
det skall läggas in i databas
ex. insert user area plats sort antal
och om det är semikolon runt ;sort antal;sort antal
ex rut areaRut storvreten bröd 30;mjölk 16
så ska den lägga in
insert rut areaRut storvreten bröd 30
insert rut areaRut storvreten mjölk 16
så det blir samma sträng fram till user area plats
men med värdena efter semikolon
$Message="user area plats ;sort antal ;sort antal;";
$MessageArray = explode(" ", $Message);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray[3]);
$antal=addslashes($MessageArray[4]);
Hoppas du förstår min kanske röriga förklaring.
Tackar på förhand
MVH hedda
SnakesMedlem sedan okt. 2004392 inlägg Tack, nu fattar jag.
$CountSort1 = explode(";", $Message);
$CountSort2 = count($CountSort1);
for($i=0;$i<$CountSort2;$i++){
$CountSort3 = $i + 1;
$MessageArray = explode(" ", $CountSort1[0]);
$MessageArray2 = explode(" ", $CountSort1[$CountSort3]);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray2[0]);
$antal=addslashes($MessageArray2[1]);
// här sätter du dem i databasen och [B]INTE[/B] utanför for:en
}
mheddaMedlem sedan feb. 2000385 inlägg Väldigt mycket tack för svaren Snakes.
Jag kollade om det funkade men fick error.
Notice: Undefined offset: 1 in c:\inetpub\wwwroot\Test\smsTest.php on line 15
Notice: Undefined offset: 3 in c:\inetpub\wwwroot\Test\smsTest.php on line 9
Notice: Undefined offset: 1 in c:\inetpub\wwwroot\Test\smsTest.php on line 15
Med koden:
$Message="user area plats ;sort antal ;sort antal;";
$CountSort1 = explode(";", $Message);
echo $CountSort2 = count($CountSort1);
for($i=0;$i<$CountSort2;$i++){
$CountSort3 = $i + 1;
$MessageArray = explode(" ", $CountSort1[0]);
/*RAD 9*/ $MessageArray2 = explode(" ", $CountSort1[$CountSort3]);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray2[0]);
/*RAD 15*/ $antal=addslashes($MessageArray2[1]);
// här sätter du dem i databasen och INTE utanför for:en
}
Jag skall kolla vad det kan vara.
Ha det bra
mheddaMedlem sedan feb. 2000385 inlägg Så här hade jag tänkt mig exempel1 är om man bara vill rapportera en sort och ett antal.
Exempel2 är om man vill rapportera flera sorter och antal.
/*exempel1.*/ $Message="user area plats sort antal ";
/*exempel2.*/ $Message="user area plats sort antal ;sort antal;sort antal";
$CountSort1 = explode(";", $Message);
echo $CountSort2 = count($CountSort1);
for($i=0;$i<$CountSort2;$i++){
$CountSort3 = $i + 1;
$MessageArray = explode(" ", $CountSort1[0]);
/*RAD 9*/ $MessageArray2 = explode(" ", $CountSort1[$CountSort3]);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray2[0]);
/*RAD 15*/ $antal=addslashes($MessageArray2[1]);
// här sätter du dem i databasen och INTE utanför for:en
}
SnakesMedlem sedan okt. 2004392 inlägg Det är så att du måste lägga en ; så före varje sort:
$Message="user area plats ;sort antal";
$Message="user area plats ;sort antal;sort antal;sort antal";
Men jag tänker testa och se vad som händer...
SnakesMedlem sedan okt. 2004392 inlägg Det här funkar bara perfekt hos mig :e
/*exempel1.*/ $Message="rut areaRut storvreten ;bröd 30";
/*exempel2.*/ $Message="rut areaRut storvreten ;bröd 30;mjöl 50;mjölk 63"; //[U][B]INGA[/B][/U] mellanslag mellan [B][U];[/B][/U]
// om du behåller denna struktur så borde det funka BARA bra
$CountSort1 = explode(";", $Message);
$CountSort2 = count($CountSort1);
for($i=1;$i<$CountSort2;$i++){
$MessageArray = explode(" ", $CountSort1[0]);
$MessageArray2 = explode(" ", $CountSort1[$i]);
$user=addslashes($MessageArray[0]);
$area= addslashes($MessageArray[1]);
$plats=addslashes($MessageArray[2]);
$sort=addslashes($MessageArray2[0]);
$antal=addslashes($MessageArray2[1]);
// här sätter du dem i databasen och INTE utanför for:en
}
Exempel 1 printa ut:
rut areaRut storvreten bröd 30
Exempel 2 printa ut:
rut areaRut storvreten bröd 30
rut areaRut storvreten mjöl 50
rut areaRut storvreten mjölk 63
Det var väl så du ville eller?
mheddaMedlem sedan feb. 2000385 inlägg Det är lysande tack igen.
Det funkar ju.
Det ända var att jag hade tänkt att om man inte
har fler än en sort antal.
/*exempel1.*/ $Message="rut areaRut storvreten bröd 30";
alltså inget semikolon före bröd så det är bara om man har fler man hänger på semikolon
/*exempel2.*/ $Message="rut areaRut storvreten bröd 30;mjöl
50;mjölk 63";
MVH hedda
SnakesMedlem sedan okt. 2004392 inlägg Funkar det inte så eller? Ska jag göra om scriptet? vad menar du?
REDIGERAT: Om allt är bra kolla på min signatur! Annars så kan jag gärna hjälpa till!
mheddaMedlem sedan feb. 2000385 inlägg Det funkar med
/*exempel1.*/ $Message="rut areaRut storvreten ;bröd 30";
Men inte med
/*exempel1.*/ $Message="rut areaRut storvreten bröd 30";
Alltså utan något semikolon.
Då visas ingenting.
MVH hedda
SnakesMedlem sedan okt. 2004392 inlägg aa kan du inte lägga in ett semi kolon om det är inte fler än 1 eller? är det ett problem för dig? eller?
mheddaMedlem sedan feb. 2000385 inlägg Hoppas du förstår det är så att strängen som kommer nu är:
/*exempel1.*/ $Message="rut areaRut storvreten bröd 30";
Så jag tänkte att den fortfarande skall kunna skickas, men
att det nu även skall finnas alternativet:
/*exempel2.*/ $Message="rut areaRut storvreten bröd 30;mjöl 50;mjölk 63";
Så att dom inte skall behöva ändra det befintliga alternativet med
/*exempel1.*/ $Message="rut areaRut storvreten ;bröd 30";
Med semikolon före bröd som dom är vana att skicka utan semikolon när dom bara skall skicka en sort och ett antal.
MVH hedda
SnakesMedlem sedan okt. 2004392 inlägg /*exempel1.*/ $Message="rut areaRut storvreten bröd 30";
/*exempel2.*/ $Message="rut areaRut storvreten bröd 30;mjöl 50;mjölk 63"; //[U][B]INGA[/B][/U] mellanslag mellan [B][U];[/B][/U]
// om du behåller denna struktur så borde det funka BARA bra
$Message2=$Message;
$MessageArray = explode(" ", $Message);
$utansemi = $MessageArray[3];
$medsemi = ";".$MessageArray[3];
$Message = str_replace($utansemi, $medsemi, $Message2);
$CountSort1 = explode(";", $Message);
$CountSort2 = count($CountSort1);
for($i=1;$i<$CountSort2;$i++){
$MessageArray2 = explode(" ", $CountSort1[0]);
$MessageArray3 = explode(" ", $CountSort1[$i]);
$user=addslashes($MessageArray2[0]);
$area= addslashes($MessageArray2[1]);
$plats=addslashes($MessageArray2[2]);
$sort=addslashes($MessageArray3[0]);
$antal=addslashes($MessageArray3[1]);
// här sätter du dem i databasen och INTE utanför for:en
}
Exempel 1 printa ut:
rut areaRut storvreten bröd 30
Exempel 2 printa ut:
rut areaRut storvreten bröd 30
rut areaRut storvreten mjöl 50
rut areaRut storvreten mjölk 63
Så där ja.....
Men kom ihåg att det INTE ska vara några mellanslag mellan semikolon:en :
bröd 30;mjöl 50;mjölk 63
och inte:
bröd 30; mjöl 50; mjölk 63
Det var nog bara det....
mheddaMedlem sedan feb. 2000385 inlägg Du är guld värd det funkar perfekt..
Tack en gång till.
Jag tror jag måste träna på loopar och logiskt tänkande.
Det finns kanske någon bra looptränarsida men har inte sett någon logiktänkarsida.
Det är tur att man har snakes då..
MVH hedda
SnakesMedlem sedan okt. 2004392 inlägg Inga problem, om du får mer problem då är det bara att skriva ett inlägg här i webForum
Juste, kan du vara snäll och markera tråden som löst så att det blir enklare för andra wf:are som har samma problem som du!