mheddaMedlem sedan feb. 2000385 inlägg
Hej!
Jag har gjort ett formulär för inläggning av varor.
Mitt problem är att om jag lägger in en vara med samma namn skall den addera antalet så att den inte skriver ut mjölk två ggr.
Denna kod funkar så länge jag inte lägger in en ny vara. jag har textfält som arrayer från 0-2.
Kod:
$sql="select* from tabell";
$result=mysql_query($sql,$conn)
$i=0;
while(($row=mysql_fetch_array($result))||($i<= 2))
{
$varor=$row["vara"];
$antalen=$row["antal"];
if($i<= 2)
$tempvara=addslashes($vara[$i]);
$tempantal=$antalen+$tempantal;
if($vara==$tempvara)
{
$sql="update osv.."
}
if($vara!=$tempvara)
{
$tempvara=addslashes($vara[$i]);
$tempantal=addslashes($antal[$i]);
}
++$i;
}
Felet verkar vara att den inte går upp och kollar databasen igen när man lägger in en ny vara. Jag har försökt lägga in en sql fråga inne i while loopen men det funkar inte jag är trött.
Hoppas på svar.
WebslaveMedlem sedan maj 2002662 inlägg
Det är ju bara att kolla om varan finns och i så fall köra $vara++ annars så lägger man till den... förutsatt att du har en rad i tabellen som visar antal varor av den sorten
mheddaMedlem sedan feb. 2000385 inlägg
Ursäkta slarvkoden men så här är den ungefär. När jag lägger till tex mjölk, Fläskfile, Tomater så blir vara[0] mjölk vara[1] Fläskfile osv.
När jag sen trycker lägg in i lista för andra gången så känner den av att det är lika varor så då plussar den på antal, villket den gör varje gång jag klickar på lägg till så det funkar men så fort jag ändrar tex mjök till öl så tar den öl och plussar på dom andra
so far so good men lägger jag till ännu en gång så plussar den på antalet för tomater och fläskfilen men öl lägges in två ggr tex öl 2 lit, öl 2lit..
$sql="select* from tabell";
$result=mysql_query($sql,$conn);
$i=0;
while(($row=mysql_fetch_array($result))||($i<= 2))
{
$varor=$row["vara"];
$antalen=$row["antal"];
if($i<= 2)
{
if($vara==$tempvara)
{
$tempvara=addslashes($vara[$i]);
$tempantal=$antalen+$tempantal;
$sql="UPDATE osv..";
$result=mysql_query($sql,$conn)
}
if($vara!=$tempvara)
{
$tempvara=addslashes($vara[$i]);
$tempantal=addslashes($antal[$i]);
$sql="INSERT INTO tabell (vara,antal)
VALUES (\"$tempvara\",\"$tempantal\")";
$result=mysql_query($sql,$conn)
}
}
++$i;
}
Som ni ser så jämför jag databasfält med textfält om dom är lika så skall antal plussas på med textfältets antal och sedan uppdateras den posten annars så lägges posten till som en ny post.
Lite dåligt förklarat kanske men hoppas någon förstår..