Mailinglisten-Archive |
also schön leute ! das tut mir echt leid aber das problem ist das ich selbst
nicht 100% verstanden habe wo das problem liegen könnte ! deswegen sind
meine fragen auch so unpräzise...aber gut ein letztes mal...dann lass ich
es!!!
schaut euch bitte mal die WHILE schleife an (ist markiert) und die abfrage
unten drunter!
die while schleife bricht ab immer wenn in der abfrage unten drunter die
nötigen parameter fehlen! weil es in meiner mysql DB keine kreutabellen
gibt! in mysql gibt es auch sowas gar nicht! aber man hat mir gesagt das
problem lässt sich folgendermaßen lössen! ich soll ne
fehlerbehandlungsroutine schreiben und die in der WHILE schleife aufrufen!
Die fehlermeldung soll folgendes tun : sie soll bei bei jeder
Datenbankabfrage,
die nicht ausgeführt werden kann, eine Fehlermeldung in eine Datei schreibt
und zum nächsten Eintrag springen also
die Bearbeitungschleife nicht einfach abbrechen!
DIe while schleife muss irgendwie über die nicht ausführbaren sql abfragen
rüberspringen und eine fehlermeldung ausgeben ! also den zähler irgendwie
auf i= i+2 oder so...
Wenn das immer noch niemand versteht dann tut es mir leid aber besser kann
ich es auch nicht erklären ! sorry für die belästigung!!!!!
#!/usr/bin/php
<?php
//include "connect.php";
include "xclass_calc_date.php";
include_once "xget_email.php";
include_once "update_dealer.php";
include_once "xeskalation_update.php";
//include "xsearch_result.php";
include "Fehlermeldungen.php";
$Z24 = 86400; //24.Stunden
$Z48 = 172800; //48.Stunden
$Z3T = 259200; //3.Tage
$Z14T = 1209600; //14.Tage
//mysql verbindung
$dsn = "mysql://$username:$password@$hostName/$databaseName";
$dbh = DB::connect($dsn);
//eskalationszeiten für offeneleads von händler aus der DB holen
echo $sql = "SELECT es1,
es2
FROM eskalation
WHERE type = 'haendler'";
$sth = $dbh->query($sql);
echo "<br>";
$obd = Fehlermeldungen::fehler_query($sql);
echo $obd;
$obdd = Fehlermeldungen::field_error_eska_trader($sql);
echo $obdd;
echo "<br>";
$obs = Fehlermeldungen::fehler_log_trader($sql);
echo $obs;
echo '<br>';
//DB standart abbruch , falls fehler auftreten
$obd = Fehlermeldungen::db_fehler($sth);
echo $obd;
echo '<br>';
$row = $sth->fetchRow(DB_FETCHMODE_ASSOC);
//offene esk1,2 ausgabe
echo $open1 = $row['es1'];
echo $open2 = $row['es2'];
echo "<br>";
//DB verbindung ende
$dbh->disconnect();
$ob = new class_calc_date;
$i=0;
$offeneLeads = array();
$dsn = "mysql://$username:$password@$hostName/$databaseName";
$dbh = DB::connect($dsn);
//IDs aus DB holen
echo $sql = "SELECT lead.leadid
FROM lead,
leadzuweisung
WHERE status_ LIKE 'OFFEN'
AND (leadzuweisung.to_ LIKE 'Vororthaendler' OR leadzuweisung.to_
LIKE 'Onlinehaendler')
AND (leadzuweisung.leadid = lead.leadid AND
leadzuweisung.Leadstatus = 'OFFEN')";
$sth = $dbh->query($sql);
echo "<br>";
//abfangroutine , falls abfrage nicht ausgeführt wird
$obd = Fehlermeldungen::fehler_query($sql);
echo $obd;
$obs = Fehlermeldungen::fehler_log_trader($sql);
echo $obs;
echo '<br>';
$obdd = Fehlermeldungen::field_error_trader_vb($sql);
echo $obdd;
echo '<br>';
//abfangroutine , DB fehler
$obd = Fehlermeldungen::db_fehler($sth);
echo $obd;
echo '<br>';
$dbh->disconnect();
$xx=1;
//ausgabe LeadIDs
-----------------------------------------------------------------------------------------------------------
while($row = $sth->fetchRow(DB_FETCHMODE_ASSOC))
{
echo "<br>#################################<br>";
echo $offeneLeads[$i++]= $row[leadid];
echo "<br>#################################<br>";
}
foreach($offeneLeads as $lid)
{
$dsn = "mysql://$username:$password@$hostName/$databaseName";
$dbh = DB::connect($dsn);
//sämtliche infos über offeneleads aus der DB holen
//abfrage der Lead die einem VorOrtHänd. & OnlineHänd. zugewiesen wurden
und im status offen stehen.
$sql = "SELECT lead.leadid,
lead.name,
lead.firm,
lead.create_from,
lead.number_refuse,
lead.eska,
leadzuweisung.bid
FROM lead,
leadzuweisung
WHERE status_ LIKE 'OFFEN'
AND (leadzuweisung.to_ LIKE 'Vororthaendler' OR leadzuweisung.to_
LIKE 'Onlinehaendler')
AND (leadzuweisung.leadid = lead.leadid AND leadzuweisung.Leadstatus
= 'OFFEN')
AND lead.leadid = ".$lid."";
-------------------------------------------------------------------------------------------------------------
echo $sql;
$sth = $dbh->query($sql);
echo "<br>";
$obd = Fehlermeldungen::fehler_query($sql);
echo $obd;
echo '<br>';
$obs = Fehlermeldungen::fehler_log_trader($sql);
echo $obs;
echo "<br>";
//DB standart abbruch , falls fehler auftreten
$obd = Fehlermeldungen::db_fehler($sth);
echo $obd;
//DB verbindung ende
$dbh->disconnect();
$xx=1;
$row = $sth->fetchRow(DB_FETCHMODE_ASSOC);
echo $refuse = $row[number_refuse];
//Lead Info ausgabe
echo "-->leaid::".$leadid = $row[leadid];//leadid ausgabe
echo "<br>";
echo "<br>-----------------------------------------<br>";
echo $xx++;
echo "<br>-----------------------------------------<br>";
echo "-->eska_status::".$eska_status = $row['eska'];
echo "<br>";
//from brauche ich um die verschiedenen rückläufe zu smb vb oder infoline
zu steuern.
echo "-->from::".$from = $row[create_from];
echo "<br>";
//liefert die Erstellungszeit vom Lead und die aktuelle Zeit
$val = $ob->get_assigned_date($leadid);
//Berechnung der verstrichenen(vergangene) Zeit
echo "-->lefttime: ".$left_time = $val[1] - $val[0];
echo "<br>";
echo "bid-->".$row[bid];
//funktion zur verschicken der mails zum händler siehe xget_mail.php
$val = get_hd_mail($row[bid]);
echo $mailhd = $val[0];
echo $firmenname = $val[1];
echo $vbid = $val[2];
//funktion zur verschicken der mails zum VB siehe xget_mail.php
$val = get_a_vb_mail($vbid);
echo $mailvb = $val[0];
echo $region = $val[1];
echo $vlid = $val[2];
//funktion zur verschicken der mails zum VL siehe xget_mail.php
echo $val = get_vl_mail($vlid);
echo $mailvl = $val[0];
echo $vlid = $val[1];
//----------------------------------------------------
php::bar PHP Wiki - Listenarchive