Avatar
mat.masar
Člen
Avatar
mat.masar:

Ahojte, řeknete mi prosím vás, co s tím mám udělat, aby tam nebyla smyčka v přesměrování?

 if (isset($_GET['poznamka']))
        $url = $_GET['poznamka'];
        else
        $url = 'uvod';

$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url=?', $url);
$vysledek= mysql_fetch_array($poznamka);

if (!$poznamka)
{
        if ($url != 'chyba')
        {
                header('Location: zobrazenipoznamky.php?poznamka=' .htmlspecialchars($url));
                exit();
        }
        else
                die('Nebyla nalezena chybova poznamka');
}
 ?>
 
Odpovědět 27.2.2015 19:00
Avatar
Nahoru Odpovědět  -1 27.2.2015 19:03
Svoboda tvé pěsti končí na špičce mého nosu
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

Ty bereš nějakou poznámku. Tu si poté ukládáš. Pokud tam není chyba, přesměrováváš. Takhle se vytvoří smyčka, protože furt přesměrováváš na to samé. Místo přesměrování vypiš si tu poznámku. :)

Nahoru Odpovědět 27.2.2015 19:07
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
mat.masar
Člen
Avatar
mat.masar:

Aha, a mám to teda dělat takhle?
Připadá mi to nějaké divné

 if (isset($_GET['poznamka']))
        $url = $_GET['poznamka'];
        else
        $url = 'uvod';

$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url=?', $url);
$vysledek= mysql_fetch_array($poznamka);

if (!$poznamka)
{
        if ($url != 'chyba')
        { ?>
          <html>
 <head>
 <link rel="stylesheet" href="styl-index.css" type="text/css" />
 </head>
 <body>
 <article>
<h1><?php echo htmlspecialchars($poznamka['nadpis']); ?></h1>
<?php echo $poznamka['poznamka']; ?>

 </article>

 </body>

 </html>
        <?php }
        else
                die('Nebyla nalezena chybova poznamka');
}
 ?>
 
Nahoru Odpovědět  +1 27.2.2015 19:10
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na mat.masar
Marek Z.:

Musíš vědět sám co chceš aby se stalo, pokud ta poznámka neexistuje. Přesměrovat na domovskou stránku či?

Nahoru Odpovědět 27.2.2015 19:15
Chybami se člověk učí, běžte se učit jinam!
Avatar
mat.masar
Člen
Avatar
mat.masar:

Jo, pokud neexistuje tak asi přesměrovat na domovskou stránku. Ale hlavně potřebuju aby se ta poznámka vypsala (samozřejmě pokud existuje). Je to dělané podle tutoriálu NERS tady na webu. Akorád já jsem měl zadání s poznámkama.

 
Nahoru Odpovědět 27.2.2015 19:21
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na mat.masar
Marek Z.:

Chápu to tak z tvého kódu, že jsme na stránce zobrazenipoznam­ky.php, že?
Ty se dotazuješ na to jestli existuje poznámka z parametru v db a pokud ano tak přesměruješ na stejnou stránku se stejným parametrem, to nemá logiku.

Místo přesměrování udělej tedy výpis..

Nahoru Odpovědět 27.2.2015 19:25
Chybami se člověk učí, běžte se učit jinam!
Avatar
mat.masar
Člen
Avatar
mat.masar:

Ano, na hl-stranka.php si uživatel vyhledá poznámku podle nadpisu(vypíše se nadpis) a když na něho klikne má se ta poznámka zobrazit na stránce zobrazenipoznam­ky.php.. Ale jak teda má být ten výpis? Má to být jak jsem psal? Připadá mi to divné.

 
Nahoru Odpovědět 27.2.2015 19:29
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

Else můžeš změnit:

else {
    header('Location: .');
    exit;
}

a místo

<?php echo ...; ?>

můžeš použít

<?= ... ?>
Editováno 27.2.2015 19:31
Nahoru Odpovědět 27.2.2015 19:31
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
mat.masar
Člen
Avatar
mat.masar:

Moc nevím, jak to mám přesně udělat. Napadlo mě to udělat takhle. Je to dobře?

 <html>
 <head>
 <link rel="stylesheet" href="styl-index.css" type="text/css" />
 </head>
 <body>
 <article>
 <?php
$link = mysql_connect("localhost", "root", "your_password");
 mysql_select_db('internetove-poznamky',$link);

 if (isset($_GET['poznamka']))
        $url = $_GET['poznamka'];
        else
        $url = 'uvod';

$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url=?', $url);
?>
<h1><?php echo htmlspecialchars($poznamka['nadpis']); ?></h1>
<?php
$vysledek= mysql_fetch_array($poznamka);

if (!$poznamka)
{
        if ($url != 'chyba')
        {
           echo $poznamka['poznamka'];
        }
        else
               header('Location: hl-stranka.php');
                exit();
}
 ?>


 </article>
 </body>
 </html>
 
Nahoru Odpovědět 27.2.2015 19:41
Avatar
mat.masar
Člen
Avatar
mat.masar:

Moc nevím, jak to mám přesně udělat. Napadlo mě to udělat takhle. Je to dobře?

 <html>
 <head>
 <link rel="stylesheet" href="styl-index.css" type="text/css" />
 </head>
 <body>
 <article>
 <?php
$link = mysql_connect("localhost", "root", "your_password");
 mysql_select_db('internetove-poznamky',$link);

 if (isset($_GET['poznamka']))
        $url = $_GET['poznamka'];
        else
        $url = 'uvod';

$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url=?', $url);
?>
<h1><?php echo htmlspecialchars($poznamka['nadpis']); ?></h1>
<?php
$vysledek= mysql_fetch_array($poznamka);

if (!$poznamka)
{
        if ($url != 'chyba')
        {
           echo $poznamka['poznamka'];
        }
        else
               header('Location: hl-stranka.php');
                exit();
}
 ?>


 </article>
 </body>
 </html>
 
Nahoru Odpovědět 27.2.2015 19:41
Avatar
Marek Z.
Redaktor
Avatar
Odpovídá na mat.masar
Marek Z.:

Resp. tam můžeš dát cokoliv a není to divné pokud to je samostatná stránka bez dalšího obsahu..

if (isset($_GET['poznamka']))
        $url = $_GET['poznamka'];
       else
        $url = 'uvod';

$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url=?', $url);
$vysledek= mysql_fetch_array($poznamka);

if (!$poznamka)
{
        if ($url != 'chyba')
        {
                //Zde si proveď výpis vybrané zprávy
        }
        else
                header('Location: hl-stranka.php');
                die();
}
 ?>

Pokud se stránka samostatná a nevoláš ji třeba do nějakého jiného obsahu tak tam můžeš dát i html elementy, proč ne?.. :)

Nahoru Odpovědět 27.2.2015 19:41
Chybami se člověk učí, běžte se učit jinam!
Avatar
mat.masar
Člen
Avatar
mat.masar:
 <article>
 <?php
$link = mysql_connect("localhost", "root", "your_password");
 mysql_select_db('internetove-poznamky',$link);

 if (isset($_GET['poznamka']))
        $url = $_GET['poznamka'];
        else
        $url = 'uvod';

$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url=?', $url);
$vysledek= mysql_fetch_array($poznamka);

if (!$poznamka)
{
        if ($url != 'chyba')
        {
          echo $poznamka['poznamka'];
        }
        else
                     header('Location: hl-stranka.php');
                exit();
}
 ?>
<h1><?php echo htmlspecialchars($poznamka['nadpis']); ?></h1>

 </article>

a vypisuje mi to 2 chyby.
Warning: mysql_query() expects parameter 2 to be resource, string given in C:\Users\j\Des­ktop\PHP\zobra­zenipoznamky.php on line 16

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\Users\j\Des­ktop\PHP\zobra­zenipoznamky.php on line 17

 
Nahoru Odpovědět 27.2.2015 19:52
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

Musíš mít tu proměnnou přímo v dotazu, ne za, tohle je mysql_, ne PDO. :)

Nahoru Odpovědět 27.2.2015 19:53
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

A používej prosím tlačítko odpovědět, ať si toho všimneme. :)

Nahoru Odpovědět 27.2.2015 19:54
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
mat.masar
Člen
Avatar
Odpovídá na IT Man
mat.masar:

Dobře, budu to používat.
$poznamka = mysql_query(' SELECT * FROM poznamky WHERE url= $url');
$vysledek= mysql_fetch_a­rray($poznamka);
je již tedy dobře?

 
Nahoru Odpovědět 27.2.2015 20:01
Avatar
mat.masar
Člen
Avatar
Odpovídá na IT Man
mat.masar:

Ale stejně to pořád vypisuje chybu č.2: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Users\j\Des­ktop\PHP\zobra­zenipoznamky.php on line 17

 
Nahoru Odpovědět 27.2.2015 20:17
Avatar
sahlepik
Člen
Avatar
Odpovídá na mat.masar
sahlepik:

máš tam chybu, má tam být:

echo $vysledek['poznamka'];
<h1><?php echo htmlspecialchars($vysledek['nadpis']); ?></h1>
Editováno 27.2.2015 20:25
 
Nahoru Odpovědět  -2 27.2.2015 20:23
Avatar
sahlepik
Člen
Avatar
sahlepik:

Nechápu to "mínus", ale dle kódu, který prezentoval výše tam prostě má chybu v proměnné. Neřeším, že používá zastaralý ovladač mysql_ Mohl by mi tedy někdo ten mínus vysvětlit? Díky.

 
Nahoru Odpovědět 27.2.2015 20:30
Avatar
Tomáš123
Člen
Avatar
Odpovídá na mat.masar
Tomáš123:

Chyba znamená, že priradenie do premennej $poznamka neprebehlo v poriadku.

Funkcia mysql_query() vracia resource ak je operácia úspešná, inak vracia false (čo je boolean spomínaný v chybovom hlásení).

Obaľ slovo poznamky do SQL apostrofov t.j (``). Ak to nebude funogovať, tak obaľ do apostrofov aj časť za WHERE.

Nahoru Odpovědět  -1 27.2.2015 20:33
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
mat.masar
Člen
Avatar
mat.masar:

sahlepik:
Po tom co jsem tam dal ten tvůj kód tak to napsalo:
Parse error: syntax error, unexpected '<'

if ($url != 'chyba')
   {
     echo $poznamka['poznamka'];
             <h1><?php echo htmlspecialchars($poznamka['nadpis']); ?></h1>
   }

Tomáš123:
A po tvém:

$poznamka = mysql_query("SELECT * FROM 'poznamky' WHERE 'url= $url'");

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given
Tak nevím..

 
Nahoru Odpovědět 27.2.2015 20:41
Avatar
IT Man
Redaktor
Avatar
Odpovídá na sahlepik
IT Man:

Použiješ echo a nedáš tam <?php. To by ti ukázalo jen čisté HTML (tedy i tohle by se jen zobrazilo a nevypsalo) = chyba. ;)

Nahoru Odpovědět  -1 27.2.2015 20:43
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

Proměnná $poznamka je prázdná, proto ta chyba. Nemůže se provést tedy ta funkce, chybí jí parametry. :)

Nahoru Odpovědět 27.2.2015 20:45
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
Tomáš123
Člen
Avatar
Odpovídá na mat.masar
Tomáš123:

Takto by to už malo fungovať:

$poznamka = mysql_query("SELECT * FROM `poznamky` WHERE `url` ='".$url."'");
Editováno 27.2.2015 20:52
Nahoru Odpovědět 27.2.2015 20:50
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
mat.masar
Člen
Avatar
Odpovídá na IT Man
mat.masar:

Ale jak může být $poznamka prázdná, když je tam kód $poznamka = mysql_query("SELECT * FROM 'poznamky' WHERE 'url= $url'");

 
Nahoru Odpovědět 27.2.2015 20:56
Avatar
Tomáš123
Člen
Avatar
Odpovídá na mat.masar
Tomáš123:

Nie je prázdna, obsahuje hodnotu false. Už som to písal vyššie. IT Man to myslel zrejme tak, že v premennej nie je požadovaný obsah.

Nahoru Odpovědět 27.2.2015 21:00
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
mat.masar
Člen
Avatar
Odpovídá na Tomáš123
mat.masar:

