Ik vraag me af wat sneller is...
veel gegevens in één tabel of verdelen over meerdere tabellen...

ik heb boekingen die ik in de database moet zetten en dan uiteindelijk moet versturen via email...

er gaan online toch wat dingen mis en probeer ik nu alles te optimaliseren zodat één en ander sneller gaat en niet vast loopt...

Het lijkt vast te lopen bij het eind proces waar de data uit de database (meerdere tabellen) gevist word en verstuurd word via email...

gr,'
Auke
bedoel je met veel gegevens veel rijen of veel kolommen?

normaal zou het niet mogen vastlopen toch? of er is foute code
ja... het gaat vaak goed maar soms gaat het mis... en dat is een probleem...

ik heb het over veel kolommen
Tja, ik breek er mijn hoofd over... het is raar dat het fout gaat.. er zijn veel gegevens maar toch... dat moet toch geen probleem zijn...

het lijkt ook mis te gaan op het emailen...
voordeel is dat ik alles direct na elke boekings stap in de database zet. dus de boekingen worden wel geregistreerd... in de laatste stap gaat het mis... de bezoeker krijgt een overzicht te zien van zijn boeking en rond dan de boeking af door definitief te boeken.

Op dat moment wordt de boeking in de bd afgesloten en wordt er een email verstuurd en daar gaat het mis... bezoekers krijgen een witte pagina te zien....

het script plaats verteld de database dat hij defenitief geboekt is en haald dan de data er uit om in een html email te stoppen...

html email... zou dat te traag zijn?
kan ik beter met cookies werken?

ik weet het niet meer...
kan het met de server te maken hebben... gewoon een ... server?

maday, mayday!
Compleet wit? Dus ook de gewone tekst niet...

Wat gebruik je om te mailen (het script),met headers erbij...
@ Auke: kun je een betere probleemomschrijving maken?
ja plaats hier effe het script van de laatste (witte) pagina en het gedeelte waar je mailt, dan kunne we ffe je fout zoeken
oeps.. sorru ik was aan het quoten...
Auke Jongbloed schreef op 11.01.2006 00:16
Oke kom tie:

[php]

function afsluiting( $option, $Itemid, $task, $act, $id, $rid, $maand, $config_Mail_1, $config_Mail_2 ){
global $database;

$sql = "UPDATE ask_boekingen"
."nSET Bekend_Met = '$_POST[bekendmet]', Contact_Via = '$_POST[contactvia]', AddInput = '$_POST[advertentie]', BeursInput = '$_POST[beurs]',"
."n akkoord = 'y'"
."nWHERE id = '$_SESSION[uId]'";

$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return false;
}

// we sturen een email naar twee administrators
// email adressen halen we uit het var bestand.
$sql = "SELECT"
. "nt1.ID, t1.Price_Type, t1.Beg_Season, t1.End_Season, t1.Price_Type_1, t1.Price_Type_2,"
. "nt2.Product_No, t2.Product_Code, t2.PR_Description, t2.Allot_Duration,"
. "nt3.*,"
. "nt4.*"
. "nFROM ask_product_prices AS t1, ask_products AS t2, ask_boekingen AS t3, ask_boekingen_facadres AS t4"
. "nWHERE t1.ID = '$rid' AND t2.Product_No = '$id' AND t3.id = '$_SESSION[uId]' AND t4.id = '$_SESSION[uId]'";

$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return false;
}
$rows = $database->loadObjectList();
$row = $rows[0];
// voor betere verwerking splitsen we het bericht op in de vesrchillende onderdelen
//
// HEADER
$bericht = ""
. "<html> <head> <title>Boekings gegevens</title> </head>"
. "<body>"
. "<table width="100%"> <tr> <td colspan="4"> </td> </tr>";
// REIS GEGEVENS
$bericht .= ""
. "<tr> <th colspan="4">Reis gegevens:</th></tr>"
. "<tr> <td>Product nummer:</td><td>".$row->Product_No."</td><td>Product_Code</td><td>".$row->Product_Code."</td></tr>"
. "<tr> <td>PR_Description</td> <td>".$row->PR_Description."</td> <td> </td> <td> </td> </tr>"
. "<tr> <td>Beg_Season</td> <td>".$row->Beg_Season."</td> <td>End_Season</td> <td>".$row->End_Season."</td> </tr>"
. "<tr> <td>Price_Type</td> <td>".$row->Price_Type."</td> <td> </td> <td> </td> </tr>"
. "<tr> <td>Price_Type_1</td> <td>".$row->Price_Type_2."</td> <td>Price_Type_2</td> <td>".$row->Price_Type_2."</td> </tr>"
. "<tr> <th colspan="4"> </th> </tr>";
// GEWENSTE REIS GEGEVENS
$bericht .= ""
. "<tr> <th colspan="4">Gewenste reisgegevens</th> </tr>"
. "<tr> <td>Vertrekdatum:</td> <td>$row->Reis_Datum</td> <td>Tot / Datum aanvang terugreis</td> <td>$row->End_Reis_Datum</td> </tr>"
. "<tr> <td>Aantal deelnemers</td> <td>$row->Tot_Personen</td> <td> </td> <td> </td> </tr>"
. "<tr> <td>Verlenging:</td> <td>$row->Verlenging</td> <td>Wensen</td> <td>$row->Verl_Opmerk</td> </tr>"
. "<tr> <td colspan="4"> </td> </tr>";
// PERSOONS GEGEVENS DEELNEMER 1
$sql = "SELECT * FROM ask_boekingen_users WHERE id = '$_SESSION[uId]' AND user = '1'";
$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return false;
}
$userRows = $database->loadObjectList();
$userRow = $userRows[0];
$bericht .= ""
. "<tr> <th colspan="4">Persoons gegevens deelnemer 1</th> </tr>"
. "<tr> <td>Achternaam</td> <td>$userRow->Titel $userRow->Achternaam</td> <td>Voornamen</td> <td>$userRow->Voornamen</td> </tr>"
. "<tr> <td>Adres</td> <td>$userRow->Adres</td> <td>Postcode</td> <td>$userRow->Postcode</td> </tr>"
. "<tr> <td>Woonplaats</td> <td>$userRow->Woonplaats</td> <td>Land</td> <td>$userRow->Land</td> </tr>"
. "<tr> <td>Telefoon thuis</td> <td>$userRow->Telefoon_Thuis</td> <td>Telefoon Werk</td> <td>$userRow->Telefoon_Werk</td> </tr>"
. "<tr> <td>Geboorte datum</td> <td>$userRow->Geboorte_Datum</td> <td>Nationaliteit</td> <td>$userRow->Nationaliteit</td> </tr>"
. "<tr> <td>E-mail adres</td> <td>$userRow->Email</td> <td>Paspoort geldigheid</td> <td>$userRow->Paspoort_Datum</td> </tr>"
. "<tr> <td>Dieet gegevens</td> <td>$userRow->Dieet $userRow->Dieet_Anders</td> <td> </td> <td> </td> </tr>";

if($row->Tot_Personen > 1){
// PERSOONS GEGEVENS DEELNEMER 2
$sql = "SELECT * FROM ask_boekingen_users WHERE id = '$_SESSION[uId]' AND user = '2'";
$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return false;
}
$user2Rows = $database->loadObjectList();
$user2Row = $user2Rows[0];
$bericht .= ""
. "<tr> <th colspan="4">Persoons gegevens deelnemer 2</th> </tr>"
. "<tr> <td>Achternaam</td> <td>$user2Row->Titel $user2Row->Achternaam</td> <td>Voornamen</td> <td>$user2Row->Voornamen</td> </tr>"
. "<tr> <td>Adres</td> <td>$user2Row->Adres</td> <td>Postcode</td> <td>$user2Row->Postcode</td> </tr>"
. "<tr> <td>Woonplaats</td> <td>$user2Row->Woonplaats</td> <td>Land</td> <td>$user2Row->Land</td> </tr>"
. "<tr> <td>Telefoon thuis</td> <td>$user2Row->Telefoon_Thuis</td> <td>Telefoon Werk</td> <td>$user2Row->Telefoon_Werk</td> </tr>"
. "<tr> <td>Geboorte datum</td> <td>$user2Row->Geboorte_Datum</td> <td>Nationaliteit</td> <td>$user2Row->Nationaliteit</td> </tr>"
. "<tr> <td>E-mail adres</td> <td>$user2Row->Email</td> <td>Paspoort geldigheid</td> <td>$user2Row->Paspoort_Datum</td> </tr>"
. "<tr> <td>Dieet gegevens</td> <td>$user2Row->Dieet $user2Row->Dieet_Anders</td> <td> </td> <td> </td> </tr>";

if($row-Tot_Personen > 2){
// PERSOONS GEGEVENS DEELNEMER 3
$sql = "SELECT * FROM ask_boekingen_users WHERE id = '$_SESSION[uId]' AND user = '3'";
$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return false;
}
$user3Rows = $database->loadObjectList();
$user3Row = $user3Rows[0];
$bericht .= ""
. "<tr> <th colspan="4">Persoons gegevens deelnemer 3</th> </tr>"
. "<tr> <td>Achternaam</td> <td>$user3Row->Titel $row->Achternaam</td> <td>Voornamen</td> <td>$user3Row->Voornamen</td> </tr>"
. "<tr> <td>Adres</td> <td>$user3Row->Adres</td> <td>Postcode</td> <td>$user3Row->Postcode</td> </tr>"
. "<tr> <td>Woonplaats</td> <td>$user3Row->Woonplaats</td> <td>Land</td> <td>$user3Row->Land</td> </tr>"
. "<tr> <td>Telefoon thuis</td> <td>$user3Row->Telefoon_Thuis</td> <td>Telefoon Werk</td> <td>$user3Row->Telefoon_Werk</td> </tr>"
. "<tr> <td>Geboorte datum</td> <td>$user3Row->Geboorte_Datum</td> <td>Nationaliteit</td> <td>$user3Row->Nationaliteit</td> </tr>"
. "<tr> <td>E-mail adres</td> <td>$user3Row->Email</td> <td>Paspoort geldigheid</td> <td>$user3Row->Paspoort_Datum</td> </tr>"
. "<tr> <td>Dieet gegevens</td> <td>$user3Row->Dieet $user3Row->Dieet_Anders</td> <td> </td> <td> </td> </tr>";

if($row-Tot_Personen > 3){
// PERSOONS GEGEVENS DEELNEMER 4
$sql = "SELECT * FROM ask_boekingen_users WHERE id = '$_SESSION[uId]' AND user = '4'";
$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return false;
}
$user4Rows = $database->loadObjectList();
$user4Row = $user4Rows[0];
$bericht .= ""
. "<tr> <th colspan="4">Persoons gegevens deelnemer 4</th> </tr>"
. "<tr> <td>Achternaam</td> <td>$user4Row->Titel $row->Achternaam</td> <td>Voornamen</td> <td>$user4Row->Voornamen</td> </tr>"
. "<tr> <td>Adres</td> <td>$user4Row->Adres</td> <td>Postcode</td> <td>$user4Row->Postcode</td> </tr>"
. "<tr> <td>Woonplaats</td> <td>$user4Row->Woonplaats</td> <td>Land</td> <td>$user4Row->Land</td> </tr>"
. "<tr> <td>Telefoon thuis</td> <td>$user4Row->Telefoon_Thuis</td> <td>Telefoon Werk</td> <td>$user4Row->Telefoon_Werk</td> </tr>"
. "<tr> <td>Geboorte datum</td> <td>$user4Row->Geboorte_Datum</td> <td>Nationaliteit</td> <td>$user4Row->Nationaliteit</td> </tr>"
. "<tr> <td>E-mail adres</td> <td>$user4Row->Email</td> <td>Paspoort geldigheid</td> <td>$user4Row->Paspoort_Datum</td> </tr>"
. "<tr> <td>Dieet gegevens</td> <td>$user4Row->Dieet $user4Row->Dieet_Anders</td> <td> </td> <td> </td> </tr>";
}
}
}
// FACTUURADRES
$bericht .= ""
. "<tr> <th colspan="4">Factuur adres</th> </tr>"
. "<tr> <td>Achternaam</td> <td>".$row->Titel." ".$row->Achternaam."</td> <td>Voornamen</td> <td>".$row->Voornamen."</td> </tr>"
. "<tr> <td>Adres</td> <td>".$row->Adres."</td> <td>Postcode</td> <td>".$row->Postcode."</td> </tr>"
. "<tr> <td>Woonplaats</td> <td>".$row->Woonplaats."</td> <td>Land</td> <td>".$row->Land."</td> </tr>"
. "<tr> <th colspan="4"> </th> </tr>";

// THUISBLIJVERS
$bericht .= "<tr> <th colspan="4">Thuisblijvers</th> </tr>";

$max = "$row->Tot_Personen";
$ThuisblijverNaam = explode ("|", $row->Thuisblijvers_Naam);
$Thuisblijvertelefoon = explode ("|", $row->Thuisblijvers_Telefoon);
for($i = 0;$i < $max;$i++)
{
$user = $i+1;
$bericht .= ""
. "<tr> <th colspan="4">Voor deelnemer $user</th> </tr>"
. "<tr> <td>Naam</td> <td>$ThuisblijverNaam[$i]</td> <td>Telefoon</td> <td>$Thuisblijvertelefoon[$i]</td> </tr>";
}
// AANVULLENDE OPMERKINGEN
$bericht .= ""
. "<tr> <th colspan="4"> </th> </tr>"
. "<tr> <th colspan="4">Aanvullende opmerkingen of wensen</th> </tr>"
. "<tr> <td colspan="4">$row->Opmerkingen </td> </tr>";
// POLL
$bericht .= ""
. "<tr> <th colspan="4">Vragen m.b.t. tot bekendheid met Askja Reizen</th> </tr>"
. "<tr> <td>Eerder gereisd?</td> <td>$row->Bekend_Met </td> <td> </td> <td> </td> </tr>"
. "<tr> <td>Bekend door:</td> <td>$row->Contact_Via</td> <td>:</td> <td>$row->AddInput $row->BeursInput</td> </tr>";
// FOOTER
$bericht .= "<tr> <th colspan="4"> </th> </tr> </table> </body> </html>";

//
// Versturen aan
$to = ''.$config_Mail_1.'' . ', '; // comma is nodig
$to .= ''.$config_Mail_2.'';
// subject
$subject = 'Boekings aanvraag via askja.nl';
// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "rn";
// Additional headers
$headers .= 'To: Askja Admin1 <'.$config_Mail_1.'>, Askja Admin2 <'.$config_Mail_2.'>' . "rn";
$headers .= 'From: Askja Boekingsengine <[email protected]>' . "rn";

// Verstuur de email
@mail($to, $subject, $bericht, $headers);

// we gooien de geregistreerde gebruiker weg
session_unregister('uId');
session_unregister('stap');
//
// we gaan verder met het afwerken van de boekingen en laten de bezoeker dit weten.
$sql = "SELECT txt"
. "nFROM ask_boekingen_text"
. "nWHERE id = 'afsluiting'";

$database->setQuery($sql);
if(!$database->query()) {
echo $database->stderr();
return false;
}
$rows = $database->loadObjectList();
HTML_Boekingen::boekingEnd( $option, $rows, $maand, $task, $act, $Itemid, $id, $rid );
}[/php]
Ja dat is nogal een boekwerk. Daar heb ik geen zin in.
nee, dat begrijp ik...
tja, het werd gevraagd...

Reageren