Autor | Zpráva | ||
---|---|---|---|
TomasJ Profil |
Ahoj, takže mám takový problém. Vytahuji 1 řádek z databáze podle "product_id" a vytahuji s ním názvy sloupců a hodnoty v daných sloupcích.
$size = mysql_fetch_array(mysql_query("SELECT * FROM stock_vel WHERE product_id = '{$ok['id']}'")); foreach($size as $sloupec => $hodnota){ if(isset($hodnota) && $hodnota > 0 && $hodnota < 3 && is_numeric($sloupec)){ //Pokud je hodnota nastavena, v rozmezi 1 - 2 a dany sloupec je ciselny (zabranim vypsani sloupce "id" a "product_id"), muzeme pokracovat $sklad = $hodnota == 1 ? "skladem" : "do 2-3 dnů"; if($sloupec <= 24) echo "<option value='$sloupec'>$sloupec\" ($sklad)</option>"; elseif($sloupec > 24) echo "<option value='$sloupec'>$sloupec cm ($sklad)</option>"; } } var_dump vyhodí toto: array(39) { [0]=> string(2) "10" ["product_id"]=> string(2) "10" [1]=> string(1) "2" [15]=> string(0) "" [2]=> string(1) "1" [16]=> string(0) "" [3]=> string(1) "2" [17]=> string(0) "" [4]=> string(1) "2" [18]=> string(0) "" [5]=> string(1) "3" [19]=> string(0) "" [6]=> string(1) "1" [20]=> string(0) "" [7]=> string(0) "" [21]=> string(0) "" [8]=> string(0) "" [22]=> string(0) "" [9]=> string(0) "" [23]=> string(0) "" [10]=> string(0) "" [34]=> string(0) "" [11]=> string(0) "" [40]=> string(0) "" [12]=> string(0) "" [44]=> string(0) "" [13]=> string(0) "" [46]=> string(0) "" [14]=> string(0) "" [48]=> string(0) "" [50]=> string(0) "" [52]=> string(0) "" [53]=> string(0) "" [54]=> string(0) "" [56]=> string(0) "" [58]=> string(0) "" [59]=> string(0) "" [60]=> string(0) "" [62]=> string(0) "" } Jde mi o to, že se do pole přidá automaticky i nějaké číslování... Pole "id" je již odstraněno, takže výsledek je již bez id... Vybrán byl 1. řádek (product_id = 10). No a mělo by to být tak, že [15] => string(1) "2" ... ale ono to hodí [1] => string(1) "2" a [15] => string(0) "" přitom to k sobě patří... K čemu to celé je: Sloupce s názvy 15 a víc jsou jako velikosti, hodnota v daném sloupci na daném řádku určuje jestli je tato velikost skladem, dostupná do 2-3 dnů, nebo není dostupná. Co bych chtěl po vás: Jestli mi dokážete poradit, jak docílit výše uvedeného (jestli mám někde chybu, nebo je na to jiný způsob). Jsem už bez nápadu, nevím jak to zvládnout. Děkuji moc za každou relevantní radu. :) |
||
Tori Profil |
Koukněte na rozdíl mezi tím, co vrací funkce mysql_fetch_array a mysql_fetch_assoc. Odkážu vás i na Některé časteji řešené dotazy pro MySQL - FAQ, pojmenovávání sloupců čísly v téměř spojité řadě na mne působí jako chybný návrh DB.
„Sloupce s názvy 15 a víc jsou jako velikosti hodnota v daném sloupci na daném řídku určuje jestli je tato velikost skladem“ Přečetla jsem si tohle až teď, celkem jistě to je chybně navržená DB. Možné řešení je např.: tabulka zboží: id, název... tabulka velikosti: id, název (= číslo nebo text) tabulka naSkladě: id_zboží, id_velikosti, dámské/pánské/unisex (sloupec typu ENUM), počet na skladě. Případně by velikosti, dámské/pánské, barva atd. mohly být řešené jako tabulka vlastností a jejich možných hodnot. |
||
TomasJ Profil |
Týká se to velikostí jízdních kol. Ano, tabulku jsem já nenavrhoval. Kdyby ano, alespoň bych před velikosti dal nějaký textový prefix jako size_ČÍSLO a pak už PHPčkem rozpojoval.
Vyzkouším, zatím děkuji. |
||
Časová prodleva: 11 let
|
0