Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Yksilöllinen id arrayhin

MtJ [28.09.2004 12:05:38]

#

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]);
    }
}

?>

tsuriga [28.09.2004 17:52:06]

#

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.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta