Ik heb een bestel scriptje en heb dingen geprobeerd maar kom er niet uit.

er zijn 10 query's en ik wil er nog een toevoegen maar het lukte me niet.

Deze query wil ik nog erbij toevoegen, hij stuurt alleen geen gegevens naar de tabel.
Zou iemand dit voor mij kunnen doen?


        $query            = "INSERT INTO 
                    leden
                    (voornaam,
                    adres,
                    postcode,
                    plaats,
                    email,
                    signupdate)
                    VALUES
                    ('".$naam."',
                    '".$adres."',
                    '".$postcode."',
                    '".$plaats."',
                    '".$email."',
                    '".date("Y-m-d H:i:s")."')";
    $result        = mysql_query($query8) or die (mysql_error());
    $bestellingsID    = mysql_insert_id();


En hier de code


<?php
include('config.php');

if ($_SERVER['REQUEST_METHOD'] == "POST") //als er op submit gedrukt is
{
    extract($_POST); //alle velden ophalen

    $query1            = "INSERT INTO 
                    bestellingen
                    (naam,
                    adres,
                    postcode,
                    plaats,
                    email,
                    datum)
                    VALUES
                    ('".$naam."',
                    '".$adres."',
                    '".$postcode."',
                    '".$plaats."',
                    '".$email."',
                    '".date("Y-m-d H:i:s")."')";
    $result1        = mysql_query($query1) or die (mysql_error());
    $bestellingsID    = mysql_insert_id();
    
    $query2            = "SELECT * FROM winkelwagen WHERE ip = '".$_SERVER['REMOTE_ADDR']."'";
    $result2        = mysql_query($query2) or die (mysql_error());
    
    while ($row2 = mysql_fetch_array($result2))
    {
    $query3            = "INSERT INTO 
                    besteldeproducten
                    (bestellingsID,
                    productID,
                    aantal)
                    VALUES
                    ('".$bestellingsID."',
                    '".$row2['productID']."',
                    '".$row2['aantal']."')";
    $result3        = mysql_query($query3) or die (mysql_error());
    }
    
    //e-mail bericht opstellen
    $bericht         = "Geachte ".$naam.",\n\n";
    $bericht        .= "U heeft uw bestelling succesvol geplaatst\n\n";
    $bericht        .= "Binnen enkele uren zult u een factuur ontvangen\n";
    $bericht        .= "Uw gegevens en bestelling staan hieronder\n";
    $bericht        .= $naam."\n";
    $bericht        .= $adres."\n";
    $bericht        .= $postcode." ".$plaats."\n\n";
    
    $query4            = "SELECT * FROM bestellingen WHERE id=".$bestellingsID;
    $result4        = mysql_query($query4) or die (mysql_error());
    $row4            = mysql_fetch_array($result4);

    $query5            = "SELECT productID,aantal FROM besteldeproducten WHERE bestellingsID = ".$bestellingsID;
    $result5        = mysql_query($query5) or die (mysql_error());
    
    while ($row5 = mysql_fetch_array($result5))
    {    
    $query6            = "SELECT naam,prijs FROM producten WHERE id=".$row5['productID'];
    $result6        = mysql_query($query6) or die (mysql_error());
    $row6            = mysql_fetch_array($result6);
        
    $bericht         .= "Product: ".$row6['naam']."\n";
    $bericht        .= "Prijs: ".number_format($row6['prijs'],2,',','.')."\n";
    $bericht        .= "Aantal: ".$row5['aantal']."\n";
    $bericht        .= "Subtotaal: ".number_format($row6['prijs'] * $row5['aantal'],2,',','.')."\n\n";
    $totaalprijs    += $row6['prijs'] * $row5['aantal'];
    }
    $bericht        .= "Totaal: € ".number_format($totaalprijs,2,',','.');

    //e-mail bericht opstellen
    $bericht2         = "Er is een bestelling geplaatst door de klant ".$naam.",\n\n";
    $bericht2        .= "Hieronder ziet u een overzicht van zijn bestelling\n\n";
    $bericht2        .= "Het adres van deze klant is\n";
    $bericht2        .= $naam."\n";
    $bericht2        .= $adres."\n";
    $bericht2        .= $postcode." ".$plaats."\n\n";
    
    $query7            = "SELECT * FROM bestellingen WHERE id=".$bestellingsID;
    $result7        = mysql_query($query7) or die (mysql_error());
    $row7            = mysql_fetch_array($result7);

    $query9            = "SELECT productID,aantal FROM besteldeproducten WHERE bestellingsID = ".$bestellingsID;
    $result9        = mysql_query($query9) or die (mysql_error());
    
    while ($row8 = mysql_fetch_array($result8))
    {    
    $query10            = "SELECT naam,prijs FROM producten WHERE id=".$row10['productID'];
    $result10        = mysql_query($query10) or die (mysql_error());
    $row10            = mysql_fetch_array($result10);
        
    $bericht2         .= "Product: ".$row10['naam']."\n";
    $bericht2        .= "Prijs: ".number_format($row9['prijs'],2,',','.')."\n";
    $bericht2        .= "Aantal: ".$row9['aantal']."\n";
    $bericht2        .= "Subtotaal: ".number_format($row10['prijs'] * $row9['aantal'],2,',','.')."\n\n";
    $totaalprijs2    += $row9['prijs'] * $row8['aantal'];
    }
    $bericht2        .= "Totaal: € ".number_format($totaalprijs2,2,',','.');

    $headers        = "FROM: ".$from;
    
    //e-mail versturen    
    mail($email,'Uw Bestelling',$bericht,$headers);
    
    mail($emailbestellingen,'Bestelling',$bericht2,$headers);
    
    //winkelwagen leegmaken
    $query10        = "DELETE FROM winkelwagen WHERE ip = '".$_SERVER['REMOTE_ADDR']."'";
    $result10        = mysql_query($query10) or die (mysql_error());
    
    echo('Uw bestelling is geplaatst, u heeft hiervan een bevesting per e-mail ontvangen');

}
else //zolang dat nog niet gedaan is, formulier weergeven
{
    ?>
    <form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
    <table>
    <tr>
        <td>Naam</td>
        <td><input type="text" name="naam" id="naam"></td>
    </tr>
    <tr>
        <td>E-mail</td>
        <td><input type="text" name="email" id="email"></td>
    </tr>
    <tr>
        <td>Adres</td>
        <td><input type="text" name="adres" id="adres"></td>
    </tr>
    <tr>
        <td>Postcode</td>
        <td><input type="text" name="postcode" id="postcode"></td>
    </tr>
    <tr>
        <td>Plaats</td>
        <td><input type="text" name="plaats" id="plaats"></td>
    </tr>
    <tr>
        <td>&nbsp;</td>
        <td><input type="submit" name="submit" id="submit" value="Bestellen"></td>
    </tr>
    </table>
    </form>
<?php
}
?> 
Het is hier geen afhaalchinees....
Zelfde "tip" daarom als in http://www.phphulp.nl/php/forum/topic/contact-formulier-intregeren/98272/
Plaats een vacature (, als je zelf niet wilt verdiepen in deze materie).

Denk dat het overigens efficiënter kan. Als ik het zo snel goed zie voer je sommige querys 2x uit. Waarom?

Je weet dat mysql zijn langste tijd heeft gehad? Gebruik mysqli of pdo.
Je query staat in $query (regel 1), maar je gebruikt $query8 (regel 16)?
Nummers in variabelen ($query4, $row6 etc) zijn altijd de beste ingrediënten voor verwarring. Weet jij nog over 4 weken nog wat $query4 doet?


Noem het gewoon bij wat het doet.

$result_userdetails = mysqli_query(.....);
$userdetails = mysqli_fetch_assoc(....);

Verder kan je op lijn 119 <?php $_SERVER['PHP_SELF'] ?> weglaten. Ten eerste omdat de uitvoer standaard al op dezelfde pagina wordt verwacht, en ten tweede is deze code zinloos omdat je niks echo'd.

En de foutafhandeling kan overigens ook een stuk netter met if-else.
Je zet je sql in $query , en je probeert $query8 uit te voeren. niet zo gek dat het niet werkt

Reageren