Autor Zpráva
lopik007
Profil
Zdravím chtěl bych se zeptat jak udělat výpis s databáze pěti nejnovějších článku? Asi nějak takto, ale nevím jak dál

"SELECT * FORM "clanky" ORDER BY "id_c" DESC LIMIT 5"
Alphard
Profil
Na ten mix create a limited radši zapomeňte :-)
Vytvořte normální tabulku a pak použijte dotaz:
select * from clanky order by id desc limit 5

Jestli chcete uvozovat název tabulky, musíte použít zpětné apostrofy, normální uvozovky fungovat nebudou.
Budulinek
Profil
možná bych se zamyslel nad tím, podle čeho řadit. ID článku asi nebude nejšťastnější, protože co když budeš chtít vložit do databáze článek, který však budeš chtít vydat až později? Spíš bych řadil podle data vydání, přijde mi to logičtější. Navíc tak získáš možnost vypisovat jen vydané články, ukládat do DB rozepsané \ nevydané články a popřípadě vypisovat články v přípravě (pokud budeš chtít).

Co se týče dotazu, tak pak už to jen načteš do pole a zobrazíš, ne?
lopik007
Profil
Budulinek:

Tak já mám možnost jen napsat článek a ihned jej zveřejnit, S tou tabulkou v db umím jen ten select * form, ale nevím jak dál
lopik007
Profil
Poradí mi někdo co dál bych měl napsat do kódu? Já napsal tohle, ale jaksi nefunguje

<?php
include("inc/db.php");
$sel = "SELECT * FROM clanky ORDER BY id_c DESC LIMIT 5";
$q = mysql_query($sel);

if ($q)
{
  while($fetch=mysql_fetch_array($q)){ 
    echo '<li>'.$f["jmeno"].'</li>';
  }
}else{
  echo "Chyba při dotazu na databázi, zkuste to prosím později nebo kontaktujte administrátora webu. Děkujeme za pochopení.";
}
?>
Alphard
Profil
Mohl byste to "jaksi nefunguje" trochu upřesnit?
dan55
Profil
 echo '<li>'.$fetch["jmeno"].'</li>';

Jak nefunguje?
Zkus opravit řádek 9
lopik007
Profil
dan55 Alphard:

