Haen tietokannasta tekstin komennolla
while ($teksti_tulostus = mysql_fetch_row($kysely))
Nyt tämän $teksti_tulostus arvot pitäisi tallentaa ilmeisesti taulukkoon, jonka arvot sitten tulostetaan toisaalla sivuilla. Pitäsi kait olla aika simppeli, mutta en saa toimii.
Nyt on:
while ($teksti_tulostus = mysql_fetch_row($kysely))
{
$a[] = $teksti_tulostus;
}
ja tulostuksessa $a, mutta tulostuu Array.
while ($teksti_tulostus = mysql_fetch_row($kysely))
Nyt tämän $teksti_tulostus arvot pitäisi tallentaa ilmeisesti taulukkoon, jonka arvot sitten tulostetaan toisaalla sivuilla. Pitäsi kait olla aika simppeli, mutta en saa toimii.
Nyt on:
while ($teksti_tulostus = mysql_fetch_row($kysely))
{
$a[] = $teksti_tulostus;
}
ja tulostuksessa $a, mutta tulostuu Array.
Vastaukset 4
Vanhimmat
mysql_fetch_row palauttaa taulukon, joten jos lisäät ne taulukkoon $a, on lopputuloksena moniulotteinen taulukko.
Käytä indeksiä kun haet tietoja tuosta $teksti_tulostus muuttujasta. $teksti_tulostus[0] viittaa mysql_fetch_row palauttamien tietojen ensimmäiseen soluun, $teksti_tulostus[1] seuraavaan jne. Riippuu kyselystä, kuinka monta tietuetta noista tuloksista pitää hakea. Toisaalta kyselyissä ei pitäisi hakea mitään muuta kuin ne tietueet joita tarvitaan.
while ($teksti_tulostus = mysql_fetch_row($kysely))
{
$a[] = $teksti_tulostus[1];
}
Kiitän avusta
Ihmettelen miksi haluat tiedot taulukkoon ja sitten tulostaa? Ennemmin tulostat suoraan tiedot sivulle näin muistia kuluu vähemmän sekä scripti on hitusen nopeempa.
Toki taulukkoon tallennus on joissain tapauksissa järkevää ja ainut vaihtoehto, mutta turhaan sitä ei kannata käyttää.
Ja mysql_fetch_row tilalla kannattaa usein käyttää mysql_fetch_assoc varsinkin jos haetaan useita sarakkeita, tällöin ei tarvitse sekavaa $teksti_tulostus[5] vaan $teksti_tulostus['teksti'] tai mikä nyt sarakkeen nimi onkaan.
while ($teksti_tulostus = mysql_fetch_assoc($kysely)) {
echo "... {$teksti_tulostus['id']} ... ";
}
Toinen keino on sitten
while ($teksti_tulostus = mysql_fetch_assoc($kysely)) {
$teksit .= "... {$teksti_tulostus['userid']} ... ";
}
ja sitten missä haluat
echo $teksit;
Liittyy vielä edelliseen tehtävään osittain ainakin.
Minulla on lomake, missä annetaan linkin teksti ja tiedosto, joka tallennetaan palvelimelle. Asia on kunnossa. Mutta tulostus ulos tökkii.
Miksi kyseinen koodi tulostaa annetut linkit ja vie upload-kansioon mutta ei osaa valita tiedostoa. Koodi:
do {
for($i = 0; $i < count($a); $i ){
$filelist .= "" . $a[$i]."";
}
}
while(!is_dir($file) && !is_link($file));
Eli upload_dir on palvelimella oleva kansio, johon tiedostot tallennetaan. File käsitellään komennolla
$handle=opendir($upload_dir);
$file = readdir($handle);