Autor | Zpráva | ||
---|---|---|---|
quickspider Profil |
#1 · Zasláno: 31. 1. 2011, 16:08:46
dobrý den,
potřebuji poradit, jak vložit hodnoty z DB mysql do pole, která budu následně součástí dalšího dotazu. děkuji. |
||
libass Profil |
#2 · Zasláno: 31. 1. 2011, 16:13:16
tady jsem resil vlozeni hodnot do pole z db..
@$vysledek = mysql_query("select * from zakaznik WHERE uziv_jmeno='$_GET[oc]'"); if (!$vysledek): echo "Chyba při prohledávání seznamu uživatelů. \n"; endif; $pocet=mysql_num_rows($vysledek); for ($i=0; $i<$pocet; $i++) { $r = Mysql_fetch_row($vysledek); if (!$r): // existuje dany zamestnanec echo "Požadovaný záznam neexistuje.\n"; break; endif; } $Uziv_jmeno = $r[0]; $Heslo= $r[1]; $Krestni_jmeno = $r[2]; $Prijmeni = $r[3]; $Kontaktni_telefon = $r[4]; $Email = $r[5]; $Nazev_firmy = $r[6]; $Ico = $r[7]; $Dic = $r[8]; $Ulice_faktur = $r[9]; $Mesto_faktur = $r[10]; $Psc_faktur = $r[11]; $Ulice_dodac = $r[12]; $Mesto_dodac = $r[13]; $Psc_dodac = $r[14]; $Rabat = $r[15]; |
||
quickspider Profil |
$dotaz ='select de from dily where rada=01'; $vysledek = mysql_query($dotaz); $pocet =mysql_num_rows($vysledek); for ($i=0; $i<$pocet; $i++) { $radek = Mysql_fetch_row($vysledek); } echo $radek[2]; mám tam někde chybu, protože na pozici jedna se zobrazuje poslední hodnota výsledků a další pozice jsou prázdné |
||
libass Profil |
#4 · Zasláno: 31. 1. 2011, 16:48:22
$dotaz ='select de from dily where rada=01';
co to je select de?... |
||
candiess Profil |
#5 · Zasláno: 31. 1. 2011, 17:42:26
libass
coto je za kod..?? quickspider zkus... <?php $query = mysql_query(" SELECT * FROM tabulka WHERE podminka "); $pocet_radku = mysql_num_rows($query); if($pocet_radku==0) { echo "Žádné záznamy v DB"; } else { while($Data = mysql_fetch_array($query)) { $jmeno = $Data['jmeno']; $zaznam = $Data['zaznam']; }} ?> tohle je asi ten nejspolehlivější způsob...podmínka for se mi nezdá nejlepším řešením.. |
||
Alphard Profil |
#6 · Zasláno: 31. 1. 2011, 17:44:35
libass:
„co to je select de?“ Mohl by to být název sloupce. quickspider: „protože na pozici jedna se zobrazuje poslední hodnota výsledků a další pozice jsou prázdné“ Tohle nasvědčuje tomu, že se pořád přepisuje první hodnota pole. $radek[] = Mysql_fetch_row($vysledek); candiess: while je určitě vhodnější, ale problém s přepisováním to neřeší. |
||
candiess Profil |
#7 · Zasláno: 31. 1. 2011, 17:48:44
Alphard:
Jaktože WHILE neřeší problém s přepisováním.? :) aspon myslím, že ten kod mám správně ne? :) |
||
Tori Profil |
#8 · Zasláno: 31. 1. 2011, 17:49:08
quickspider:
Jak vypadá ten další dotaz? Potřebujete pracovat s daty vrácenými prvním dotazem? Možná by to šlo sloučit do jednoho dotazu. |
||
candiess Profil |
#9 · Zasláno: 31. 1. 2011, 17:51:20 · Upravil/a: candiess
na další dotaz se musíš zeptat quickspidera.. já jen nahradil nepraktický FOR praktičtějším WHILE.. :)
EDIT: aha, já nevěděl že už je to psáno quickspiderovi :D |
||
Alphard Profil |
#10 · Zasláno: 31. 1. 2011, 17:56:52 · Upravil/a: Alphard
candiess:
„Jaktože WHILE neřeší problém s přepisováním.?“ Je stejný jako s for(), jen lépe zapsaný. V cyklu několikrát přepíšete $jmeno, $zaznam a za cyklem bude k dispozici stejně jen poslední hodnota. Aspoň tak jsem pochopil problém já. quickspider: Tohle vlákno se začíná stávat nepřehledným. Zkuste trochu jasněji popsat váš problém. |
||
candiess Profil |
#11 · Zasláno: 31. 1. 2011, 18:02:12
Alphard:
Svým způsobem máš pravdu, ale v tom mém mysql dotazu jsem zchválně napsal „WHERE podminka ");“ aby bylo jasné, které data to má vybírat, ale pokud je tam jendoznačná podmínka, která nemůže bejt duplikatní, pak se to obejde i bez while.. <?php $query = mysql_query(" SELECT * FROM tabulka WHERE podminka "); $pocet_radku = mysql_num_rows($query); if($pocet_radku==0) { echo "Žádné záznamy v DB"; } else { //zprac dat do pole $Data = mysql_fetch_array($query); //přiřazení hodnot $jmeno = $Data['jmeno']; $zaznam = $Data['zaznam']; } ?> |
||
quickspider Profil |
#12 · Zasláno: 31. 1. 2011, 22:58:56
mám tabulku v 1. sloupečku jsou názvy dílů seriálů a v další jsou postavy, které tam hrajou - 1 hraje, 0 nehraje (možná bude lepší napsat jmeno postavy misto 1)
2. tabulka jsou díly - obsahuje název, dílu, sérii ve kterém film je atd 3. tabulka postavy - jméno, příjmení potřebuju vypsat jména postav, která hrajou např v první sérii. nevím jak to dobře vyřešit, napadlo mě zatím, že bych si vypsal postavy v 1. sérii do pole a pak bych porovnal zda obsahuje daná jména. pokud ano, vyhledal bych příjmení a zobrazil. |
||
Tori Profil |
#13 · Zasláno: 1. 2. 2011, 10:37:37 · Upravil/a: Tori
To by mělo jít udělat i jedním dotazem. Neznám přesně strukturu tabulek, ale tipuji něco takového:
SELECT t3.jmeno, t3.prijmeni FROM tabulka1 t1 LEFT JOIN tabulka3 t3 ON t1.id_postavy = t3.id WHERE t1.id_dilu = (SELECT id_dilu FROM tabulka2 t2 WHERE serie = 1 AND cislo_dilu = 3) |
||
quickspider Profil |
#14 · Zasláno: 1. 2. 2011, 10:56:32 · Upravil/a: quickspider
tabulka3 t3 znamená co?
t3 je název a tabulka3? takhle to mám navrženo: |
||
Alphard Profil |
#15 · Zasláno: 1. 2. 2011, 11:23:37
t3 je alias a tabulka3 je překvapivě jméno tabulky :-). Zvýrazňovač vám vytvořil odkaky na manuál, ale jestli to vidíte poprvé, doporučuji spíše http://www.linuxsoft.cz/article.php?id_article=837 + další díly.
|
||
quickspider Profil |
#16 · Zasláno: 1. 2. 2011, 12:51:31
jak bych měl předělat tabulky aby vznikla vazba mezi díly a postavou nebo hraje a postavou?
|
||
Časová prodleva: 5 dní
|
|||
quickspider Profil |
#17 · Zasláno: 6. 2. 2011, 01:30:26
řešení: nakonec jsem si našel na internetu jak uložit do db vazbu m:n - vytvořil jednu propojovací tabulku a problém vyřešil
|
||
Časová prodleva: 13 let
|
0