| 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: 15 let
|
|||
0