Heb nu al zoveel dingen geprobeerd om een update query uit te voeren na een zoekresultaat, maar op de e.o.a. manier wil het niet lukken. op basis van een selectie veld moet het veld 'extra1' in de DB voorzien worden van een waarde uit het select veld. Wil maar niet lukken. Wat zie ik nu over het hoofd????


  
<?php
Error_Reporting(E_ALL); 
    //-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
  if (!@mysql_select_db("********", @mysql_connect("localhost", "********", "********")))
    {
        echo "Er kan geen database connectie gemaakt worden.";
        exit();
    }
?>
<style type="text/css">
<!--
#Layer1 {
        position:absolute;
        width:200px;
        height:115px;
        z-index:1;
        left: 213px;
        top: 77px;
}
-->
</style>
 
<form name="IPC" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
  <p>Kies een nummer om te sluiten. Daarna bevestigen. </p>
  <p>
    <?php
        if(isset($_GET['id']))
{
    $query = "SELECT * FROM ft_form_10 WHERE submission_id = ".$_GET['id'];
        $sql = mysql_query ($query) or die (mysql_error());
while ($row= mysql_fetch_array ($sql)){
$id = $row['submission_id'];
$nr = $row['Serial_Code'];
$hd = $row['Activation_Code'];
$pf = $row['Offer_Code'];
$rt = $row['Expiration_Date'];
$desc = $row['Sales_Code'];
 
 
    }
 
?> 
    <select name="IPC">
    <option>Maak je keuze</option>
    <option value="case">Case</option>
    <option value="afgewezen">Afgewezen</option>
  </select>
<table width="348" border="0" align="center">
  <tr>
    <td><span class="style8">Serienummer</span></td>
    <td>&nbsp;</td>
    <td><?php echo "$nr";?></td>
  </tr>
  <tr>
    <td><span class="style8">Activation_Code</span></td>
    <td>&nbsp;</td>
    <td><?php echo "$hd";?></td>
  </tr>
  <tr>
    <td><span class="style8">ID</span></td>
    <td>&nbsp;</td>
    <td><?php echo "$id";?></td>
  </tr>
    
  </p>
  <table width="213" border="0" align="center">
    <tr>
      <td width="207"><input type="submit" name="knop" value="bevestig" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
    </tr>
  </table>
  <p>&nbsp;</p>
  <p>&nbsp;</p>
  <p><?php
        echo "$sql";
if($_SERVER['REQUEST_METHOD'] == "POST"){
    if(isset($_POST['knop']) != NULL){
        $sql="UPDATE
                        ft_form_10
        SET
            extra1='".$_POST['IPC']."'
        WHERE
            submisson_id='".$id."'";
 
                        
        
        if(!mysql_query($sql)){
           echo 'Er is een fout opgetreden: '.mysql_error();
           }
        else{
          if(mysql_affected_rows() > 1){
           echo 'Er zijn '.mysql_affected_rows().' rijen aangepast.';
           }
          else{
            echo 'Er is 1 rij aangepast.';
                }
            }
        }
    }
        }
        
 
?> 
  </p>
</form>  

Wat gaat er fout? Wat gaat er niet zoals je verwacht had? Krijg je een foutmelding?

Verder mag je nooit $_POST variabelen direct in je queries gebruiken! Die zul je altijd eerst moeten beveiligen met mysql_real_escape_string().
Hij update niets in de DB, dit veld extra1 blijft leeg. Dus de selectie die er gemaakt wordt komt niet aan.
En waar heb jij gecontroleerd of $_POST['IPC'] wel een waarde heeft? Dat doe je nu nog nergens...
Ik had in ieder geval mat echo sql gekeken wat er nu gebeurde. (die staat nu trouwens op een verkeerde plek hoor) maar kreeg geen output.
Dan zul je toch moeten zien te achterhalen waarom die variabele dan leeg is. Bovendien zul je die controle ook echt in je code op moeten nemen, je script zou in dat geval namelijk een foutmelding moeten geven omdat je de query nooit uit zou kunnen voeren...

De opbouw van je HTML code is ook wel een rommeltje. Waarom staat de afhandeling van het formulier ín het formulier zelf? Kortom, ga daar ook eens structuur in aanbrengen.
Offtopic: $sql is geen SQL, maar een resultset. $result ligt dus voor de hand.

Let daar op, debuggen is namelijk een ramp wanneer de namen niet logisch zijn.

Waarom je de variabelen tussen quotes zet, dat is één groot raadsel. Een variabele is tenslotte geen string.
Ja dat is dus net het probleem. Ben hier nu al te lang mee bezig en niemand die het ziet. Wordt er zo langzaam beetje simpel van.
Je bedoelt lui?
Als je je script nu eerst eens gestructureerd op ging bouwen. Dus de logica (PHP) netjes gescheiden van de ouput (HTML) en overal een nette controle van variabelen die je gebruikt. Met name de variabelen die uit een formulier zouden moeten komen...
doe eens een print_r($_POST) en print_r($_GET) en controleer of alles juist is ingevuld

Reageren