mysql_fetch_array ja foreach-silmukka

PPietari

Hei!

Olen opettelemassa php-ohjelmointia ja edessä on pieni ongelma. Olen käyttänyt while-silmukkaa tähän tyyliin:

mysql_connect($host, $user, $password) or die ('Error ' . mysql_error());
mysql_select_db($db) or die ('Error ' . mysql_error());
$result = mysql_query("SELECT * FROM data") or die(mysql_error());
//Piirtää htlm-taulukon sisältöineen
echo "";
echo "IdTyönantajaVirkaKontaktihenkilöPuhelin/Mail
Viimeinen hakupäiväPvmKommentteja";

while ($db_field = mysql_fetch_array($result)) {
echo "";
echo $db_field['id'];
echo "";
echo $db_field['työnantaja'];
echo "";
print $db_field['virka'];
echo "";
print $db_field['kontaktihenk'];
echo "";
print $db_field['puhelin'];
echo "";
print $db_field['viimeinenhakup'];
echo "";
print $db_field['date'];
echo "";
print nl2br($db_field['kommentti']);
echo "";
}
echo ""
?>

Olen miettinyt pääni puhki, kuinka saman voi tehdä foreach-silmukalla mutta en onnistu. Voiko saman tehdä foreach-silmukalla? Ihan noin vaan uteliaisuuden vuoksi.

6

