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