Witajcie,
Mam maleńki problem, w którym niestety nie umiem znaleźć rozwiązania.
Mój kod i pomysł jest prosty. User zbiera karty, system przydziela mu losowo kartę którą kupi, więc może mieć nawet 10 tych samych kart.
Sęk w tym, że chciałbym umożliwić userowi, żeby mógł zobaczyć ile ma sztuk danej karty.
Kod który stworzyłem pobiera dane z dwóch baz:
CREATE TABLE `karty_kupione` (
`id` int(8) NOT NULL auto_increment,
`nick` varchar(100) NOT NULL default '',
`id_karty` int(8) NOT NULL default '0',
`kolekcja` text NOT NULL,
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=8 ;
oraz:
CREATE TABLE `karty` (
`id` int(8) NOT NULL auto_increment,
`obrazek` text NOT NULL,
`opis` text NOT NULL,
`kolekcja` int(8) NOT NULL default '0',
) ENGINE=MyISAM DEFAULT CHARSET=latin2 AUTO_INCREMENT=9 ;
No i ogólnie wszystko śmiga, ale nie do końca. W moim kodzie działa wszystko jeśli zawartość po kolei wyczytywanych id_karty jest ciągła(1,2,3,4,5,6...) to wszystko chodzi jak po maśle, ale jak zabraknie jakiejś cyfry, np. 3, to kod przesuwa się o jedno i przy wyświetlaniu pokazuje wartości dla 3 karty pod 4 kartą...
$gnick='Edziu';
$sql = "SELECT * FROM karty WHERE kolekcja='$_GET[kolekcja]'";
$result = mysql_query($sql);
$cala_kolekcja=mysql_num_rows($result);
$i=1;
echo("<table class='UNI_01' border='0' align='center'><tr>");
while($r = mysql_fetch_array($result)) {
$sql2 = "SELECT * FROM karty_kupione WHERE kolekcja='$_GET[kolekcja]' AND nick='$gnick' AND id_karty='$i'";
$result2 = mysql_query($sql2);
$ile=mysql_num_rows($result2);
if($ile >= '1'){$karta[$i]="1";}
$sum += $karta[$i];
?><td align='center' style=" word-wrap: break-word;"><body>
<img
<? if($r['opis']==''){ ?> <? }else{ ?>onmouseover="show('
<? echo $i; ?>')"
<?}?> onmouseout="hide('
<? echo $i; ?>')" src="
<? echo("$r[obrazek]") ?>">
<div id="
<?echo $i;?>" style="display: none">
<? echo $r['opis']; ?></div>
</body>
<br><b>
<? echo $ile; ?></b></td>
<?
if($i%4
==0
){ echo '</tr><tr>';} $i++;
}