Har en liten fråga ang. en webshop jag bygger just nu. Men har fastnat där jag ska lägga in alla produkter man vill beställa i databasen. Själv INSERT koden alltså... Såhär loopar jag ut alla produkter och så får man välja antalet också.
<?
$SQL = mysql_query("SELECT * FROM products order by product_name") or die (mysql_error());
?>
<form action="forms/product.php" action="method">
<input type="hidden" name="query" value="buy">
<? while($objRS = mysql_fetch_array($SQL)) { ?>
<?=$objRS['product_name']?> - <?=$objRS['price']?> kr || Antal: <select name="<?=$objRS[id]?>">
<option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option>
</select><br>
<? } ?>
<input type="submit" value="Beställ">
</form>
Produkternas tabell ser ut såhär:
id
product_name
price
Har inte skapat någon tabell för var alla saker man ska köpa hamnar, tänkte att det får ingå i "tipset" . Vore verkligen skoj om någon kunde hjälpa mig med detta eftersom det är till mitt lilla projektarbete i 3an.
Kommit en bit på vägen men pID (produktID:et) blir alltid den första produkten... det sparas alltså tre stycken punkter i databasen (antalet produkter) med samma värden.
<?
$SQL = mysql_query("SELECT Count(id) AS iCount FROM products") or die (mysql_error());
$objN = mysql_fetch_array($SQL);
$SQL = mysql_query("SELECT * FROM products order by product_name") or die (mysql_error());
?>
<form action="forms/product.php" method="post">
<input type="hidden" name="nmr_of_products" value="<?=$objN['iCount']?>">
<input type="hidden" name="query" value="buy">
<? while($objRS = mysql_fetch_array($SQL)) { ?>
<input type="hidden" name="pID" value="<?=$objRS[id]?>"><?=$objRS['product_name']?> - <?=$objRS['price']?> kr || Antal: <select name="products">
<option>0</option><option>1</option><option>2</option><option>3</option><option>4</option><option>5</option><option>6</option>
</select><br>
<? } ?>
Bordsnummer: <input type="text" name="tbl_nmr" size="3"><br>
<input type="submit" value="Beställ">
</form>
Sen insertkoden ser ut såhär:
for ($i = 1; $i<= $_POST['nmr_of_products']; $i++) {
$SQL = "INSERT INTO products_buy (pID, nmr_of_products, tbl_nmr) VALUES ($_POST[pID],'$_POST[products]','$_POST[tbl_nmr]')";
mysql_query($SQL) or die (mysql_error());
}
Varför funkar inte pID:et? Ser inte vad felet ligger...
Hjälp snälla!
Hur som helst så låg inte felet där... den vill inte ta tre stycken unika poster utan kör tre stycken lika dana (första produktID:et och antalet produkter blir samma i alla tre poster(tre produkter).