Autor Zpráva
quickspider
Profil
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
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
$dotaz ='select de from dily where rada=01';

co to je select de?...
candiess
Profil
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
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
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
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
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
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
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
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
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)
Tabulky jsou číslované podle toho, jak jste je popsal.
quickspider
Profil
tabulka3 t3 znamená co?
t3 je název a tabulka3?

takhle to mám navrženo:
Alphard
Profil
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
jak bych měl předělat tabulky aby vznikla vazba mezi díly a postavou nebo hraje a postavou?
quickspider
Profil
ř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

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: