Autor Zpráva
Manny
Profil *
Vážení, začal jsem s php a zkouším něco takového:
Mám v databázi tabulku s povídkami ve 3 sloupcích (pořadí, název a text).
Výpis do menu jsem zvládl, ale nevím jak zapsat podmínku, aby podle předaného parametru mi naskočil konkrétní text. Nechce se mi ručně vypisovat všechny možnosti.
Zde je kód (pro představu celý):
<?php
$strana = $_GET["str"];

if ($strana == '1') // tady bude asi problém!!!
 {
	$spojeni=mysql_connect('localhost','root','');
		if (!$spojeni)
			die ('Posralo se spojení!');

	$databaze=mysql_select_db('monika',$spojeni);
		if (!$databaze)
			die ('Připojení k databázi se posralo!');
	
	$dotaz = "SELECT text FROM povidky WHERE poradi = 1";
	$vysledek=mysql_query($dotaz,$spojeni);
		if (!$vysledek)
		die ('Dotaz nedošel');

	$texty=mysql_fetch_array($vysledek);	
		echo '<p>'.$texty[text].'</p>';

} 
 

else {include "uvod.php";}
?>
</div>

<div class="menu">
<span id="nadpis">Seznam povídek</span>
<ul >
<?php
$id_spojeni=mysql_connect('localhost','root','');
if (!$id_spojeni)
die ('Posralo se spojení!');

$vysledek=mysql_select_db('monika',$id_spojeni);
if (!$vysledek)
	die ('Připojení k databázi monika se posralo!');
	
$sql = "SELECT poradi,nazev FROM povidky";
$hodnoty=mysql_query($sql,$id_spojeni);
if (!$hodnoty)
	die ('Dotaz nedošel');

while($radek=mysql_fetch_array($hodnoty))
{
echo '<li><a href="index.php?str='.$radek[poradi].'"><span>'.$radek[nazev].'</span></a></li>';
}
?>


A ještě jeden dotaz. Nefunguje mi české kódování. V databázi mám UTF-8, ve zdrojáku taky i soubor je tak uložen, ale přesto mi nejdou na výpisu české znaky.
Kdo můžete, poraďte mi!
mckay
Profil
Manny:
1) Tvou první otázku jsem úplně nepochopil
2) Příště by nebylo od věci vycenzurovat si ty chybové hlášky ;-)
3) Pokud máš vše, tak jak říkáš, nevidím důvod proč by to nemělo fungovat. Každopádně to zkus tak, že soubor otevři v pspadu formát->UTF-8 (klepni na to znovu a uložto)
nightfish
Profil
Manny:
V databázi mám UTF-8, ve zdrojáku taky i soubor je tak uložen, ale přesto mi nejdou na výpisu české znaky.
mysql_query("SET NAMES 'utf8'");


Mám v databázi tabulku s povídkami ve 3 sloupcích (pořadí, název a text).
Výpis do menu jsem zvládl, ale nevím jak zapsat podmínku, aby podle předaného parametru mi naskočil konkrétní text. Nechce se mi ručně vypisovat všechny možnosti.
a v čem je problém?
pokud je jenom v tom, v čem si myslím, a funguje to tak, jak předpokládám, tak by mělo stačit změnit ten první if na:
if ((int)$strana > 0)

a dotaz na
$dotaz = "SELECT text FROM povidky WHERE poradi = ".(int)$strana;
Manny
Profil *
mckay:
1) zkusím to podrobněji: podle počtu záznamů (řádků) v tabulce mi php do parametru v odkazech menu dosazuje číslo 1 až x a vypisuje názvy. To mi funguje. Když uživatel klikne na položku menu předá se parametr $_GET["str"] a měl by se vypsat text z databáze. Jenže pro každý parametr bych potřeboval podmínku If, elseif... Když tam dosadím konkrétní číslo (jako mám nahoře v kódu), funguje to. Jenže se mi nechce dělat 10, 20, 50 podmínek.
Manny
Profil *
nightfish:
Promiň, hloupá otázka začátečníka:
mysql_query("SET NAMES 'utf8'");

kam to mám vložit? mysql_query už tam přece jednou je.
Akacko
Profil
Manny:
Před všechny dotazy na databázi a za spojení s databázi.
nightfish
Profil
Manny:
kam to mám vložit? mysql_query už tam přece jednou je.
vlož to mezi mysql_select_db a mysql_query (řádky 13 a 40 v kódu v prvním příspěvku)

ke studiu doporučuji část "mysql a čeština" z databázového FAQ
Manny
Profil *
nightfish, Akacko:
Díky moc. Čeština funguje a ta proměnná taky. Na to bych nepřišel. Problém vyřešen.

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: