Autor | Zpráva | ||
---|---|---|---|
JunekCZ Profil |
Dobrý den.
Vytvářím pro svůj web systém novinek, které se mají při kliknutí - číst více - otevřít na stejném souboru. (Máme např 3 novinky na index.php, přičemž na tu, na kterou klikneme zůstane a ostatní se schovají.) Mám to ve while, takže se otvírají při - číst více - znovu všechny. Jenže když umístím kód mimo while, začne to kód ignorovat. Kód: $jetu = true; $vybervse = "SELECT * FROM novinky"; $result = mysqli_query($conn, $vybervse); if(mysqli_num_rows($result) > 0) { while($vypisvse = mysqli_fetch_assoc($result)) { if(isset($_POST['nevypisuj'])) { echo ' <div id="novinka"><div id="nadpis">' . $vypisvse['nadpis'] . '</div> <div id="zprava">' . $vypisvse['zprava'] . ' <form action="index.php" method="POST"> <input type="submit" class="logins name="vypisuj" value="Číst více" style="float: left; width: 40%; margin-top: 20px;" /> </form> </div> <div id="user"> <font color="#A3A3A3">Zveřejnil:</font> ' . $vypisvse['uzivatel'] . ' </div> <br /> <div id="datum">' . $vypisvse['time'] . '</div> </div>'; } if(isset($_POST['vypisuj'])){ $vyberjednu = "SELECT * FROM novinky WHERE id='" . $vypisvse['id'] . "'"; $vyslednice = mysqli_query($conn, $vyberjednu); if(mysqli_num_rows($vyslednice) > 0){ $podleid = mysqli_fetch_assoc($vyslednice); echo ' <div id="novinka"> <div id="nadpis">' . $podleid['nadpis'] . '</div> <div id="zprava">' . $podleid['zprava'] . ' <form action="index.php" method="POST"> <input type="submit" class="logins" name="nevypisuj" value="Zpět k novinkám" style="float: left; width: 40%; margin-top: 20px;" /> </form> </div> <div id="user"><font color="#A3A3A3">Zveřejnil:</font> ' . $podleid['uzivatel'] . '</div> <br /> <div id="datum">' . $podleid['time'] . '</div> </div>'; $jetu = false; } } else { if($jetu){ echo ' <div id="novinka"><div id="nadpis">' . $vypisvse['nadpis'] . '</div> <div id="zprava">' . $vypisvse['zprava'] . ' <form action="index.php" method="POST"> <input type="submit" class="logins" name="vypisuj" value="Číst více" style="float: left; width: 40%; margin-top: 20px;" /> </form> </div> <div id="user"> <font color="#A3A3A3">Zveřejnil:</font> ' . $vypisvse['uzivatel'] . ' </div> <br /> <div id="datum">' . $vypisvse['time'] . '</div> </div>'; } } } } else { echo 'Někde je chyba'; } Předem děkuji za odpověď, JunekCZ |
||
Keeehi Profil |
#2 · Zasláno: 13. 6. 2016, 15:58:17
JunekCZ:
Fuj, to je prasárna. A tím myslím jak kód, tak tak nápad mít 4 různé obsahy na jedné url. Vyhledavače tě za to budou nenávidět, takže ta stránka bude ve výsledku nedohledatelné, nedá se to okazovat a vůbec to bude přinášet spoustu problémů. Opravit a zprovoznit se to samozřejmě dá, ale podporovat tě v tom nebudu. |
||
JunekCZ Profil |
#3 · Zasláno: 13. 6. 2016, 16:32:21
Keeehi:
Nejde mi tu o to, čeho jsou schopni vyhledavače a čeho ne. Mám to dané jako dobrovolný domácí úkol, kde zadání bylo takové, jaké jsem uvedl. Nevadí tedy. Děkuji za odpověď a pokusím se kód nějak upravit. |
||
Lonanek Profil |
#4 · Zasláno: 13. 6. 2016, 18:44:02
musím souhlasit s Keeehi, nicméně jako domácí úkol (byť asi pan učitel neví co je slušné) napovím.
JunekCZ: „Mám to ve while, takže se otvírají při - číst více - znovu všechny.“ Ano to je dáno logikou přístupu. Nejjednodušší je vytvořit si UML a tam si vše popsat. testovat existenci proměnné pro výpis jednoho článku => existuje => vypsat jen konkrétní a konec neexistuje => vypsat všechny články a konec. Takhle to vždy vypíše všechny články ať již zabalené nebo rozbalené. |
||
JunekCZ Profil |
#5 · Zasláno: 14. 6. 2016, 12:11:30
Dobrá tedy. UML Jsem si vytvořil, ovšem nevyřešilo to mou chybu.
Nevěděl by tedy někdo jiné řešení? Předem děkuji za odpověď JunekCZ. |
||
Lonanek Profil |
#6 · Zasláno: 14. 6. 2016, 14:55:19
Pokud jste si vytvořil diagram ale neupravil podle něj kód, pak to problém nevyřeší.
Nepředpokládáte, že Vám zde někdo domácí úkol napíše? Řešení jsem Vám naznačil v předchozím příspěvku. |
||
JunekCZ Profil |
#7 · Zasláno: 14. 6. 2016, 18:42:00
Lonanek:
To samozřejmě ne, s kódem jsem si hrál, ovšem jsem dospěl ke stejnému výsledku. Dát to za while. Tedy jsem znovu na začátku a nevím co mám udělat s jedinou podmínkou, aby kód fungoval tak, jak by měl. |
||
Lonanek Profil |
Např.:
... nacti nastaveni ... ... vypis hlavicku stranky ... if ($jeden_clanek) { ... vypis jeden clanek ... } else { ... vypis perex vsech clanku ... } ... vypis paticku stranky ... Samozřejmě je vhodné sem také vložit řešení. |
||
Časová prodleva: 9 let
|
0