Pagina 1 din 1

ODBC - ACCESS

Scris: Joi Apr 19, 2007 3:25 pm
de chucki21

Scris: Joi Apr 19, 2007 3:42 pm
de raz_atoth
LEFT JOIN tblProdus as p ON lngProdus=lngProdus

Mi se pare mie sau coloanele pentru care faci 'joinul' sunt identice?

Scris: Joi Apr 19, 2007 3:46 pm
de chucki21
o eroare de scriere imic er scuze la aceea egalitate lngProdus=lngProdus am uitat sa scriu a.lngProdus=p.lngProdus de fapt in script e cum am scris acum a doua oara.Eroarea ramane ..

Scris: Vin Apr 20, 2007 9:33 am
de chucki21
Afisez mai jos tot codul din pagina poate cineva are succes.Eu sincer de 2 zile ma tot uit la el a nu se intelege continuu :) dar chiar nu imi dau seama unde poate fi gresala.Ideea este ca daca in interogare folosesc aliasuri de genul "AliasBazaDeDate.camp" nu imi afiseaza nimic in pagina forma actuala.Daca scot aliasurile imi afiseazadar va dati seama ca am nevoie de ele pt o interogare cu mai multe joinuri.Am luat si varianta sa scot aliasuri, fie mi-am zis dar tot degeaba ca daca folosesc al doilea JOIN nu imi mai afiseaza nimic.

[b]Erorile sunt de genul:[/b]

[i]Warning: odbc_exec() [function.odbc-exec]: SQL error: [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'a.lngOperatorTara=o.lngOperator LEFT JOIN tblProdus as p ON a.lngProdus=p.lngProdus'., SQL state 37000 in SQLExecDirect in C:\wamp\www\ACCESS\access.php on line 10

Warning: odbc_fetch_array(): supplied argument is not a valid ODBC result resource in C:\wamp\www\ACCESS\access.php on line 28[/i]



[b]CODUL:[/b]

<?php
$odbc = odbc_connect("leg.ODBC.ACCESS", "", "") or die ("ESUATA");
$sql= "SELECT a.lngTichet,a.lngNumar,a.txtNumarVehicul,a.lngProdus,p.txtNume,
a.lngDelegat,a.lngFurnizor,a.lngCumparator,a.lngTipLivrare,a.lngTara,a.lngOperatorTara,o.txtNume
FROM tblTichetArhiva as a
LEFT JOIN tblOperator as o ON a.lngOperatorTara=o.lngOperator
LEFT JOIN tblProdus as p ON a.lngProdus=p.lngProdus;";

$query = odbc_exec($odbc,$sql);

echo "<table border=1>";
echo "<tr>";
echo "<td>TICHET</td>";
echo "<td>NUMAR</td>";
echo "<td>VEHICUL</td>";
echo "<td>PRODUS</td>";
echo "<td>NUME PRODUS</td>";
echo "<td>DELEGAT</td>";
echo "<td>FURNIZOR</td>";
echo "<td>CUMPARATOR</td>";
echo "<td>LIVRARE</td>";
echo "<td>TARA</td>";
echo "<td>COD OPERATOR</td>";
echo "<td>NUME OPERATOR</td>";
echo "</tr>";

while($row = odbc_fetch_array($query))
{
echo "<font size=2>";
echo "<tr>";
echo "<td>".$row['a.lngTichet']."</td>";
echo "<td>".$row['a.lngNumar']."</td>";
echo "<td>".$row['a.txtNumarVehicul']."</td>";
echo "<td>".$row['a.lngProdus']."</td>";
echo "<td>".$row['p.txtNume']."</td>";
echo "<td>".$row['a.lngDelegat']."</td>";
echo "<td>".$row['a.lngFurnizor']."</td>";
echo "<td>".$row['a.lngCumparator']."</td>";
echo "<td>".$row['a.lngTipLivrare']."</td>";
echo "<td>".$row['a.lngTara']."</td>";
echo "<td>".$row['a.lngOperatorTara']."</td>";
echo "<td>".$row['o.txtNume']."</td>";
echo "</tr>";
echo "</font>";
}

echo "</table>";
odbc_close($odbc);
?>

Scris: Vin Apr 20, 2007 11:20 am
de chucki21
Am gasit.Pentru cei care se vor lovi de asa ceva doua variante am:

$sql= "SELECT .lngTichet,a.lngNumar,a.txtNumarVehicul,a.lngProdus,p.txtNume as numProd,a.lngDelegat,
a.lngFurnizor,a.lngCumparator,a.lngTipLivrare,a.lngTara,a.lngOperatorTara,o.txtNume as numOperator
FROM (tblTichetArhiva a
LEFT JOIN tblOperator o ON a.lngOperatorTara=o.lngOperator)
LEFT JOIN tblProdus p ON a.lngProdus=p.lngProdus";

(sau)

$sql= "SELECT .lngTichet,a.lngNumar,a.txtNumarVehicul,a.lngProdus,p.txtNume as numProd,
a.lngDelegat,a.lngFurnizor,a.lngCumparator,a.lngTipLivrare,a.lngTara,a.lngOperatorTara,o.txtNume as numOperator
FROM tblTichetArhiva as a, tblOperator as o, tblProdus as p
WHERE a.lngOperatorTara=o.lngOperator AND a.lngProdus=p.lngProdus;";