Tak to je zvláštní... nevypisuje to ani chybu ani tu poznámku :D ale echo $poznamka['poz­namka']; tam mám.

 
Nahoru Odpovědět 27.2.2015 21:01
Avatar
Tomáš123
Člen
Avatar
Odpovídá na mat.masar
Tomáš123:

Premenná $poznamka je pole? Nezdá sa mi, ale kódy hore som neskúmal. Čo ti vypíše

echo $poznamka;

?

Nahoru Odpovědět 27.2.2015 21:03
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

A máš něco v databázi či správně pojmenované sloupce?

Nahoru Odpovědět 27.2.2015 21:03
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
mat.masar
Člen
Avatar
Odpovídá na IT Man
mat.masar:

Tomáš123 vypisuje to Resource id #4.
A když jsem dal: echo $vysledek; (protože $vysledek=mys­ql_fetch_arra­y($poznamka); takže by měla vypsat ten text) tak to vypsalo: Notice: Array to string conversion in C:\Users\j\Des­ktop\PHP\zobra­zenipoznamky.php on line 30
Array

IT Man jo mám

 
Nahoru Odpovědět 27.2.2015 21:08
Avatar
Tomáš123
Člen
Avatar
Odpovídá na mat.masar
Tomáš123:

A to, o čo sa snažíš je vypisanie obsahu tabuľky?

Na výpis použi cyklus:

foreach($vysledek as $index) {
echo $index;
}
Nahoru Odpovědět 27.2.2015 21:12
Keby nebolo Internetu Exploreru, nebolo by dnešného internetu.
Avatar
mat.masar
Člen
Avatar
Odpovídá na Tomáš123
mat.masar:

Jo to je to o co se snažím. Chci vypsat ten obsah z db. Má se vypsat ta poznámka naprř. Koupit chleba. Zase to nic nevypisuje(ten cyklus)

 
Nahoru Odpovědět 27.2.2015 21:17
Avatar
sahlepik
Člen
Avatar
Odpovídá na IT Man
sahlepik:

Tak když se koukneš do jeho kódu, vzal jsem ten kousek jako VÝŇATEK, značky pro vložení PHP kódu tam přece má. Proč bych ten jeho kód kopíroval celý? To snad nemyslíš vážně :)

 
Nahoru Odpovědět 27.2.2015 21:20
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

Taky pro jednu položku se nepoužívá foreach (i když jsi vytáhl 1, možná by to fungovalo, ale pro 1 je to zbytečné).
Zkus ještě pod ten array přidat:

$vysledek = $vysledek[0];

A pak to vypiš polem ($vysledek['nad­pis'])).

Nahoru Odpovědět 27.2.2015 21:21
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
IT Man
Redaktor
Avatar
Odpovídá na sahlepik
IT Man:

Ano, jenže syntaxy PHP jsi neukončil. Ne každý začátečník to musí pochopit. Takže příště uzavírej. ;)

P.S. Nechci vést mínuskovou válku, ale jak víš, že jsem to byl já? Já ti jen vysvětloval fakta.;)

Nahoru Odpovědět 27.2.2015 21:23
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Avatar
mat.masar
Člen
Avatar
Odpovídá na IT Man
mat.masar:
$poznamka = mysql_query("SELECT * FROM `poznamky` WHERE `url` ='".$url."'");
$vysledek= mysql_fetch_array($poznamka);
$vysledek = $vysledek[0];

if (!$poznamka)
{
        if ($url != 'chyba')
        {
         echo($vysledek['nadpis']);

        }

A pořád nic(a nechtěl jsi nahodou echo($vysledek['poz­namka']);? ) :(
Jinak přikládám screen z db.

 
Nahoru Odpovědět 27.2.2015 21:29
Avatar
IT Man
Redaktor
Avatar
Odpovídá na mat.masar
IT Man:

Promiň, já už ti nepomohu, jsem spíš na PDO. Trochu zagoogli a určitě to najdeš. :)

Nahoru Odpovědět 27.2.2015 21:36
Když nevíš jak dál, podá ti ruku někdo, od koho by jsi to nečekal. A tu šanci musíš přijmout!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 37 zpráv z 37.