Pähkäilin tuossa hetken aikaa yksinkertaista koodia, jolla saisi aikaan tietokannasta tiedon lukemisen yksiulotteiseen taulukkoon, jota voi käyttää vertailuun ja joka poistaa kannan tiedoista toistuvat arvot.
Eli taulukko, joka sisältäisi tietokannan yksilölliset tietueet ilman toistuvia arvoja. Ok, tässä koodi (tietokantayhteys on odbc-yhteys, voi tietenkin olla muukin):
<?php // Yhteysstring (Apache-palvelimen juurihakemisto, vaihda tarpeen mukaan) $lahdeTied = "tietokanta.xls"; $SystemDSN = "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=".$lahdeTied."; UserCommitSync=Yes; Threads=3; SafeTransactions=0; PageTimeout=160; FlushTransactionTimeout=0; SharedAsyncDelay=140; ReadOnly=1; MaxScanRows=2; MaxBufferSize=8192; DriverId=790; DefaultDir=C:\Ohjelmatiedostot\Apache Group\Apache\htdocs"; // Yhteys tietokantaan $link=odbc_connect($SystemDSN, $UserName, $PWD); $sqlArr = "SELECT [B] FROM [".$Taulu."] ORDER BY [B] ASC"; // Haetaan arvot pinoa varten tällä lauseella $rowArr = @odbc_exec($link,$sqlArr); // Suoritetaan while (@odbc_fetch_into($rowArr, $IDSarake)) { // Pyöritetään sql-tulosta pinoon // Jos id jo pinossa, ei kirjoiteta. array_search etsii pinosta idt - jos ei löydy, lisätään $key = ""; $key = array_search($IDSarake[0], $Pino); // Huomioi äärimmäisen tärkeä asia; yhtäsuuruusmerkkejä täytyy välttämättä olla 3kpl! // Muuten pinoon vedetään 3 kertaa sama arvo pinon koostamisen yhteydessä tai // siis pinoon tulee 3 kertaa ensimmäinen id-numero! Eli käytä ===, EI KOSKAAN == if ($key === FALSE) { array_push($Pino, $IDSarake[0]); } } ?>
Tarvitseekos
<?php $key = ""; // tätä alustaa tässä? ?>
== käyttäminen tarkoittaisi, että $key voi olla myös 0 (false lukumuodossa), === ottaa huomioon myös muuttujatyypin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.