Jeg er igang med at bygge et lille faktureringssystem... Men det har voldet mig lidt problemer.
Jeg er nu kommet til et sted, hvor jeg skal have en liste over alle domænerne ud, selvom der kun er skrevet en faktura på enkelte af domænerne.
Koden:
// Vi skifter til DK navne i måneder mysql_query("SET lc_time_names = 'da_DK'"); // Array bestående af domæner der ikke skal have faktura i dette system $notInSystem = array('lamour-webshop.dk','qubix.dk','looni.dk','l-amour.dk','byenserotikshop.dk','byens-erotikshop.dk','thomas.e-cms.dk','techsite.dk','bsd-box.dk','test.dk','dansite.dk'); // Hent domæner fra PSA $getDomainsQuery = mysql_query("SELECT id,cr_date,name,cl_id,p_type,p_pay FROM psa.domains WHERE name NOT IN ('". implode("','", $notInSystem) ."')",$link0) or die (mysql_error()); print "<table border=\"1\" cellpadding=\"6\" cellspacing=\"0\" class=\"importTable\">"; print "<tr>"; print "<th>Oprettet</th>"; print "<th>Domæne</th>"; print "<th>Klient ID</th>"; print "<th>Produkt</th>"; print "<th>Betalingsperiode</th>"; print "<th>Senest faktureret</th>"; print "<th>Forfaldsdato</th>"; print "<th>Næste faktura</th>"; print "</tr>"; while ($getDomainsRow = mysql_fetch_array($getDomainsQuery, MYSQL_ASSOC)) { // Find forbindelsen til klienten $getClientQuery = mysql_query("SELECT cname,pname FROM psa.clients WHERE id = ".$getDomainsRow['cl_id']."",$link0) or die(mysql_error()); $getClientRow = mysql_fetch_array($getClientQuery, MYSQL_ASSOC); // Find produktet til domænet $getProductsQuery = mysql_query("SELECT p_name FROM pleskcrm.products_dansite WHERE p_type_id = ".$getDomainsRow['p_type']."",$link1); $getProductsRow = mysql_fetch_array($getProductsQuery, MYSQL_ASSOC); // Find det højeste ID der passer til klienten i fakturaerne $findNewestInvoice = mysql_fetch_array(mysql_query("SELECT MAX(id) as NewestInvoiceID FROM pleskcrm.invoices WHERE cl_id = ".$getDomainsRow['cl_id']." GROUP BY cl_id", $link1), MYSQL_ASSOC) or die(mysql_error()); // Find div info omkring fakturering $getInvoiceInfoQuery = mysql_query("SELECT invoiceDate, DATE_FORMAT(DATE_ADD(invoiceDate, INTERVAL 8 DAY), '%e. %M %Y') AS duePay, DATE_ADD(invoiceDate, INTERVAL paymentTerm MONTH) as nextInvoice FROM pleskcrm.invoices WHERE id = ".$findNewestInvoice['NewestInvoiceID']." GROUP BY cl_id", $link1) or die(mysql_error()); $getInvoiceInfoRow = mysql_fetch_array($getInvoiceInfoQuery, MYSQL_ASSOC) or die(mysql_error()); print "<tr>"; print "<td>".$getDomainsRow['cr_date']."</td>"; print "<td>".$getDomainsRow['name']."</td>"; print empty($getClientRow['cname']) ? "<td>".$getClientRow['pname']."(".$getDomainsRow['cl_id'].")</td>" : "<td>".$getClientRow['cname']."(".$getDomainsRow['cl_id'].")</td>"; print empty($getDomainsRow['p_type']) ? "<td> </td>" : "<td>".$getProductsRow['p_name']."</td>"; print "<td>".$getDomainsRow['p_pay']."</td>"; print "<td> </td>"; print "<td>".$getInvoiceInfoRow['duePay']."</td>"; print "<td> </td>"; print "</tr>"; } print "</table>";
Det skete at efter jeg lavede udtrækket omkring fakturering "// Find div info omkring fakturering", at jeg kun fik de domæner ud, der var data på omkring fakturering - her skulle listen jo gerne fortsætte..
mysql_query("SET lc_time_names = 'da_DK'"); function invoiceInfo($invoiceID, $what = null) { global $link1; switch ($what) { case null : return null; break; case 'invoiceDate' : $invoiceDate = mysql_fetch_array(mysql_query("SELECT invoiceDate FROM pleskcrm.invoices WHERE id =". $invoiceID."",$link1), MYSQL_ASSOC) or die(mysql_error()); return $invoiceDate['invoiceDate']; break; case 'duePay' : $duePay = mysql_fetch_array(mysql_query("SELECT DATE_FORMAT(DATE_ADD(invoiceDate, INTERVAL 8 DAY), '%e. %M %Y') AS duePay FROM pleskcrm.invoices WHERE id = ".$invoiceID."",$link1), MYSQL_ASSOC); return $duePay['duePay']; break; case 'nextInvoice' : $nextInvoice = mysql_fetch_array(mysql_query("SELECT DATE_FORMAT(DATE_ADD(invoiceDate, INTERVAL paymentTerm MONTH), '%e. %M %Y') AS nextInvoice FROM pleskcrm.invoices WHERE id = ".$invoiceID."",$link1), MYSQL_ASSOC); return $nextInvoice['nextInvoice']; break; default: return null; break; }
} // Array bestående af domæner der ikke skal have faktura i dette system $notInSystem = array('lamour-webshop.dk','qubix.dk','looni.dk','l-amour.dk','byenserotikshop.dk','byens-erotikshop.dk','thomas.e-cms.dk','techsite.dk','bsd-box.dk','test.dk','dansite.dk'); // Hent domæner fra PSA $getDomainsQuery = mysql_query("SELECT id,cr_date,name,cl_id,p_type,p_pay FROM psa.domains WHERE name NOT IN ('". implode("','", $notInSystem) ."')",$link0) or die (mysql_error()); print "<table border=\"1\" cellpadding=\"6\" cellspacing=\"0\" class=\"importTable\">"; print "<tr>"; print "<th>Oprettet</th>"; print "<th>Domæne</th>"; print "<th>Klient ID</th>"; print "<th>Produkt</th>"; print "<th>Betalingsperiode</th>"; print "<th>Senest faktureret</th>"; print "<th>Forfaldsdato</th>"; print "<th>Næste faktura</th>"; print "</tr>"; while ($getDomainsRow = mysql_fetch_array($getDomainsQuery, MYSQL_ASSOC)) { // Find forbindelsen til klienten $getClientQuery = mysql_query("SELECT cname,pname FROM psa.clients WHERE id = ".$getDomainsRow['cl_id']."",$link0) or die(mysql_error()); $getClientRow = mysql_fetch_array($getClientQuery, MYSQL_ASSOC); // Find produktet til domænet $getProductsQuery = mysql_query("SELECT p_name FROM pleskcrm.products_dansite WHERE p_type_id = ".$getDomainsRow['p_type']."",$link1); $getProductsRow = mysql_fetch_array($getProductsQuery, MYSQL_ASSOC); // Find det højeste ID der passer til klienten i fakturaerne // Find div info omkring fakturering $findNewestInvoiceQuery = mysql_query("SELECT MAX(id) as NewestInvoiceID FROM pleskcrm.invoices WHERE cl_id = ".$getDomainsRow['cl_id']." GROUP BY cl_id", $link1); //$getInvoiceInfoQuery = mysql_query("SELECT invoiceDate, DATE_FORMAT(DATE_ADD(invoiceDate, INTERVAL 8 DAY), '%e. %M %Y') AS duePay, DATE_ADD(invoiceDate, INTERVAL paymentTerm MONTH) as nextInvoice FROM pleskcrm.invoices WHERE id = ".$findNewestInvoice['NewestInvoiceID']." GROUP BY cl_id", $link1) or die(mysql_error()); //$getInvoiceInfoRow = mysql_fetch_array($getInvoiceInfoQuery, MYSQL_ASSOC) or die(mysql_error()); print "<tr>"; print "<td>".$getDomainsRow['cr_date']."</td>"; print "<td>".$getDomainsRow['name']."</td>"; print empty($getClientRow['cname']) ? "<td>".$getClientRow['pname']."(".$getDomainsRow['cl_id'].")</td>" : "<td>".$getClientRow['cname']."(".$getDomainsRow['cl_id'].")</td>"; print empty($getDomainsRow['p_type']) ? "<td> </td>" : "<td>".$getProductsRow['p_name']."</td>"; print "<td>".$getDomainsRow['p_pay']."</td>"; print "<td> </td>";
mysql_num_rows var svaret. Samtidig fik jeg lige lavet en lille funktion
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.