Jag har en webshop i php, är det möjligt att spara kunduppgifter i en excelfil automatiskt.
Ordern + kunduppgifter skickas med epost till vid beställning.
Jag vill att det ska sparas ordnat med namn, adress, epost, telefon etc.
Spara data i excelfil
22 svar · 3 162 visningar · startad av Pelletsteknik
Enklast är kanske att bara spara som textfil eller csv och sedan manuelt kopiera in i excell. Excell har flera funktioner för att kopiera in textfiler beroende på hur textfilerna är formaterade.
Verkad dock möjligt att göra annars:
http://www.google.se/search?q=create+excel+files+with+php
Jag kör PHPExcel sen ett bra tag tillbaka på flera projekt och det är helt otroligt bra. Stöder t.o.m. nya formatet XLSX (men även det gamla Excel5/97) och man kan göra i princip allt med det här som man kan direkt i Excel (formler, diagram osv.).
Kan vara lite knepigt att sätta sig in i det, fast ta en ordentlig titt på de olika exemplen som följer med så går det nog bra.
En ful men enkel lösning om du vill få det att fungera för dig själv är att göra som Aron och spara det i en CSV-fil. Spara den sedan med filändelsen XLS så öppnas den automatiskt som en Excel-fil. Inte världens snyggaste lösning men det fungerar.
Kommer detta att funka, om jag skapar en databas och sedan skriver både till
"order_postforskott_final.php" med form och till databasen längre ned i texten,
"insert_kunder.php">?
Peter
<form onSubmit="return form_validator(this)" action="order_postforskott_final.php" method=post>
<SCRIPT language="JavaScript"><!-- //script hider
function form_validator(f) {
var error="";
if(f.FirstName.value=="") {
error="Förnamn\n";
setBorder(f.FirstName,1);
} else {
setBorder(f.FirstName,0);
}
if(f.LastName.value=="") {
error=error+"Efternamn\n";
setBorder(f.LastName,1);
} else {
setBorder(f.LastName,0);
}
if(f.StreetAddress.value=="") {
error=error+"Adress\n";
setBorder(f.StreetAddress,1);
} else {
setBorder(f.StreetAddress,0);
}
if(f.ZipCode.value=="") {
error=error+"Postnummer\n";
setBorder(f.ZipCode,1);
} else {
setBorder(f.ZipCode,0);
}
if(f.Town.value=="") {
error=error+"Postort\n";
setBorder(f.Town,1);
} else {
setBorder(f.Town,0);
}
if(f.tele.value=="") {
error=error+"Telefon\n";
setBorder(f.tele,1);
} else {
setBorder(f.tele,0);
}
if(f.email.value=="") {
error=error+"E-post adress\n";
setBorder(f.email,1);
} else {
setBorder(f.email,0);
}
if(error) {
alert('Nedanstående fält måste vara ifyllda \\nför att du ska kunna skicka din order:\\n\\n'+error+"\\n");
return false;
} else {
return true;
}
}
function setBorder(t,b) {
if(b) {
t.style.borderColor='#ce0000';
t.style.borderStyle='solid';
t.style.borderWidth='1px';
} else {
t.style.borderColor='';
t.style.borderStyle='';
t.style.borderWidth='';
}
}
// end script hiding --></SCRIPT>
<script LANGUAGE="JavaScript">
function alterError(value) {
if (value\<=0.99) {
newDollars = '0';
} else {
newDollars = parseInt(value);
}
newCent = parseInt((value+.0008 - newDollars)\* 100);
if (eval(newCent) \<= 9) newCent='0'+newCent;
newString = newDollars + '.' + newCent;
return (newString);
}
// showItems in orderform
function showItems() {
index = document.cookie.indexOf("TheBasket");
countbegin = (document.cookie.indexOf("=", index) + 1);
countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
fulllist = document.cookie.substring(countbegin, countend);
subtotal = 0;
subweight = 0;
document.writeln('\<table cellpadding="2" cellspacing="1" border="0"\>');
document.writeln('\<TR\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_qty ?\>\</b\>\</FONT\>\</TD\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_code_no ?\>\</b\>\</FONT\>\</TD\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_item ?\>\</b\>\</FONT\>\</TD\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_price ?\>\</b\>\</FONT\>\</TD\>\<td BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_sub_total ?\>\</b\>\</FONT\>\</td\>\</TR\>');
itemlist = 0;
for (var i = 0; i \<= fulllist.length; i++) {
if (fulllist.substring(i,i+1) == '\[') {
thisitem = 1;
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == '\]') {
itemend = i;
thequantity = fulllist.substring(itemstart, itemend);
itemtotal = 0;
itemtotal = (eval(theprice\*thequantity));
temptotal = itemtotal \* 100;
subtotal = subtotal + itemtotal;
weighttotal = 0;
weighttotal = (eval(theweight\*thequantity));
subweight = subweight + weighttotal;
itemlist=itemlist+1;
document.write('<tr><td align=middle BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+thequantity+'</FONT></td>');
document.writeln('<td BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><a href=item_show.php?code_no='+thenumber+'>'+thenumber+'</A></FONT></td><td align=left BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><a href=item_show.php?code_no='+thenumber+'>'+theitem+'</A></FONT></td><td align=right BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+theprice+'</FONT></td><td align=right BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(itemtotal)+'</FONT></td></tr>');
document.writeln('\<INPUT TYPE="hidden" NAME="quantity'+itemlist+'" VALUE="'+thequantity+'st" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="item'+itemlist+'" VALUE=" '+theitem+'" SIZE="80"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="price'+itemlist+'" VALUE=" '+theprice+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="totalcost'+itemlist+'" VALUE=" '+alterError(itemtotal)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="number'+itemlist+'" VALUE=" '+thenumber+'" SIZE="40"\>');
} else if (fulllist.substring(i,i+1) == '\|') {
if (thisitem==1) theitem = fulllist.substring(itemstart, i);
if (thisitem==2) theprice = fulllist.substring(itemstart, i);
if (thisitem==3) thenumber = fulllist.substring(itemstart, i);
if (thisitem==4) theweight = fulllist.substring(itemstart, i);
thisitem++;
itemstart=i+1;
}
}
totprice = (Math.round(subtotal\*100)/100);
// Fraktkostnad för postpaket enligt postens tabeller
if(subweight\<0.01) {
shipping=\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.01) {
shipping=6.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.02) {
shipping=12.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.10) {
shipping=24.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.25) {
shipping=36.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.50) {
shipping=48.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>1.00) {
shipping=72.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>2.00) {
shipping=150.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>3) {
shipping=175.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>5) {
shipping=225.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>10) {
shipping=275.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>15) {
shipping=320.00+\<?php echo $freight_postforskott ?\>;
}
totalcost = (totprice+shipping);
tax = (Math.round(totalcost\*\<?php echo $add_tax ?\>)/100);
document.writeln('\<tr\>\<td align=right BGCOLOR="#fffff6" colspan=4\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>Totalt\</b\>\</FONT\>\</td\>\<td align=right BGCOLOR="#fffff6"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>'+alterError(totprice)+'\</FONT\>\</td\>\</tr\>');
document.writeln('\<tr\>\<td align=right BGCOLOR="#fffff6" colspan=4\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>Exp.avgift+Frakt\</b\>\</FONT\>\</td\>\<td align=right BGCOLOR="#fffff6"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>'+alterError(shipping)+'\</FONT\>\</td\>\</tr\>');
<?php
if( $add_tax >"0") {
echo ("document.writeln('<tr><td align=right BGCOLOR=\"#fffff6\" colspan=4><font size=\"-2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Moms</b></FONT></td><td align=right BGCOLOR=\"#fffff6\"><font size=\"-2\" face=\"Verdana, Arial, Helvetica, sans-serif\">'+alterError(tax)+'</FONT></td></tr>');") ;
}
?>
document.writeln('\<tr\>\<td align=right BGCOLOR="#fffff6" colspan=4\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>Att betala (inkl. moms) \<?php echo $txt_currency ?\>\</b\>\</FONT\>\</td\>\<td align=right BGCOLOR="#fffff6"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>'+alterError(totalcost+tax)+'\</FONT\>\</td\>\</tr\>');
document.writeln('\<INPUT TYPE="hidden" NAME="totprice" VALUE="'+alterError(totprice)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="total" VALUE="'+alterError(totalcost+tax)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="tax" VALUE="'+alterError(tax)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="shipping" VALUE="'+alterError(shipping\*0.8)+'" SIZE="40"\>');
document.writeln('\</TABLE\>');
}
</script>
<center><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><b><?php echo $txt_order_form ?></B></FONT></center>
<center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Betalning via postförskott</B></FONT></center>
<HR WIDTH=90% size=1 COLOR="#000000">
<CENTER>
<script LANGUAGE="JavaScript">
showItems();
</script></CENTER>
<BR>
<BR>
<form method="post" action="insert_kunder.php">
<CENTER><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2>
<tr BGCOLOR="#E9AF03">
<td colspan=2 bgcolor="#E9AF03"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><B>Kunduppgifter</B></FONT></td>
</tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Företag</FONT></td>
<td><input type=text name="foretag" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Förnamn *</FONT></td>
<td><input type=text name="FirstName" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Efternamn *</FONT></td>
<td><input type=text name="LastName" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td ><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adress *</FONT></td>
<td><input type=text name="StreetAddress" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Postnummer *</FONT></td>
<td><input type=text name="ZipCode" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Postort *</FONT></td>
<td><input type=text name="Town" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Telefon *</FONT></td>
<td><input type=text name="tele" size=25 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mobiltelefon</FONT></td>
<td><input type=text name="cellno" size=25 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-post *</FONT></td>
<td><input type=text name="email" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td valign=top><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Meddelande</FONT></td>
<td><TEXTAREA NAME="meddelande" ROWS=4 COLS=37 WRAP=Physical class="field_orderform"></TEXTAREA></td></tr>
</table>
<table>
<tr><td>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">( * betyder att uppgiften är obligatorisk! )</FONT>
</td></tr>
<TR>
<TD ALIGN=center COLSPAN=2>
<INPUT TYPE=submit NAME=Submit VALUE="Skicka order" class="button">
</TD>
</TR>
</TABLE>
<P>
<P>
</CENTER>
</FORM>
</BODY>
</HTML>
Kommer detta att funka, om jag skapar en databas och sedan skriver både till
"order_postforskott_final.php" med form och till databasen längre ned i texten,
"insert_kunder.php">?
Peter
<form onSubmit="return form_validator(this)" action="order_postforskott_final.php" method=post>
<SCRIPT language="JavaScript"><!-- //script hider
function form_validator(f) {
var error="";
if(f.FirstName.value=="") {
error="Förnamn\n";
setBorder(f.FirstName,1);
} else {
setBorder(f.FirstName,0);
}
if(f.LastName.value=="") {
error=error+"Efternamn\n";
setBorder(f.LastName,1);
} else {
setBorder(f.LastName,0);
}
if(f.StreetAddress.value=="") {
error=error+"Adress\n";
setBorder(f.StreetAddress,1);
} else {
setBorder(f.StreetAddress,0);
}
if(f.ZipCode.value=="") {
error=error+"Postnummer\n";
setBorder(f.ZipCode,1);
} else {
setBorder(f.ZipCode,0);
}
if(f.Town.value=="") {
error=error+"Postort\n";
setBorder(f.Town,1);
} else {
setBorder(f.Town,0);
}
if(f.tele.value=="") {
error=error+"Telefon\n";
setBorder(f.tele,1);
} else {
setBorder(f.tele,0);
}
if(f.email.value=="") {
error=error+"E-post adress\n";
setBorder(f.email,1);
} else {
setBorder(f.email,0);
}
if(error) {
alert('Nedanstående fält måste vara ifyllda \\nför att du ska kunna skicka din order:\\n\\n'+error+"\\n");
return false;
} else {
return true;
}
}
function setBorder(t,b) {
if(b) {
t.style.borderColor='#ce0000';
t.style.borderStyle='solid';
t.style.borderWidth='1px';
} else {
t.style.borderColor='';
t.style.borderStyle='';
t.style.borderWidth='';
}
}
// end script hiding --></SCRIPT>
<script LANGUAGE="JavaScript">
function alterError(value) {
if (value\<=0.99) {
newDollars = '0';
} else {
newDollars = parseInt(value);
}
newCent = parseInt((value+.0008 - newDollars)\* 100);
if (eval(newCent) \<= 9) newCent='0'+newCent;
newString = newDollars + '.' + newCent;
return (newString);
}
// showItems in orderform
function showItems() {
index = document.cookie.indexOf("TheBasket");
countbegin = (document.cookie.indexOf("=", index) + 1);
countend = document.cookie.indexOf(";", index);
if (countend == -1) {
countend = document.cookie.length;
}
fulllist = document.cookie.substring(countbegin, countend);
subtotal = 0;
subweight = 0;
document.writeln('\<table cellpadding="2" cellspacing="1" border="0"\>');
document.writeln('\<TR\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_qty ?\>\</b\>\</FONT\>\</TD\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_code_no ?\>\</b\>\</FONT\>\</TD\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_item ?\>\</b\>\</FONT\>\</TD\>\<TD BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_price ?\>\</b\>\</FONT\>\</TD\>\<td BGCOLOR="#E9AF03"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>\<?php echo $txt_sub_total ?\>\</b\>\</FONT\>\</td\>\</TR\>');
itemlist = 0;
for (var i = 0; i \<= fulllist.length; i++) {
if (fulllist.substring(i,i+1) == '\[') {
thisitem = 1;
itemstart = i+1;
} else if (fulllist.substring(i,i+1) == '\]') {
itemend = i;
thequantity = fulllist.substring(itemstart, itemend);
itemtotal = 0;
itemtotal = (eval(theprice\*thequantity));
temptotal = itemtotal \* 100;
subtotal = subtotal + itemtotal;
weighttotal = 0;
weighttotal = (eval(theweight\*thequantity));
subweight = subweight + weighttotal;
itemlist=itemlist+1;
document.write('<tr><td align=middle BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+thequantity+'</FONT></td>');
document.writeln('<td BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><a href=item_show.php?code_no='+thenumber+'>'+thenumber+'</A></FONT></td><td align=left BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif"><a href=item_show.php?code_no='+thenumber+'>'+theitem+'</A></FONT></td><td align=right BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+theprice+'</FONT></td><td align=right BGCOLOR="#fffff6"><font size="-2" face="Verdana, Arial, Helvetica, sans-serif">'+alterError(itemtotal)+'</FONT></td></tr>');
document.writeln('\<INPUT TYPE="hidden" NAME="quantity'+itemlist+'" VALUE="'+thequantity+'st" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="item'+itemlist+'" VALUE=" '+theitem+'" SIZE="80"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="price'+itemlist+'" VALUE=" '+theprice+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="totalcost'+itemlist+'" VALUE=" '+alterError(itemtotal)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="number'+itemlist+'" VALUE=" '+thenumber+'" SIZE="40"\>');
} else if (fulllist.substring(i,i+1) == '\|') {
if (thisitem==1) theitem = fulllist.substring(itemstart, i);
if (thisitem==2) theprice = fulllist.substring(itemstart, i);
if (thisitem==3) thenumber = fulllist.substring(itemstart, i);
if (thisitem==4) theweight = fulllist.substring(itemstart, i);
thisitem++;
itemstart=i+1;
}
}
totprice = (Math.round(subtotal\*100)/100);
// Fraktkostnad för postpaket enligt postens tabeller
if(subweight\<0.01) {
shipping=\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.01) {
shipping=6.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.02) {
shipping=12.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.10) {
shipping=24.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.25) {
shipping=36.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>0.50) {
shipping=48.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>1.00) {
shipping=72.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>2.00) {
shipping=150.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>3) {
shipping=175.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>5) {
shipping=225.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>10) {
shipping=275.00+\<?php echo $freight_postforskott ?\>;
}
if(subweight\>15) {
shipping=320.00+\<?php echo $freight_postforskott ?\>;
}
totalcost = (totprice+shipping);
tax = (Math.round(totalcost\*\<?php echo $add_tax ?\>)/100);
document.writeln('\<tr\>\<td align=right BGCOLOR="#fffff6" colspan=4\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>Totalt\</b\>\</FONT\>\</td\>\<td align=right BGCOLOR="#fffff6"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>'+alterError(totprice)+'\</FONT\>\</td\>\</tr\>');
document.writeln('\<tr\>\<td align=right BGCOLOR="#fffff6" colspan=4\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>Exp.avgift+Frakt\</b\>\</FONT\>\</td\>\<td align=right BGCOLOR="#fffff6"\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>'+alterError(shipping)+'\</FONT\>\</td\>\</tr\>');
<?php
if( $add_tax >"0") {
echo ("document.writeln('<tr><td align=right BGCOLOR=\"#fffff6\" colspan=4><font size=\"-2\" face=\"Verdana, Arial, Helvetica, sans-serif\"><b>Moms</b></FONT></td><td align=right BGCOLOR=\"#fffff6\"><font size=\"-2\" face=\"Verdana, Arial, Helvetica, sans-serif\">'+alterError(tax)+'</FONT></td></tr>');") ;
}
?>
document.writeln('\<tr\>\<td align=right BGCOLOR="#fffff6" colspan=4\>\<font size="-2" face="Verdana, Arial, Helvetica, sans-serif"\>\<b\>Att cument.writeln('\<INPUT TYPE="hidden" NAME="totprice" VALUE="'+alterError(totprice)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="total" VALUE="'+alterError(totalcost+tax)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="tax" VALUE="'+alterError(tax)+'" SIZE="40"\>');
document.writeln('\<INPUT TYPE="hidden" NAME="shipping" VALUE="'+alterError(shipping\*0.8)+'" SIZE="40"\>');
document.writeln('\</TABLE\>');
}
</script>
<center><font size="5" face="Verdana, Arial, Helvetica, sans-serif"><b><?php echo $txt_order_form ?></B></FONT></center>
<center><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>Betalning via postförskott</B></FONT></center>
<HR WIDTH=90% size=1 COLOR="#000000">
<CENTER>
<script LANGUAGE="JavaScript">
showItems();
</script></CENTER>
<BR>
<BR>
<form method="post" action="insert_kunder.php">
<CENTER><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=2>
<tr BGCOLOR="#E9AF03">
<td colspan=2 bgcolor="#E9AF03"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><B>Kunduppgifter</B></FONT></td>
</tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Företag</FONT></td>
<td><input type=text name="foretag" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Förnamn *</FONT></td>
<td><input type=text name="FirstName" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Efternamn *</FONT></td>
<td><input type=text name="LastName" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td ><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adress *</FONT></td>
<td><input type=text name="StreetAddress" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Postnummer *</FONT></td>
<td><input type=text name="ZipCode" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Postort *</FONT></td>
<td><input type=text name="Town" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Telefon *</FONT></td>
<td><input type=text name="tele" size=25 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Mobiltelefon</FONT></td>
<td><input type=text name="cellno" size=25 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td><font size="2" face="Verdana, Arial, Helvetica, sans-serif">E-post *</FONT></td>
<td><input type=text name="email" size=35 class="field_orderform"></td></tr>
<tr BGCOLOR="#fffff6">
<td valign=top><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Meddelande</FONT></td>
<td><TEXTAREA NAME="meddelande" ROWS=4 COLS=37 WRAP=Physical class="field_orderform"></TEXTAREA></td></tr>
</table>
<table>
<tr><td>
<font size="2" face="Verdana, Arial, Helvetica, sans-serif">( * betyder att uppgiften är obligatorisk! )</FONT>
</td></tr>
<TR>
<TD ALIGN=center COLSPAN=2>
<INPUT TYPE=submit NAME=Submit VALUE="Skicka order" class="button">
</TD>
</TR>
</TABLE>
<P>
<P>
</CENTER>
</FORM>
</BODY>
</HTML>
Jag har skapat en databas i SQL, det fungerar.
Men hur ska jag göra för att den inte ska lagra samma kund flera ggr?
Går det att jämföra tex förnamn, efternamn och postnr?
// skriver information till den angivna tabellen
$nykund = mysql_query("INSERT INTO Kunder (kundnr, foretag, fname, lname, street, city, telno, cellno, email)
VALUES('$_POST[kundnr]','$_POST[foretag]','$_POST[fname]','$_POST[lname]','$_POST[street]','$_POST[city]','$_POST[telno]','$_POST[cellno]','$_POST')")
Jag har skapat en databas i SQL, det fungerar.
Men hur ska jag göra för att den inte ska lagra samma kund flera ggr?
Går det att jämföra tex förnamn, efternamn och postnr?// skriver information till den angivna tabellen
$nykund = mysql_query("INSERT INTO Kunder (kundnr, foretag, fname, lname, street, city, telno, cellno, email)
VALUES('$_POST[kundnr]','$_POST[foretag]','$_POST[fname]','$_POST[lname]','$_POST[street]','$_POST[city]','$_POST[telno]','$_POST[cellno]','$_POST')")
Eh.. Varje ny kund få väll ett eget unikt kundnummer, enda gången en kund läggs in är ju vid nyregistrering av kunder. Beror på vem som lägger in kunderna men man nyregistrerar ju en kund endast en gång och kollar helt enkelt om den finns med innan.
Att kräva att dom har t.ex. unika namn kan ställa till problem beroende på vad som menas med en kund i sammanhanget, det är vanligt att ett företag kan behöva registrera flera kunder för olika avdelningar, förenkla deras hantering av fakturor eller dylikt osv.
Databasen uppdateras automatiskt, man behöver inte vara reggad för att handla i shopen, jag gillar inte det.
Det är mitt kundregister som uppdateras vid varje köp, så därför när det är samma kund vill jag inte att det läggs in på nytt.
Det borde gå att jämföra.
Peter
Databasen uppdateras automatiskt, man behöver inte vara reggad för att handla i shopen, jag gillar inte det.
Det är mitt kundregister som uppdateras vid varje köp, så därför när det är samma kund vill jag inte att det läggs in på nytt.
Det borde gå att jämföra.
Peter
Vad då automatiskt? MAGI?
Beroende på vad det är för sorts shop så borde du kanske se till att mna logar in innan man kan handla.
Varför uppdatera kundregistret vid varje köp? Låter som mega dumt om det är ett KUNDREGISTER.
Du borde kanske gå tillbax till planeringsstadiet detta verkar inte helt genomtänkt. Har du gjort nån modell innan du hoppade in i databasdesignen? Har du nån krav/design spec. till shopen?
Du behöver bara säga att du inte vet, jag vill ha det på detta sätt.
Jag kan inte själv, det är därför jag frågar.
Jag är ute efter att jämföra uppgifterna i registret, för att inte lagra samma uppgifter.
Jag har en MySQL databas som uppgifterna lagras i,
// skriver information till den angivna tabellen
$nykund = mysql_query("INSERT INTO Kunder (kundnr, foretag, fname, lname, street, city, telno, cellno, email)
VALUES('$_POST[kundnr]','$_POST[foretag]','$_POST[fname]','$_POST[lname]','$_POST[street]','$_POST[city]','$_POST[telno]','$_POST[cellno]','$_POST')")
Är det någon som vet om det går att göra något här?
Peter
Ok lös det hur du vill. Här har du lite vägledning:
http://weblogs.sqlteam.com/mladenp/archive/2007/09/13/SQL-Server-The-proper-and-fastest-way-to-check-if.aspx
http://blogs.msdn.com/b/miah/archive/2008/02/17/sql-if-exists-update-else-insert.aspx
Håller med aron du är inne på fel spår.
Jag har skapat en databas i SQL, det fungerar.
Men hur ska jag göra för att den inte ska lagra samma kund flera ggr?
Går det att jämföra tex förnamn, efternamn och postnr?
Självklart går det, titta på php's if sats, sedan är det bara att jämföra vad användare knappar in och vad som står i databasen.
Nackdelen är att du inte har någon kontroll på att det är samma kund som kommer tillbaka och beställer igen, hindras enklast med inloggning.
Kunden måste skriva exakt samma varje gång för att uppfattas som samma kund. (ex. enagången skriver man postnummret 123 45 nästa 12345 vilket blir två kunder).
Har du inloggning så kan användaren själv gå in och ändra sina uppgifter när man ex. flyttar utan att det blir en ny användare (man behåller sin historik mm.)
Jag kan hålla på i oändlighet att rabbla upp fördelar med inloggning men du gör som du vill. Jag personligen skulle nog inte handla hos någon där det inte fanns inloggning och att jag varje gång måste knappa in min information var jag bor.
Jag behöver inte kontroll på om det är samma kund, jag har det har på annat sätt.
Det måste gå att jämföra med viss likhet?
Tex om det matchar till 70%.
Kunderna kanske bara handlar 1-2 ggr/år, då gör det inget att man fyller i uppgifterna, istället för att ha glömt lösenordet.
// skriver information till den angivna tabellen
$nykund = mysql_query("INSERT INTO Kunder (kundnr, foretag, fname, lname, street, postno, city, telno, cellno, email)
VALUES('$_POST[kundnr]','$_POST[foretag]','$_POST[fname]','$_POST[lname]','$_POST[street]','$_POST[postno]','$_POST[city]','$_POST[telno]','$_POST[cellno]','$_POST')")
Går det inte att göra något med detta?
Peter
Jag behöver inte kontroll på om det är samma kund, jag har det har på annat sätt.
Det måste gå att jämföra med viss likhet?
Tex om det matchar till 70%.
Kunderna kanske bara handlar 1-2 ggr/år, då gör det inget att man fyller i uppgifterna, istället för att ha glömt lösenordet.Går det inte att göra något med detta?
Peter
Vad är du ute efter egentligen? Om du följer länkarna jag postade ser du hur du ska göra för att kolla om det finns nån kund med liknade värden i databasen redan och kan välja att göra olika saker beroende om den finns eller inte.
Jag har en del formulär jag vill kolla germaner och versaler, det borde gå att använda detta.
Men hur anropar jag detta, så att den kollar alla kolumner, tex fname, lname, city etc.
Peter
<?php
function Formatname($name=NULL)
{
if (empty($name))
return false;
$name = strtolower($name);
$name = preg_replace("\[\\-\]", " - ",$name); // Surround hyphens with our delimiter so our strncmp is accurate
if (preg_match("/^\[a-z\]{2,}$/i",$name)) // Simple preg_match if statement
{
$names_array = explode(' ',$name); // Set the delimiter as a space.
for ($i = 0; $i \< count($names_array); $i++)
{
if (strncmp($names_array\[$i\],'mc',2) == 0 \|\| ereg('^\[oO\]\\'\[a-zA-Z\]',$names_array\[$i\]))
{
$names_array\[$i\]\[2\] = strtoupper($names_array\[$i\]\[2\]);
}
$names_array\[$i\] = ucfirst($names_array\[$i\]);
}
$name = implode(' ',$names_array);
$name = preg_replace("\[ \\- \]", "-",$name); // Remove the extra instances of our delimiter
return ucwords($name);
}
}
?>
Jag har en del formulär jag vill kolla germaner och versaler, det borde gå att använda detta.
Kolla om det är stora och små bokstäver och göra vad? Du kan göra kollen innan det skrivs in i databasen med php (http://www.w3schools.com/php/php_ref_string.asp) eller så jobbar du mot databasen.
Och vänligen indentera kod och använd kod-taggen när du postar så kanske någon orkar läsa det :D
Det är många kunder som bara använder
gemener i sina kontaktuppgifter, istället för att jag ska ändra det.
Jag vill att det ändras i filen.
<?php
function Formatname($name=NULL)
{
if (empty($name))
return false;
$name = strtolower($name);
$name = preg_replace("[\-]", " - ",$name); // Surround hyphens with our delimiter so our strncmp is accurate
if (preg_match("/^[a-z]{2,}$/i",$name)) // Simple preg_match if statement
{
$names_array = explode(' ',$name); // Set the delimiter as a space.
for ($i = 0; $i < count($names_array); $i++)
{
if (strncmp($names_array[$i],'mc',2) == 0 || ereg('^[oO]\'[a-zA-Z]',$names_array[$i]))
{
$names_array[$i][2] = strtoupper($names_array[$i][2]);
}
$names_array[$i] = ucfirst($names_array[$i]);
}
$name = implode(' ',$names_array);
$name = preg_replace("[ \- ]", "-",$name); // Remove the extra instances of our delimiter
return ucwords($name);
}
}
?>
Så här har jag gjort innan det lagras i databasen.
// tar bort mellanrum innan och efter
$_POST['kundnr'] = trim($_POST['kundnr']);
$_POST['foretag'] = trim($_POST['foretag']);
$_POST['fname'] = trim($_POST['fname']);
$_POST['lname'] = trim($_POST['lname']);
$_POST['street'] = trim($_POST['street']);
$_POST['city'] = trim($_POST['city']);
$_POST['telno'] = trim($_POST['telno']);
$_POST['cellno'] = trim($_POST['cellno']);
$_POST['email'] = trim($_POST['email']);
// ändrar alla bokstäver till gemener
$_POST['foretag'] = strtolower($_POST['foretag']);
$_POST['fname'] = strtolower($_POST['fname']);
$_POST['lname'] = strtolower($_POST['lname']);
$_POST['street'] = strtolower($_POST['street']);
$_POST['city'] = strtolower($_POST['city']);
// ändrar första bokstaven till versal innan det läggs i tabellen
$_POST['foretag'] = ucfirst($_POST['foretag']);
$_POST['fname'] = ucfirst($_POST['fname']);
$_POST['lname'] = ucfirst($_POST['lname']);
$_POST['street'] = ucfirst($_POST['street']);
$_POST['city'] = ucfirst($_POST['city']);
// gör versal av det första tecknet i varje sträng
$_POST['foretag'] = ucwords($_POST['foretag']);
$_POST['fname'] = ucwords($_POST['fname']);
$_POST['lname'] = ucwords($_POST['lname']);
$_POST['street'] = ucwords($_POST['street']);
$_POST['city'] = ucwords($_POST['city']);
// skriver information till den angivna tabellen
$nykund = mysql_query("INSERT INTO Kunder (kundnr, foretag, fname, lname, street, postno, city, telno, cellno, email)
VALUES('$_POST[kundnr]','$_POST[foretag]','$_POST[fname]','$_POST[lname]','$_POST[street]','$_POST[postno]','$_POST[city]','$_POST[telno]','$_POST[cellno]','$_POST[email]')")
?>
Denna funktion vill jag använda, så att ifylld text visas rätt när jag får den i min mail.
Hur gör man för att anropa denna funktion?
Jag skickar filen order_postforskott.php
<?php
//FUNCTION
function ucname($string) {
$string =ucwords(strtolower($string));
foreach (array('-', '\'') as $delimiter) {
if (strpos($string, $delimiter)!==false) {
$string =implode($delimiter, array_map('ucfirst', explode($delimiter, $string)));
}
}
return $string;
}
?>
<?php
//TEST
$names =array(
'JEAN-LUC PICARD',
'MILES O\'BRIEN',
'WILLIAM RIKER',
'geordi la forge',
'bEvErly CRuSHeR'
);
foreach ($names as $name) { print ucname("{$name}\n"); }
//PRINTS:
/*
Jean-Luc Picard
Miles O'Brien
William Riker
Geordi La Forge
Beverly Crusher
*/
?>
You can add more delimiters in the for-each loop array if you want to handle more characters.