Cyklus hledání v DB – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Cyklus hledání v DB – PHP – Fórum – Programujte.comCyklus hledání v DB – PHP – Fórum – Programujte.com

 

Amatér David
~ Anonymní uživatel
4 příspěvky
19. 12. 2015   #1
-
0
-

účel tohoto kódu je:

vyhledat v db "filmy" záznam a zobrazit podle dvou klíčů (ale pokud nějaké id z db smažu a řada id je třeba 1, 3, 4, 5... tak místo toho, aby to u id=2 přeskočilo na id=3 tak nezobrazi nic)

jak to opravit? díky

    <?php
    $a = $a+1;
    $vysledek2 = mysql_query
    ("SELECT * FROM filmy WHERE zanr_id = 5 AND id = $a");       
    
    while ($zaznam = mysql_fetch_array($vysledek2) and ($zaznam["id"] != ""))
    { 
    echo $zaznam["nazev"];
    echo $zaznam["id"];
    }         
    ?>

Nahlásit jako SPAM
IP: 109.80.27.–
Kit+15
Guru
19. 12. 2015   #2
-
0
-

#1 Amatér David
Z toho SQL dotazu vyhoď ten konec "AND id = $a". Tím se to celé zjednoduší: 

<?php
$vysledek2 = mysql_query("SELECT * FROM filmy WHERE zanr_id = 5");    
while ($zaznam = mysql_fetch_array($vysledek2)) { 
    echo $zaznam["nazev"];
    echo $zaznam["id"];
}      

SQL dotazy nepatří do cyklu.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Amatér David
~ Anonymní uživatel
4 příspěvky
19. 12. 2015   #3
-
0
-

#2 Kit

já bych ale potřeboval, aby když tenhle skript napíšu někde znova, tak aby se zobrazil další záznam s vyšším id

Nahlásit jako SPAM
IP: 109.80.27.–
Kit+15
Guru
19. 12. 2015   #4
-
0
-

#3 Amatér David
Proč tedy máš v názvu dotazu slovo "cyklus", když to nechceš volat v cyklu?

Je nutné si někde (nejlépe přímo v databázi) poznamenat, které ID bylo naposledy použito a příště se zeptat na "záznam s nejblíže vyšším ID". V dotazu tedy nebude žádné "+1", protože vůbec netušíš, zda to bude +1 nebo +200000.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
amaté david
~ Anonymní uživatel
1 příspěvek
20. 12. 2015   #5
-
0
-

Kdyz já bych právě chtěl, aby to projelo cyklus znova, když narazí na id, které tam není. Přeci to pro programatory musí bejt brnkacka :) upravit ten můj while cyklus, aby tak fungoval :)

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 109.80.27.–
Kit+15
Guru
20. 12. 2015   #6
-
0
-

#5 amaté david
Proč chceš hledat ID, které není v databázi? Místo toho hledej nejblíže vyšší, než je to aktuální. Máš třeba ID=5, tak určitě chceš záznam s ID=8, pokud ID 6 a 7 neexistují. Na ID 6 a 7 je tedy zbytečné se ptát.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
amatér david
~ Anonymní uživatel
4 příspěvky
20. 12. 2015   #7
-
0
-

Budu se držet tvého prikladu: Kdyz běžný uživatel obnoví stránku a současně admin doplni film třeba s id6 :) tak aby ho to neignorovalo. Víte někdo, jak se takový cyklus da udělat? Jaká by tam mela byt podmínka?

Zasláno z mobilního telefonu.

Nahlásit jako SPAM
IP: 109.80.27.–
Kit+15
Guru
20. 12. 2015   #8
-
0
-

#7 amatér david
Vyjdu z předpokladu, že admin doplní ID=5, protože to je poslední známé ID: 

$id = 5;
$vysledek2 = mysql_query("SELECT * FROM filmy
    WHERE zanr_id = 14 AND id > $id ORDER BY id LIMIT 1");
while ($zaznam = mysql_fetch_array($vysledek2)) {
    echo $zaznam["nazev"];
    echo $zaznam["id"];
}

Výsledkem bude záznam s ID=8.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:207:e...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Amatér David
~ Anonymní uživatel
4 příspěvky
20. 12. 2015   #9
-
0
-

#8 Kit

mockrát děkuju =) 

Nahlásit jako SPAM
IP: 109.80.27.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 20 hostů

Podobná vlákna

Cyklus while v C — založil Marek

Cyklus — založil Jan Burant

Cyklus for — založil vojta

Cyklus — založil JerryM

Cyklus — založil Elendor

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý