Autor Postitus
Postitusi: 17
Hinnang: 0
Tere!

Üritan siin teha väikest lihtsat e-poodi, kus on lisaks toodetele ja nende kirjeldustele ka toodete pildid.
Süsteem peaks olema selline, et klient saab talle vajaliku toote(d) lisada ostukorvi, ostukorvi sisu kinnitamisel peaks programm genereerima automaatse tellimusekinnituse-arve ja saatma selle kliendi poolt sisestatud emailile ning ka poe haldaja emailile.
Probleem on selles, et ma ei suuda kuidagi neid pilte sealt andmebaasist kätte saada.
Mul on andmebaasis neli tabelit:
arved:
arve_id | e-mail | tellimus_id
1 | kiisu@hot.ee | 1
tellimused:
tellimus_id | toode_id | varjatsioonid_id | kogus
1 | 1 | 1 | 2
tooted:
toode_id | toode
1 | sokid
varjatsioonid:
varjatsioonid_id | toode_id | suurus (toote suurus) | kellele (kellele see toode on mõeldud) | värv | pilt
1 | 1 | M | naiste | valge | valge_sokk.jpg

PHP kood, millega üritan andmebaasist andmeid kätte saada on selline:
  1. <?php
  2. error_reporting (E_ALL ^ E_NOTICE ^ E_WARNING);
  3. $connection = mysql_connect('localhost', 'kasutaja', 'parool');     //võtame ühendust serveriga
  4. mysql_select_db('e_pood', $connection);            //valime andmebaasi
  5. print ('Ühendus õnnestus, oled andmebaasis e_pood<br><br>');

  6. $toodete_paring = mysql_query ('select * from tooted') or die (mysql_error());

  7. while ($toode = mysql_fetch_assoc($toodete_paring) )  {
  8.         //echo $toode['Toode'].'<br>';
  9.         $variatsioonid = mysql_query("SELECT * from variatsioonid WHERE Toode_ID='".$toode['Toode_ID']."'") or die ();
  10.         while ( $variatsioon = mysql_fetch_assoc($variatsioonid) ) {
  11.                 echo $toode['Toode'].'<br>';
  12.                 echo '-'.$variatsioon['Suurus'].', '.$variatsioon['Kellele'].', '.$variatsioon['Värv'].'<br><img scr="'.$variatsioon['Pilt'].'" alt="pilt"><br><br>';
  13.         }
  14. }

  15. ?&gt;
  16.  


Pildid on mul selles samas kaustas kenasti olemas, kus asub ka php kood, kuid miskipärast ei näita ta mulle neid pilte :( Ilmselt teen midagi valesti, aga mida???
Selle koodi tulemuseks saan ma hoopis sellise asja:
Ühendus õnnestus, oled andmebaasis e_pood

Sokid
-M suurus, naiste, valged
pilt

Sokid
-L suurus, naiste, valged
pilt

Sokid
-XL suurus, meeste, mustad
pilt

Sokid
-XXL suurus, meeste, valged
pilt

Kindad
-S suurus, naiste, pruunid
pilt

Kindad
-XS suurus, naiste, valge
pilt
29. mai 2010, 17:13
Martin Grüner avatar
Postitusi: 16
Hinnang: 1
PHP muutujate nimed (ning ka massiivi indeksid) on tõusutundlikud. St, kui su andmebaasi lahtri nimi on "pilt" siis $variatsioon['Pilt'] on tühi, kuid $variatsioon['pilt'] sisaldab soovitud väärtust.
29. mai 2010, 17:23
Postitusi: 17
Hinnang: 0
Martin Grüner kirjutas: 29 mai 2010 17:23
PHP muutujate nimed (ning ka massiivi indeksid) on tõusutundlikud. St, kui su andmebaasi lahtri nimi on "pilt" siis $variatsioon['Pilt'] on tühi, kuid $variatsioon['pilt'] sisaldab soovitud väärtust.

Ma panin praegu siia kirjutades kogemata väikese tähega andmebaasi lahtrite nimed - tegelikult on kõik lahtrite nimed andmebaasis suure algustähega. Ja koodis on ka suure algustähega lahtri nimi. Kuid ikkagi ei näita ta mulle pilti, nii et viga peab olema kusagil mujal, aga ma ei ole suuteline seda leidma. :(
29. mai 2010, 17:58
Postitusi: 9
Hinnang: 2
Kuva välja, vaata mis aadres tuleb.
echo $variatsioon['Pilt'];

Mida tähendab:

Kindad
-XS suurus, naiste, valge
pilt

kuvabki tekstyi pilt või on tühi pildi kast?
29. mai 2010, 18:37
Martin Grüner avatar
Postitusi: 16
Hinnang: 1
Kas pildi väärtus on ikka andmebaasis olemas? Pilt võib küll olla üles laetud, kuid kui ta pole seotud vastava andmebaasi kirjega on sellest vähe kasu.

Mis tulemuse annab, kui variatsioone väljastava tsükli esimesele reale lisada var_dump($variatsioon); ?
29. mai 2010, 18:38
Postitusi: 17
Hinnang: 0
Andrus Nõlvak kirjutas: 29 mai 2010 18:37
Kuva välja, vaata mis aadres tuleb.
echo $variatsioon['Pilt'];

Mida tähendab:

Kindad
-XS suurus, naiste, valge
pilt

kuvabki tekstyi pilt või on tühi pildi kast?


Noh, tähendab, ma tahan, et ta kuvaks mulle välja toote nime (Kindad) ja tema varjatsioonide andmed (xs suurus, naiste, valge ning siis järgmisele reale ka varjatsioonides oleva pildi).

Proovisin kahte moodi:
  1. #
  2. while ( $variatsioon = mysql_fetch_assoc($variatsioonid) ) {
  3. #
  4.                echo $toode['Toode'].'<br>';
  5. #
  6.                echo '-'.$variatsioon['Suurus'].', '.$variatsioon['Kellele'].', '.$variatsioon['Värv'].'<br><img scr="'.$variatsioon['Pilt'].'" alt="pilt"><br><br>';
  7. #
  8.        }

Tulemuseks sain:
Kindad
-XS suurus, naiste, valge
pilt
  1. while ( $variatsioon = mysql_fetch_assoc($variatsioonid) ) {
  2.                 echo $toode['Toode'].'<br>';
  3.                 echo '-'.$variatsioon['Suurus'].', '.$variatsioon['Kellele'].', '.$variatsioon['Värv'].'<br>'.$variatsioon['Pilt'].'<br><br>';
  4.         }

Tulemuseks sain:
Kindad
-XS suurus, naiste, valge
valge_kinnas.jpg

Kummalgi juhul ei näita ta mulle üldse seda kasti, kus pilt peaks olema. :( Näitab ainult teksti - esimesel juhul seda, mida ta html koodi järgi peaks näitama siis, kui pilti pole võimalik näidata; teisel juhul seda, mis nimega pilt andmebaasis on. Ma ei saa aru, mida ma valesti teen. :(
29. mai 2010, 19:00
Postitusi: 17
Hinnang: 0
Martin Grüner kirjutas: 29 mai 2010 18:38
Kas pildi väärtus on ikka andmebaasis olemas? Pilt võib küll olla üles laetud, kuid kui ta pole seotud vastava andmebaasi kirjega on sellest vähe kasu.

Mis tulemuse annab, kui variatsioone väljastava tsükli esimesele reale lisada var_dump($variatsioon); ?

Noh, peaks ju nagu olema - pildi väärtuseks on ju pildi_nimi.jpg?
Tabel varjatsioonid:
varjatsioonid_id | toode_id | suurus (toote suurus) | kellele (kellele see toode on mõeldud) | värv | pilt
1 | 1 | M | naiste | valge | valge_sokk.jpg

Kui lisan tsükli algusesse var_dump($variatsioon);
saan tulemuseks:
array(6) { ["Variatsioonid_ID"]=> string(1) "6" ["Toode_ID"]=> string(1) "2" ["Suurus"]=> string(9) "XS suurus" ["Kellele"]=> string(6) "naiste" ["Värv"]=> string(5) "valge" ["Pilt"]=> string(16) "valge_kinnas.jpg" } Kindad
-XS suurus, naiste, valge
valge_kinnas.jpg
29. mai 2010, 19:01
Martin Grüner avatar
Postitusi: 16
Hinnang: 1
Kopeeri palun üks rida dünaamiliselt genereeritud HTMList, kus pilt olema peaks. Probleem on ilmselt lihtsalt selles, et pildi asukoht pole õige.
29. mai 2010, 19:02
Postitusi: 17
Hinnang: 0
Martin Grüner kirjutas: 29 mai 2010 19:02
Kopeeri palun üks rida dünaamiliselt genereeritud HTMList, kus pilt olema peaks. Probleem on ilmselt lihtsalt selles, et pildi asukoht pole õige.


Eee... Ma toppisin selle html'i sinna samasse tsükli sisse -
  1. echo '-'.$variatsioon['Suurus'].', '.$variatsioon['Kellele'].', '.$variatsioon['Värv'].'<br><img scr="'.$variatsioon['Pilt'].'" alt="pilt"><br><br>';


29. mai 2010, 19:08
Martin Grüner avatar
Postitusi: 16
Hinnang: 1
Ma mõtlesin HTMLi, mille PHP genereerib, mitte PHP lähtekoodi.
29. mai 2010, 19:09
Kõik õigused kaitstud
Online Koolitus Grupp OÜ