735

    Vastaukset 6

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • PPietari

      Tiedoksi että näköjään palstan editori strippaa kaiken html-koodin echo-komennoista viestistä.

    • juhakorkeapudas
      • PPietari

        Se pukkaa vaan tällaista vikailmoitusta: "Warning: Invalid argument supplied for foreach()"

        Siis kun käyttää tätä foreach-silmukaa niin ei tarvitse käyttää mysql_fetch_array() -toimintoa?


      • Teman
        PPietari kirjoitti:

        Se pukkaa vaan tällaista vikailmoitusta: "Warning: Invalid argument supplied for foreach()"

        Siis kun käyttää tätä foreach-silmukaa niin ei tarvitse käyttää mysql_fetch_array() -toimintoa?

        Tervehdys!

        Aloitetaanpa siitä, ettei tuo homma hoidu tuon foreach-rakentaan avulla todellakaan noin yksinkertaisesti kuin nimerkki juhakorkeapudas antaa ymmärtää. Hänen koodinsa ei voi millään toimia, sillä tuo result-muuttuja on pelkkä resurssi, eikä varsinaisesti sisällö kuin viitteen varsinaiseen dataan. Jotta foreach-rakennetta voi käyttää, tarvitaan taulukko, jossa on kaikki sql-lausekkeella haetut rivit. Mitään valmista funktiota tämä tekemiseen ei ole. Hommaa ei muutenkaan kannata tehdä foreach-kanssa, sillä jos tietokannasta haettavaa tietoa on paljon, voi php:n memory_limit-täyttyä. Paras rakenne tietokannan tietojen käsittelyyn on tuo while, sillä ei lataan muistaa kaikkea tietoa, vaan hakee sitä rivi kerralla. Tein kuitenkin esimerkin, joka käyttää foeach-rakennetta. Tein siis itse funktion, joka hakee kaikki sql-kyselyn mukaiset samaan taulukkoon. Painotan kuitenkin, ettei tätä kannata käyttää oikeasti.

        HTML on merkitty entiteeteillä, joten sen pitäisi näkyä normaalisti.


      • Teman
        Teman kirjoitti:

        Tervehdys!

        Aloitetaanpa siitä, ettei tuo homma hoidu tuon foreach-rakentaan avulla todellakaan noin yksinkertaisesti kuin nimerkki juhakorkeapudas antaa ymmärtää. Hänen koodinsa ei voi millään toimia, sillä tuo result-muuttuja on pelkkä resurssi, eikä varsinaisesti sisällö kuin viitteen varsinaiseen dataan. Jotta foreach-rakennetta voi käyttää, tarvitaan taulukko, jossa on kaikki sql-lausekkeella haetut rivit. Mitään valmista funktiota tämä tekemiseen ei ole. Hommaa ei muutenkaan kannata tehdä foreach-kanssa, sillä jos tietokannasta haettavaa tietoa on paljon, voi php:n memory_limit-täyttyä. Paras rakenne tietokannan tietojen käsittelyyn on tuo while, sillä ei lataan muistaa kaikkea tietoa, vaan hakee sitä rivi kerralla. Tein kuitenkin esimerkin, joka käyttää foeach-rakennetta. Tein siis itse funktion, joka hakee kaikki sql-kyselyn mukaiset samaan taulukkoon. Painotan kuitenkin, ettei tätä kannata käyttää oikeasti.

        HTML on merkitty entiteeteillä, joten sen pitäisi näkyä normaalisti.

        Lisäys edelliseen viestiin:

        Kun seuraavalla kerralla teet jotain PHP:n sekä MySQL:n kanssa, niin panosta taulujen sarakkeiden nimeen, sillä nyt ne ovat suorastaan kauheat!


      • juhakorkeapudas
        Teman kirjoitti:

        Tervehdys!

        Aloitetaanpa siitä, ettei tuo homma hoidu tuon foreach-rakentaan avulla todellakaan noin yksinkertaisesti kuin nimerkki juhakorkeapudas antaa ymmärtää. Hänen koodinsa ei voi millään toimia, sillä tuo result-muuttuja on pelkkä resurssi, eikä varsinaisesti sisällö kuin viitteen varsinaiseen dataan. Jotta foreach-rakennetta voi käyttää, tarvitaan taulukko, jossa on kaikki sql-lausekkeella haetut rivit. Mitään valmista funktiota tämä tekemiseen ei ole. Hommaa ei muutenkaan kannata tehdä foreach-kanssa, sillä jos tietokannasta haettavaa tietoa on paljon, voi php:n memory_limit-täyttyä. Paras rakenne tietokannan tietojen käsittelyyn on tuo while, sillä ei lataan muistaa kaikkea tietoa, vaan hakee sitä rivi kerralla. Tein kuitenkin esimerkin, joka käyttää foeach-rakennetta. Tein siis itse funktion, joka hakee kaikki sql-kyselyn mukaiset samaan taulukkoon. Painotan kuitenkin, ettei tätä kannata käyttää oikeasti.

        HTML on merkitty entiteeteillä, joten sen pitäisi näkyä normaalisti.

        Hyvä huomio.
        Pois jäi maininta, että foreachia voi käyttää tuon whilen sisällä mutta ei yksinään.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Onko sulla rakas mitään sanottavaa?

      Lähetä tässä kaivatullesi haluamasi terveiset 💌
      Ikävä
      254
      2144
    2. Nanna hakkasi Martinan aivot tuusan nuuskaksi!!!

      Ihme jos Martina pystyy muodostaa järkeviä lauseita tämän nyrkkisateen jälkeen. Ottelupalkkio tuli, tajunta meni.
      Kotimaiset julkkisjuorut
      264
      1276
    3. Liikenneonnettomuus kuhmo

      Taisi Audi mennä lunastukseen ja pemari kilometritehtaalle
      Kuhmo
      21
      1231
    4. Oot sä aika nuorekas...

      Vaikka oot niin vanha!
      Ikävä
      41
      816
    5. Vaikea löytää samantyylistä miestä

      Nyt on pakko avautua. Onko ketään muuta jonka on yksinkertaisesti todella vaikeaa löytää samanhenkistä kumppania kuin i
      Sinkut
      125
      733
    6. Martina ja Muhis

      Aamulenkillä yhdessä valmistautumassa suuren päivään,toivottavasti heräsivät toistensa viekusta.Ihana pariskunta❤
      Kotimaiset julkkisjuorut
      237
      709
    7. Rasismi ahdistaa.

      Tapasin baarissa oikein lupsakan oloisen miehen, mutta arvomaailma on hyvin erilainen omani kanssa. Hän käyttää n-sanaa
      Sinkut
      231
      683
    8. Näin sut.

      olitpas vanhentuneen näköinen. 😆 mieheltä naiselle
      Ikävä
      54
      530
    9. Olenkohan tunteideni kanssa yksin?

      Salaa toivon, että sinä nainen luotat minuun niin paljon, että uskaltaisit lähentyä kanssani, vaikka tämä on vähän kiell
      Ikävä
      45
      467
    10. Oot pelkkä naurun aihe

      🤣🤣🤣🤣🤣 m-n
      Ikävä
      38
      458
    Aihe