2012-04-04 7 views
0

Diese Abfrage im SQLManagement Studio Lauf gibt eine Ergebnismenge von 162 ZeilenTransact-SQL und PHP Ausgabe

SELECT order_num, 
     status, 
     ship_date, 
     cust_ord_num, 
     weight, 
     carrier_desc, 
     consignee, 
     cases 
FROM v1oemf 
WHERE ACCOUNT = 'NESTLE' 
     AND status LIKE '%Shipped%' 
     AND (ship_date BETWEEN '20120327' AND '20120403') 

, die ich von echo die Ergebnisse dieser Code ing ging mir auf die PHP-Seite

echo "SELECT Order_num,Status,Ship_date,Cust_ord_num,Weight,Carrier_desc,Consignee,Cases FROM V1OEMF WHERE Account = '" . $_POST['account'] . "' AND Status LIKE '%". $_POST['custstat'] ."%' AND (Ship_date BETWEEN '".$_POST['start_date']."' AND '".$_POST['end_date']."')"; 
$rs=odbc_exec($link,"SELECT Order_num,Status,Ship_date,Cust_ord_num,Weight,Carrier_desc,Consignee,Cases FROM V1OEMF WHERE Account = '" . $_POST['account'] . "' AND Status LIKE '". $_POST['custstat'] ."' AND Ship_date BETWEEN '".$_POST['start_date']."' AND '".$_POST['end_date']."'"); 

die Ergebnismenge der PHP-basierten Abfrage ist 0 Zeilen, und ich kann nicht für das Leben von mir das Problem sehen ...

Hier ist der gesamte Abschnitt, der eine Tabelle der Re erstellen soll

gebnisse
$rs=odbc_exec($link,"SELECT Order_num,Status,Ship_date,Cust_ord_num,Weight,Carrier_desc,Consignee,Cases FROM V1OEMF WHERE Account = '" . $_POST['account'] . "' AND Status LIKE '". $_POST['custstat'] ."' AND Ship_date BETWEEN '".$_POST['start_date']."' AND '".$_POST['end_date']."'"); 
           $num = odbc_num_rows($rs); 
           echo $num; 
           echo "<table>"; 
           echo "<thead><tr class='header'>"; 
           echo "<td>Order #</td><td>Status</td><td>Ship Date</td><td>Sales Order #</td><td>Consignee</td><td>Carrier</td><td>Cases</td><td>Weight</td>"; 
           echo "</tr></thead>"; 
           while (odbc_fetch_row($rs)) { 
                 echo "<tr><td id='f1'><a class='ow' href='' id='" . odbc_result($rs,'Order_num') . "'>" . odbc_result($rs,'Order_num') . "</a></td><td id='f2'>" . odbc_result($rs,'Status') . "</td><td id='f3'>" . odbc_result($rs,'Ship_date') . "</td><td id='f5'>" . odbc_result($rs,'Cust_ord_num') . "</td><td id='f6'>" . odbc_result($rs,'Consignee') . "</td><td id='f7'>" . odbc_result($rs,'Carrier_desc') . "</td><td id='f8' align='right'>" . odbc_result($rs,'Cases') . "</td><td id='f9' align='right'>" . odbc_result($rs,'Weight') . "</td></tr>"; 
                 } 
           echo "</table>"; 
+0

Beachten Sie, dass Ihr Skript für SQL-Injection offen ist und besser mit einer vorbereiteten Anweisung über ['odbc_prepare()'] (http://www.php.net/manual/en/function.odbc-prepare) behandelt werden könnte. php) –

+0

Ich weiß, ich plane, das zu korrigieren, danke – ScottC

Antwort

4

Sie werden mehr brauchen % um $_POST['custstat'], wenn Sie es ein LIKE wie in Ihrem ersten SQL-Anweisung tun wollen.

Sie haben sie in der echo, aber nicht in der tatsächlichen SQL.