No prostě nejde, nezobrazí se vůbec nic, když to includuju
dan55
Profil
[#7] dan55 Zkusil jsi to?
Máš v té tabulce něco?
Máš správně napsané připojení k db?
lopik007
Profil
ano mám napsáno připojeni k db správně a v tabulce mám články, když mám 23 článku, a tabulka se jmenuje clanky
dan55
Profil
<?php
include("inc/db.php");
$q = mysql_query("SELECT * FROM clanky ORDER BY id_c DESC LIMIT 5");
  while($data=mysql_fetch_array($q)){ 
    echo '<li>'.$data["jmeno"].'</li>';
  }
?>

zkus to jenom tak
lopik007
Profil
dan55:

Fakt díky, vyznáš se mnohokrát děkuji
dan55
Profil
lopik007:
není zač
lopik007
Profil
dan55:

A nevíš jak bych mohl ještě udělat aby byl v tom výpisu pěti článku odkaz na ten daný článek?
SkIpPeR
Profil
<?php
include("inc/db.php");
$q = mysql_query("SELECT * FROM clanky ORDER BY id_c DESC LIMIT 5");
  while($data=mysql_fetch_array($q)){ 
    echo '<a href="odkaz na članek '.$data["jmeno"].'"><li>'.$data["jmeno"].'</li></a>';
  }
?>
lopik007
Profil
SkIpPeR:

Co mám dosadit místo "odkaz na članek"?
SkIpPeR
Profil
záleží jak voláš stránky, třeba index.php?clanek='.$data["jmeno"].' nebo index.php?page=clanky&id='.$data["id"].'
lopik007
Profil
Takto to bude fungovat?

echo '<a href="clanek.php? '.$data["jmeno"].'"><li>'.$data["jmeno"].'</li></a>';
SkIpPeR
Profil
clanek.php?nazev='.$data["jmeno"].'

ale pak v souboru clanek.php nezapomen definovat promenou $nazev = $_GET['nazev'];
lopik007
Profil
Takže nějak takto?

<?php
include("inc/db.php");
$q = mysql_query("SELECT * FROM clanky ORDER BY id_c DESC LIMIT 5");
  while($data=mysql_fetch_array($q)){ 
    echo '<a href="clanek.php?='.$data["jmeno"].'"><li>'.$data["jmeno"].'</li></a>';
  }
?>
SkIpPeR
Profil
mezi ? a = musí být nějaká proměnná (myslim)
lopik007
Profil
a sak*a co je proměna? O php nevím skoro nic, ale něco už umím. Nemůžeš mi prosím napsat jak by to mělo vypadat?
Taps
Profil
lopik007:
    echo '<a href="clanek.php?id='.$data["jmeno"].'"><li>'.$data["jmeno"].'</li></a>';
SkIpPeR
Profil
Taps:
přesně tak
dan55
Profil
soubor (treba) index.php
<?php
include("inc/db.php");
$q = mysql_query("SELECT * FROM clanky ORDER BY id_c DESC LIMIT 5");
  while($data=mysql_fetch_array($q)){ 
    echo '<a href="clanek.php?name='.$data["jmeno"].'"><li>'.$data["jmeno"].'</li></a>';
  }
?>

soubor clanek.php
<?php 
include("inc/db.php");
$jmeno = htmlspecialchars($_GET['name']);
$q = mysql_query("SELECT * FROM clanky WHERE jmeno='$jmeno'");
  while($data=mysql_fetch_array($q)){ 
   echo"<h2>".$data['jmeno']."</h2>";
   echo"<p>";
   echo $data['text'];
   echo"</p>";
   }
?>

Místo text dej to co máš v db jako text článku
SkIpPeR
Profil
dan55:
předběhl si mě :)
lopik007
Profil
Tady je clanek.php, nevím kde tam napsat to od dan55 pomůžete?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Content-language" content="cs" />
<meta http-equiv="cache-control" content="no-cache, must-revalidate" />
<meta name="keywords" content="" />
<link rel="alternate" type="application/rss+xml" title="RSS tohoto webu" href="feed.rss" />
<link rel="stylesheet" type="text/css" href="default.css" />
<?php if(isset($_GET["jmeno"])){ include("inc/db.php"); $sel = "select * from clanky,autori where clanky.autor=autori.id_a and clanky.bezdk='{$_GET["jmeno"]}'";$q = mysql_query($sel);$f = mysql_fetch_array($q);?>
<link rel="shortcut icon" href="favicon.ico" />
<title><?php echo $f["jmeno"];?> | lopik blog píše Lopata Jakub</title>
</head>
<body>
<?php include("inc/polozky/vrsek.html")?>
<div id="text"><?php
$upd = "update clanky set pristupy=pristupy+1 where bezdk='{$_GET["jmeno"]}'";$qupd=mysql_query($upd);
?>
<div style="width: 500px;margin:auto;text-align: left !important;">
<h1><?php echo $f["jmeno"];?></h1>
<em><?php echo $f["anotace"];?></em><br />
<?php
$f["text"] = str_replace("*01*", "<img src='grafika/smile/1.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*02*", "<img src='grafika/smile/2.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*03*", "<img src='grafika/smile/3.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*04*", "<img src='grafika/smile/4.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*05*", "<img src='grafika/smile/5.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*06*", "<img src='grafika/smile/6.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*07*", "<img src='grafika/smile/7.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*08*", "<img src='grafika/smile/8.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*09*", "<img src='grafika/smile/9.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*10*", "<img src='grafika/smile/10.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*11*", "<img src='grafika/smile/11.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*12*", "<img src='grafika/smile/12.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*13*", "<img src='grafika/smile/13.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*14*", "<img src='grafika/smile/14.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*15*", "<img src='grafika/smile/15.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*16*", "<img src='grafika/smile/16.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*17*", "<img src='grafika/smile/17.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*18*", "<img src='grafika/smile/18.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*19*", "<img src='grafika/smile/19.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*20*", "<img src='grafika/smile/20.gif' alt='smajlik' />", $f["text"]);
$f["text"] = str_replace("*21*", "<img src='grafika/smile/21.gif' alt='smajlik' />", $f["text"]);
$f["text"] = preg_replace("/\[hs\](.*)\[\/hs\]/", "<a href='$1' onclick='return hs.expand (this)' class='highslide'><img width=\"145\" style='float: left !important;' height=\"109\"  src='$1' /></a> &nbsp;&nbsp;&nbsp;&nbsp;", $f["text"]);
echo $f["text"];?>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
Napsal: <?php echo $f["login"];?> | Dne <?php echo $f["cas"];?> | Zhlédnuto <?php echo $f["pristupy"];?>x
</div>
<?php include("komentare.php"); }?>
</div>
<?php include("inc/polozky/bocnice.html");include("inc/polozky/spodek.html");?>
Jeryk
Profil
Dobrý deň,
Mám problém z týmto výpisom, keď ho nechám v tomto tvare (viz. kod) tak ide normálne,
<?php

include("db.php");

Header ('Content-type: text/html; charset=utf-8');

$connect = MySQL_PConnect($cfg['MySQL_Server'], $cfg['MySQL_User'], $cfg['MySQL_Passwd']);
if (!$connect)
{
    print 'Pripojiť sa k MySQL nepodarilo! Prosím kontaktujte administrátora (Jeryka).';
    exit;
}
MySQL_Select_DB($cfg['MySQL_DB']);

$Sql = MySQL_Query("SELECT clanok FROM tabulka ");
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Výpis dat z tabulky</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
<h1>Výpis dat z tabulky:</h1>
<?php
print MySQL_Num_Rows($sql);
?>
</p>



<?php
while ($data = MySQL_Fetch_Array($Sql))
{
    
    for ($i=0; $i<MySQL_Num_Fields($Sql); $i++)
    {
        PrintF ('%s<br>', $data[$i]);
    }
    
}
?>

</body>
</html>


ale keď zmením kód na
$Sql = MySQL_Query("SELECT clanok FROM tabulka ORDER BY id DESC");

tak už nejde. Mohli by ste my prosím vás pomôcť?
Alphard
Profil
Jeryk:
Vypište si mysql_error(), ale hádám, že bude problém se sloupcem id, máte ho vůbec v tabulce?
Jeryk
Profil
Áno, id som mal v tabuľke, ale pod iným názvom a toho som si nevšimol... Ale ďakujem za pomoc.

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: