Autor Zpráva
Adrián Prelovský
Profil
Zdravím mám toto:

<form action="obsah/events/save.php" method="get">
Titulek:<input type="text" name="titulek" style="width:80%";><br />
Datum:<input type="date" name="datum">
Zkraceny clanek:<input type="text" name="zkracene">
Článek:<input type="text" name="clanek" style="width:600px; height:600px;">
<input type="submit" value="uložit">

save.php
<?php
require("db.php");
$spojeni = mysql_connect($db_server, $db_user, $db_pass) or Die(mysql_error());
mysql_select_db($db_databaze, $spojeni) or Die(mysql_error());


$titulek = $_GET['titulek'];
$datum = $_GET['datum'];
$zkracene = $_GET['zkracene'];
$clanek = $_GET['clanek'];


$sql = "INSERT INTO events (titulek, datum, zkracene, clanek) VALUES ('$titulek','$datum','$zkracene','$clanek')";

$vysledek = mysql_query($sql);

    if ($vysledek)
print "<b> Článek vložen </b>";
else print "<b>Článek nebyl vložen ";
echo mysql_error();
mysql_close($spojeni);
    ?>
 

vypis.php:
<?php
require("db.php");
$spojeni = mysql_connect($db_server, $db_user, $db_pass) or Die(mysql_error());
mysql_select_db($db_databaze) or Die(mysql_error);

$vysledek = mysql_query( 
"SELECT * FROM events ORDER BY datum DESC LIMIT 0,50", 
$spojeni);
/* Konec přímé práce s databází. */

/* Cyklem procházím řádky výsledku a vytahuju z něj hodnoty do nového pole $zaznam*/
while ($zaznam = mysql_fetch_array($vysledek) ): 
echo "Titulek: ";
echo $zaznam["titulek"];
echo "<br> ";
echo "Datum: "; 
echo $zaznam["datum"];
echo "<br>";
echo "Úryvek: ";
echo $zaznam["zkracene"];
echo "<br>";
echo "clanek: ";
echo $zaznam["clanek"];
echo "</p>";
endwhile;
?>


Můj problém:

Chci aby se mi to na stránce vypsalo takto :
Titulek: ....
Datum: ....
Úryvek:...
A potom bylo "zobrazit celý článek" ... nevím jak tomu mám udělat URL aby se to vypisovalo z DB (Nejlíp asi) podle ID.

Výpis z DB:
Struktura tabulky `events`
--

CREATE TABLE IF NOT EXISTS `events` (
  `id` int(11) NOT NULL auto_increment,
  `titulek` text NOT NULL,
  `datum` date NOT NULL default '0000-00-00',
  `zkracene` text NOT NULL,
  `clanek` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=16 ;

Předem díky za rady :).
jenikkozak
Profil
Adrián Prelovský:
Chci aby se mi to na stránce vypsalo takto :
Titulek: ....
Datum: ....
Úryvek:... "

Tak ty další položky v souboru vypis.php jednoduše nevypisuj.

nevím jak tomu mám udělat URL aby se to vypisovalo z DB (Nejlíp asi) podle ID.
echo "<a href='stranka_s_celym_clankem.php?id=$zaznam[id]'>zobrazit celý článek</a>";

A ta stránka stranka_s_celym_clankem.php bude vypadat stejně jako vypis.php, jenom omezíš výpis s databáze na konkrétní položku:
"SELECT * FROM events WHERE id=".(int) $_GET["id"]
A protože bude výsledkem dotazu jediná položka, nebudeš potřebovat ten cyklus while.
Adrián Prelovský
Profil
Tak teď už jsem v koncích....

vytvořil jsem si ten stranka_s_celym_clankem.php
<?php
require("db.php");
$spojeni = mysql_connect($db_server, $db_user, $db_pass) or Die(mysql_error());
mysql_select_db($db_databaze) or Die(mysql_error);

$vysledek = mysql_query('SELECT * FROM events WHERE id=".(int) $_GET["id"]$spojeni');

/* Konec přímé práce s databází. */

/* Cyklem procházím řádky výsledku a vytahuju z něj hodnoty do nového pole $zaznam*/
$zaznam = mysql_fetch_array($vysledek) ;
echo "Titulek: ";
echo $zaznam["titulek"];
echo "<br> ";
echo "Datum: "; 
echo $zaznam["datum"];
echo "<br>";
echo "Článek: ";
echo "$zaznam["clanek"]";
echo "<br>";
?>

když to tak mám, tak mi to jednak napíše :
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\ComplexWebServer\http_docs\DRAX\administrace\obsah\events\stranka_s_celym_clankem.php on line 11
a pak to vypíše titulek, datum, článek, ale prázdny.
LaMMa
Profil
Máš zle napísaný dotaz do DB. Naštuduj si aspoň základy práce s reťazcami a potom skús toto:
mysql_connect($db_server, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_databaze) or die(mysql_error());
 
$vysledek = mysql_query("SELECT * FROM `events` WHERE `id`=".(int)$_GET['id']." LIMIT 1") or die(mysql_error());
jenikkozak
Profil
Adrián Prelovský:
Naivně jsem předpokládal, že soubor stranka_s_celym_clankem.php přejmenuješ tak, jak by ti vyhovovalo.
Vynechal jsi naprosté základy PHP, vrať se k nim. Takhle kusy kódu, které tu získáš, nejsi schopen slepit dohromady.
Adrián Prelovský
Profil
jenikkozak:
Ale já tu stránku mám pojmenovanou jinak, ale tady jsem to napsal tak jak to tu napsané bylo;)
Lamicz
Profil
Adrián Prelovský:
mysql_* funkce by se již dnes na nových projektech používat neměly, v PHP "přežívají" jenom díky tomu, že jsou hodně rozšířeny a přestalo by fungovat obrovské množství webů.

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: