ugrás a tartalomhoz

for ciklussal lekérdezni a feltöltött képek nevét

enakos · 2008. Okt. 19. (V), 20.58
Sziasztok!

Azt szeretném megoldani, hogy a tárhelyre előzőleg egy űrlappal feltöltött képeket letudjam kérdezni és megjeleníteni a honlapon, de úgy hogy azokat tetszőlegesen, bárhol elhelyezhessem.
Két táblám van. Egyik, amiben az adatokat tárolja és egy másik, ami a fájlok nevét és adatait. A fájlok táblában a téma tábla id-jára hivatkozik. Pl. a 10 id-jú kép a 3 id-jú témához tartozik.
Az a problémám, hogy egy témához több kép is tartozhat, ezért azokat egy for ciklussal próbáltam lekérdezni.
Eddig csak annyi sikerült, hogy az első olyan id-jú képet, ami nekem kell jeleníti meg, de azt annyiszor, ahányszor a feltételben megvan adva. Vagyis az alábbi példában 5-ször jeleníti meg az adott képet.

Azt szeretném elérni, hogy a ciklus kiolvassa az adott képek neveit, amit pl.: egy valtozonev nevű változóba eltárol és utána a honlapon a kép beillesztésénél már csak azt a változót kell használnom.

pl.:
<img src="img/<?=$valtozonev1?>" border="0" width="200">
<img src="img/<?=$valtozonev2?>" border="0" width="200">
<img src="img/<?=$valtozonev3?>" border="0" width="200">

A kódom:

<?php
$parancstema = "SELECT * FROM temak where id=6";
$eredmenytema =  mysql_query($parancstema);

while($egy=mysql_fetch_array($eredmenytema))
{
$id = $egy["id"];



$parancskep = "SELECT * FROM fileok WHERE tid=$id";
$eredmenykep =  mysql_query($parancskep);
$egy1=mysql_fetch_array($eredmenykep);

for ($k=1;$k<6;$k++) {
 $neve = "valtozonev" . $k;
 $$neve = $id ."id_". $egy1["nev"];
 ?>

<table width="75%" border="1">
  <tr> 
  
    <td bgcolor="#00CC99"> 
	<img src="img/<?=$valtozonev1?>" border="0" width="200"> 

	<img src="img/<?=$valtozonev2?>" border="0" width="200"> 

	<img src="img/<?=$valtozonev2?>" border="0" width="200"> 
</td>
    
  </tr>
</table>



<?
}
}
?>
 
1

nézzük sorban

gex · 2008. Okt. 20. (H), 01.42
  1. lekéred annak a témának az id mezőjét aminek az id mezője 6
  2. while ciklust használsz egy egy sort visszaadó lekérdezéshez (ha feltételezzük hogy az id mező elsődleges kulcs)
  3. az adott témához tartozó fájlok közül az első adataiból létrehozol hat ugyanolyan értékű változót egy for-ciklussal
  4. végül kiírod a hat egyforma változóból egyszer az első majd kétszer a második értékét

nekem az a véleményem - és ezt nem bántásból írom - hogy te nem tudod hogy mit csinálsz. ezen kétféleképpen tudok (tudunk) segíteni, ha tanulni is szeretnél akkor kérdezz továbbra is, ha pedig sietsz és pár napon belül újabb, hasonló témájú bejegyzéseket szeretnél írni, akkor itt egy gyors megoldás:

<table style="width: 75%; border-width: 1px;">
    <tr>
        <td style="background-color: #0c9;">
<?php
$query = 'SELECT * FROM fileok WHERE tid=' . mysql_real_escape_string($id, $link);
$result = mysql_query($query);
while  (($row = mysql_fetch_assoc($result)) !== FALSE) {
    echo '<img src="img/', htmlspecialchars($id), 'id_', htmlspecialchars($row['nev']), '" style="width: 200px; border-width: 1px;">';
?>
        </td>
    </tr>
</table>
a $link változót helyettesítsd be azzal amiben a mysql_connect() visszatérési értékét tárolod.
2

ugyan az az eredmény

enakos · 2008. Okt. 20. (H), 11.35
Köszönöm a segítséged, de ezzel a kóddal is ugyan az az eredmény mint az előzővel.
Az egy témához tartozó képeket, ami jelenleg 3 db egymás után megjeleníti.

Én azt szeretném, ha egy oldalon belül tetszőlegesen bárhol eltudjam helyezni ezt a 3 képet külön-külön úgy, mint azt már írtam:

Kiolvassa a fájlok nevét és a képek megjelenítésekor csak egy változót illesztenék be oda.
<img src="img/<?=$valtozonev1?>" border="0" width="200">
<img src="img/<?=$valtozonev2?>" border="0" width="200">
<img src="img/<?=$valtozonev3?>" border="0" width="200">

Köszönöm előre is, ha segítesz
3

változó változó vagy tömb

gex · 2008. Okt. 20. (H), 12.45
ez esetben viszont nem értem miért nem jók a változó változóid. én így csinálnám:

<?php  
$query = 'SELECT * FROM fileok WHERE tid=' . mysql_real_escape_string($id, $link);
$result = mysql_query($query);
$i = 0;
while  (($row = mysql_fetch_assoc($result)) !== FALSE) {
    $pictures[$i++] = htmlspecialchars($id) . 'id_' . htmlspecialchars($row['nev']);
}
?>
ezután $pictures[0], $pictures[1], stb néven tudsz rá hivatkozni és az $i vagy a count($pictures) értékéből tudod meg, hogy hány kép lett. ha nem kiírni akarod akkor nem kell a htmlspecialchars függvény.
4

szuper

enakos · 2008. Okt. 20. (H), 13.16
Nagyon köszönöm a segítséged!
Így már szuper lett, olyan mint amilyenre akartam. :)