Autor Zpráva
vit
Profil *
cau v souboru chtel bych, abych mel vice novinek vlozenych z db pod sebou na jedne strance a po dosazeni rekneme 20ti by se stranky automaticky rozkouskovala. zatim mam v souboru novinky.php novink vlozene z db timto scriptem a zobrazi se jen kdyz do url napisete ../novinky.php?read=1...:
<?php
  require "db.php";
  if(isset($_GET['read'])){
  $id=(int)$_GET['read'];     // Do proměnné $id si dáme číslo volaného článku. Tuto proměnnou raději z bezpečnostních důvodů přetypujeme na INTEGER     // Spojení na databázi
  $Vyber=mysql_query("SELECT `nazev`,`clanek`,`hit` FROM `clanky` WHERE `id`='$id' LIMIT 1") or die(mysql_error());
    $Vypis=mysql_fetch_array($Vyber) or die(MySQL_Error()); // Naplníme pole
      if($Vypis['nazev']){  // Dostali jsme nějaký výsledek, vypíšeme článek
        echo "
          <h2>".$Vypis['nazev']."</h2>
          <p>".$Vypis['clanek']."</p>
          <p>Přečteno: ".$Vypis['hit']."x </p>
          ";
        // Protože jsme "otevřeli" tento článek, přičteme mu hit.
        mysql_query("UPDATE `clanky` SET `hit`=`hit`+1 WHERE `id`='$id' LIMIT 1");
      }else{
        echo "Článek s takovým ID se v databázi nenachází.";
      }
 }
 ?>
panther
Profil
vit:
- odeber LIMIT z SQL dotazu
- mysql_fetch_assoc dej do cyklu while
- o stránkování se tu napsalo spoustu, hledej
vit
Profil *
- mysql_fetch_assoc dej do cyklu while a to se prosím dělá jak? :D
__construct
Profil
vit:
while ($Vypis = mysql_fetch_array($Vyber)) {
    // tvoj výpis ..
}

Inak medzi rečou .. čo takto sa začať učiť programovať postupne a nie hneď skočiť k databázam ..? Cykly ako FOR, WHILE sú základy .. Inak sem budeš písať každých 15 minút o pomoc ..
vit
Profil *
tak zacneme jednodusejc nechapu jak mam mit na strance vice novinek kdyz to vkladam timto kodem.
__construct
Profil
<?php
  require "db.php";
  $Vyber=mysql_query("SELECT `nazev`,`clanek`,`hit` FROM `clanky` LIMIT 20") or die(mysql_error());
   while ($Vypis = mysql_fetch_array($Vyber)) {
        echo "
          <h2>".$Vypis['nazev']."</h2>
          <p>".$Vypis['clanek']."</p>
          <p>Přečteno: ".$Vypis['hit']."x </p>
          <hr />
          ";
   }
 }
 ?>
vit
Profil *
Díky moc, ale když jsem si tam přídal
mysql_query("UPDATE `clanky` SET `hit`=`hit`+1");
,aby fungovalo kolikrát si to kdo přečetl tak mi to tam přičítá podle toho kolik je tam novinek :)
__construct
Profil
aby Ti správne fungovalo to pripočítavanie tak si to uprav takto :
<?php
  require "db.php";
  $Vyber=mysql_query("SELECT `id`,`nazev`,`clanek`,`hit` FROM `clanky` LIMIT 20") or die(mysql_error());
   while ($Vypis = mysql_fetch_array($Vyber)) {
        echo "
          <h2>".$Vypis['nazev']."</h2>
          <p>".$Vypis['clanek']."</p>
          <p>Přečteno: ".$Vypis['hit']."x </p>
          <hr />
          ";
          mysql_query("UPDATE `clanky` SET `hit`=`hit`+1 WHERE `id`={$Vypis['id']} LIMIT 1");
   }
 }
 ?>

A ešte raz Ti pripomínam kúp si nejakú knihu o PHP & MySQL a choď od začiatku - bude to pre Teba ľahšie ;-)
vit
Profil *
to mam taky v planu po skusenosti s tutim :D
vit
Profil *
Promin ale to nefunguje. Jo a posledni otazka ted se mi ty clanky radi podle abecedy a ja bych je chtel radit podle id
SpotRudloff
Profil
mysql_query("SELECT * FROM tabulka ORDER BY id DESC");

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: