Ongelma on seuraavanlainen:
Minulla on index-sivu, johon liitetty header ja footer. Käyttäjän valinnan mukaan index-osion keskialueelle avautuu linkeistä eri sivuja - ja kaikki toimii, paitsi sivu jossa jäsen saa päivittää myymiään tuoteryhmiä.
Valittujen ryhmien tallennus menee kantaan ihan oikein (alussa kaikki tiedot on poistettava, koska muuten vanhat tiedot jäävät jäljelle ja päivittäminen ainoastaan lisää ryhmiä)
En saa millään toimimaan oikein sitä, että "Tallenna" -napin painamisen jälkeen käyttäjälle tulisi oikein näkyviin kuittaus siitä että tietojen päivittäminen on onnistunut. Index-sivun rakenne hajoaa jostain syystä täysin. Saattaa olla ihan pienestä kiinni, pitäisi tulostaa koodi paperille, että näkisi sen kokonaisuudessaan toisin kun tässä näytöllä (muste vaan on loppu tulostimesta).
Jonkun mielestä noi checkboxien kantaan viennit on ehkä tehty tyhmästi, mutta niiden pitää jokaisen mennä omalle riville, jotta tuoteryhmien tulostuminen menee oikein.
Näkeekö joku virheeni? (Kiitos etukäteen avusta!)
<?php if(isset($_POST['button'])){ $uid = $user['id']; $tulos = mysql_query("SELECT group_id FROM groups WHERE company_id = '$uid'", $lnk) or die("Virhe tuoteryhmähaussa: ". mysql_error()); while($tulosrivi = mysql_fetch_array($tulos)){ $sql = mysql_query("DELETE FROM groups WHERE company_id = '$uid'", $lnk); } $company_id = $user['id']; if(empty($_POST['group1'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group1']."')",$lnk); } if(empty($_POST['group2'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group2']."')",$lnk); } if(empty($_POST['group3'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group3']."')",$lnk); } if(empty($_POST['group4'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group4']."')",$lnk); } if(empty($_POST['group5'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group5']."')",$lnk); } if(empty($_POST['group6'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group6']."')",$lnk); } if(empty($_POST['group7'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group7']."')",$lnk); } if(empty($_POST['group8'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group8']."')",$lnk); } if(empty($_POST['group9'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group9']."')",$lnk); } if(empty($_POST['group10'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group10']."')",$lnk); } if(empty($_POST['group11'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group11']."')",$lnk); } if(empty($_POST['group12'])){} else { $sql = mysql_query("INSERT INTO {$tbl_groups} (company_id,group_id) VALUES ('".$company_id."','".$_POST['group12']."')",$lnk); } // if(!$sql || mysql_affected_rows($lnk) < 1) // Open('location: failed.php'); // include ("failed.php"); //echo "Tuoteryhmätietoja ei tallennettu.<br />\n"; // else // Open('location: ok.php'); // include ("ok.php"); //echo "Tuoteryhmätietojen tallentaminen onnistui.<br />"; } ?> <?php if($user){ include("update_company_product_information.html"); } else{ echo "Kirjaudu sisään."; } ?>
Se oleellinen osa tuosta koodilistauksestasi lienee tämä:
<?php // pikkuisen muotoiltuna.. if(!$sql || mysql_affected_rows($lnk) < 1) // ilman aaltosulkuja if-ehto vaikuttaa vain ensimmäiseen kohtaan Open('location: failed.php'); // nämä suoritetaan ehdosta riippumatta include ("failed.php"); echo "Tuoteryhmätietoja ei tallennettu.<br />\n"; else // tämä aiheuttanee virheen? Open('location: ok.php'); include ("ok.php"); echo "Tuoteryhmätietojen tallentaminen onnistui.<br />"; ?>
Koko tämä koodihan on pois komentoituna sinulla, joten sekin voi hiukan häiritä toimintaa.. :-)
Edit: Mikä tuo Open-funktio muuten on? Koitin hakea php:n dokumentaatiosta, mutta ei sieltä tuon nimistä näytä löytyvän.
Edit2: Jos Open-funktiota ei ole määriteltynä, niin skripti katkeaa virheilmoitukseen ja jos se on html-muotoinen se voi joskus "kadota" - selain jättää sen piiloon. Html:n seasta se on yleensä suht helppo etsiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.