Autor | Zpráva | ||
---|---|---|---|
Zdenda23 Profil * |
#1 · Zasláno: 9. 7. 2013, 16:18:38 · Upravil/a: Zdenda23
ahoj, zkoušim trošku učit se sql. Zkusil jsem si vkladat data do DB, ale nejdou mi vypsat na stránce. Mám to tak to.
<?php $s = "blabla"; $j = "zkouska"; $h = "*****"; $d = "zkouska"; soubor pripoj.php mysql_connect($s, $j, $h) or die("Nepodařilo se připojit k databázi"); mysql_select_db($d) or die("Nepodařilo se zvolit databázi"); ?> <?php include("pripojeni_k_db.php");?> <? $vypis=mysql_query("SELECT * FROM Komentare WHERE Jmeno_komentare LIKE jedna"); echo "$vypis"; ?> Jo malem bych zapoměl chci vypsat jen data, které ve sloupci Jmeno_komentare mají slovo jedno |
||
juriad Profil |
Jmeno_komentare = 'jedna' LIKE se obvykle používá pro hledání podřetězců pomocí %; pokud chceš řádky s hodnotou přesně 'jedna', použij =. |
||
Zdenda23 Profil * |
#3 · Zasláno: 9. 7. 2013, 17:00:51
Tak sem to udělal takto
<?php include("pripojeni_k_db.php");?> <? $vypis=mysql_query("SELECT * FROM Komentare WHERE Jmeno_komentare = 'jedna'"); echo "$vypis"; ?> V tabulce mam ID Jmeno_komentare Jmeno Obsah 1 jedna Zdenda Zkousime 1 2 jedna Kaca Kaca 1 3 dva Petr Petr 2 tak a mělo by to vypsat na stránkách tak to. Bez ID jedna Zdenda Zkousime 1 jedna Kaca Kaca 1 a to 3 dva Petr Petr 2 by to vůbec nemělo vypsat. |
||
juriad Profil |
#4 · Zasláno: 9. 7. 2013, 17:16:28
Aha, přehlédl jsem tu podstatnější chybu.
mysql_query nevrací přímo výsledky, jednotlivé řádky musís procházet postupně; rovnou jsem dopsal formátování do tabulky. $vypis=mysql_query("SELECT * FROM Komentare WHERE Jmeno_komentare = 'jedna'"); # See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc. echo "<table>"; while ($radek = mysql_fetch_assoc($vypis)) { echo "<tr>"; echo "<td>" . $radek['ID'] . "</td>"; echo "<td>" . $radek['Jmeno_komentare'] . "</td>"; echo "<td>" . $radek['Jmeno'] . "</td>"; echo "<td>" . $radek['Obsah'] . "</td>"; echo "</tr>"; } echo "</table>"; |
||
Zdenda23 Profil * |
#5 · Zasláno: 9. 7. 2013, 17:59:28
Dobře, děkuju ti. Tak vše vyřešeno :)
|
||
Časová prodleva: 6 dní
|
|||
Zdenda23 Profil * |
#6 · Zasláno: 15. 7. 2013, 17:03:23
Jak vyřešit to aby se ředky vypysovali od nejnovějšího (směrem nahoru) po nejstarší (směrem dolu)
$vypis=mysql_query("SELECT * FROM Komentare WHERE Jmeno_komentare = 'jedna'"); # See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc. echo "<table>"; while ($radek = mysql_fetch_assoc($vypis)) { echo "<tr>"; echo "<td>" . $radek['ID'] . "</td>"; echo "<td>" . $radek['Jmeno_komentare'] . "</td>"; echo "<td>" . $radek['Jmeno'] . "</td>"; echo "<td>" . $radek['Obsah'] . "</td>"; echo "</tr>"; } echo "</table>"; |
||
juriad Profil |
#7 · Zasláno: 15. 7. 2013, 17:09:02 · Upravil/a: juriad
Prostě rozšíříš SQL dotaz o další klauzuli.
Předpokládám, že tabulka Komentáře má sloupec Datum, který je typu DATETIME. SELECT * FROM Komentare WHERE Jmeno_komentare = 'jedna' ORDER BY Datum DESC Pokud tam takový sloupec nemáš, ale ID má AUTO_INCREMENT, můžeš řadit podle ID: SELECT * FROM Komentare WHERE Jmeno_komentare = 'jedna' ORDER BY ID DESC Mimochodem, je dobrou praxí názvy tabulek a sloupců mít malými písmeny a jednotlivá slova názvu oddělovat podtržítkem. Mít jen první písmeno velké je hodně netypické. |
||
Zdenda23 Profil * |
#8 · Zasláno: 15. 7. 2013, 17:16:05
Děkuju, no je ale mě se to tak líbí v přehledu no. Jinak datum generuju pomocí $Datum = Date("j/m/Y H:i:s", Time()); takže zvolim řazení podle id
|
||
juriad Profil |
#9 · Zasláno: 15. 7. 2013, 17:21:00
Jakého typu máš sloupeček Datum v databázi?
Pokud to není DATETIME či TIMESTAMP či INT (preferovaný by měl být DATETIME), tak si zaděláváš na problémy (některé dotazy v budoucnu nebude téměř vůbec možné realizovat) Hodně těžko budeš sestavovat třeba dotaz na výpis všech komentářů za poslední hodinu. |
||
Zdenda23 Profil * |
#10 · Zasláno: 15. 7. 2013, 17:26:59
typu varchar na 4O znaků, tam pomocí Date vložim datum a pak to jen vypisu. Nene nic jiného s tim určitě realizovat nehodlám.
|
||
juriad Profil |
#11 · Zasláno: 15. 7. 2013, 17:33:42
Zdenda23:
OK, je to tvoje volba; jen varuji před možnými komplikacemi. Data v databázi by měla být ideálně prostá jakéhokoli formátování – o to by se měla starat až prezentační vrstva. Mohl bys třeba chtít zobrazovat datum jako tady na diskusi, nahradit datum za slova dnes, včera, předevčírem. |
||
Zdenda23 Profil * |
#12 · Zasláno: 15. 7. 2013, 17:38:47
Já to chápu, že mi nepudou pak udělat různé blbůstky jako dnes napsáno, nebo vypsat na první stranu jen dnešní komenty a na druhou včerejší apod. Jenže bude to jen stránka taková týmová, kde prostě jen bude čistě kniha. Kde jednoduše vloží vzkaz a jednoduše se zobrazí. Nic víc nechcem. :) Ale děkuju ti za upozornění.
|
||
Časová prodleva: 11 let
|
0