Mám problémek:) (jinak bych se neptal, ale pro nektere typu moje sestra:))
Mam 2 SQL dotazy. Jeden jde do menu na vypsani poslednich 5ti clanku. Druhy funguje na vypsani samotneho clanku:
//menu
$result = mysql_query("SELECT * FROM blog LIMIT 0,5") or die($text .= mysql_error());
while($vypis=mysql_fetch_array($result)) {
$menu.="<a href='?page=blog_read&no=".$vypis['id']."'>".$vypis['nazev']."</a><br>";
}
//Clanek
case "blogread":
$pg2.="><a href='?page=blogread'>BLOG</a>";
$id = $_GET['no'];
$result = mysql_query('SELECT * FROM blog WHERE id="$id"') or die($text .= mysql_error());
$vypis = mysql_fetch_array($result);
$text2 = $vypis['text'];
$text2 = eregi_replace('§br§', '<br>', $text2);
$text = '<h1>'.$vypis['nazev'].'</h1><br>'.$text2;
$pg2.="><a href='?page=blogread&no=".$_GET['no']."'>".$vypis['nazev']."</a>";
break;
Videt to lze na (jiste odpustite ze sem u konkurence, ale ja jsem rad za kazdy MB:)) ondraster.ic.cz popr. ondraster.ic.cz/?page=blogread&no=1
Pro jistotu prikladam kus z DUMPu DB:
--
-- Struktura tabulky `blog`
--
CREATE TABLE `blog` (
`id` int(10) NOT NULL auto_increment,
`datum` datetime NOT NULL default '0000-00-00 00:00:00',
`nazev` varchar(255) NOT NULL default '',
`text` longtext NOT NULL,
`hodnoceni` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
--
-- Vypisuji data pro tabulku `blog`
--
INSERT INTO `blog` (`id`, `datum`, `nazev`, `text`, `hodnoceni`) VALUES (1, '2005-10-11 10:32:00', 'Jen tak pokus', 'Jen tak zkouším, jestli funguje select;)', '');
Nepíšeš v čem je jádro problému. Na http://ondraster.ic.cz/?page=blogread&no=1 je prázdná stránka, resp. bez výpisu z DB. Chyba se mi zdá až v tvém posledním SQL dotazu:
INSERT INTO `blog` (`id`, `datum`, `nazev`, `text`, `hodnoceni`) VALUES (1, '2005-10-11 10:32:00', 'Jen tak pokus', 'Jen tak zkouším, jestli funguje select;)', '');
V tabulce máš pět sloupců, ale ty ty hodnoty vkládáš jen do čtyř, popř. zkus:
mysql_query("INSERT INTO blog VALUES (1, '2005-10-11 10:32:00' , 'Jen tak pokus' , 'Jen tak zkouším, jestli funguje select' , 'Je to dobrý')'');
blahapet: ten druhy dotaz jiz funguje:
$query = "SELECT * FROM blog WHERE id='".$id."'";
$result = mysql_query($query) or die($text .= mysql_error());
ale ten prvni porad ne a ne
$query = "SELECT * FROM blog";
$result = mysql_query($query) or die($text .= mysql_error());
Tamto jsem plnil v phpMyAdminovi, a ten posledni je plneny "nicim"('', tj 2 jednoduchy uvozovky)
A v čem je teda problém?
blahapet, ten insert se mi zdá v pořádku....
ze to neselectuje(nebo nevypisuje? tot otazka.))
No, strkas to do $menu a $pg2, mas tam nekde echo techto dvou promennych?
Jinak mi to pripada celkem OK. Mozna to >, ktere se ma vypsat zkus radeji vymenit za >
to $menu potom prohanim eregi_replace-ema vkladam to misto §MENU§ a $pg2 se meni na $path a to taky prohanim eregi_replace-em
jinak to > mam vsude mozne, ale nikde to tomu nevadi
mozna se bude hodit PHP:
<?php
$db_host = "localhost";
$db_user = "ic_ondraster";
$db_pssw = "*"; //odstranil jsem
$db_name = "ic_ondraster";
mysql_connect($db_host, $db_user, $db_pssw) or die($text .= mysql_error());
mysql_select_db($db_name) or die($text .= mysql_error());
///////////////////////////////////////////////////////////////
if(!isset($_COOKIE['template'])){
setcookie('template', 'bigblue');
$design = file_get_contents('./templates/bigblue/index.php');
}else{
$design = file_get_contents('./templates/'.$_COOKIE['template'].'/index.php');
}
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
$pg2="<a href='http://ondraster.ic.cz'>OndraSter.ic.cz</a>";
$query = "SELECT * FROM blog";
$result = mysql_query($query) or die($text .= mysql_error());
while($vypis=mysql_fetch_array($result)):
$menu.="<a href='?page=blog_read&no=".$vypis['id']."'>".$vypis['nazev']."</a><br>";
endwhile;
switch($_GET['page']):
case "index":
$pg2.="><a href='http://ondraster.ic.cz'>Index</a>";
break;
case "programovani":
$pg2.="><a href='?page=programovani'>Programování</a>";
break;
case "forum":
$pg2.="><a href='?page=forum'>Fórum</a>";
break;
case "gb":
$pg2.="><a href='?page=gb'>Návštěvní kniha</a>";
break;
case "kontakt":
$pg2.="><a href='?page=kontakt'>Kontakt</a>";
break;
case "blogread":
$pg2.="><a href='?page=blogread'>BLOG</a>";
$id = $_GET['no'];
$query = "SELECT * FROM blog WHERE id='".$id."'";
$result = mysql_query($query) or die($text .= mysql_error());
$vypis = mysql_fetch_array($result);
$text2 = $vypis['text'];
//$text2 = eregi_replace('§br§', '<br>', $text2);
$text = '<h1>'.$vypis['nazev'].'</h1><br>'.$text2;
$pg2.="><a href='?page=blogread&no=".$_GET['no']."'>".$vypis['nazev']."</a>";
break;
case "functionlist"://
$pg2.="><a href='?page=functionlist'>Function list</a>";
$text=file_get_contents('./f/function_list/index.php');
break;
case "phposblog":
$pg2.="><a href='?page=phposblog'>phpOSbLOG</a>";
$text=file_get_contents('./p/phposblog/index.php');
include './include/info.php';
$text = eregi_replace('§VERZE§', $INF['verze'], $text);
break;
default:
header('Location: http://ondraster.ic.cz/?page=index');
break;
endswitch;
$menu = file_get_contents('./include/menu.php');
$title = "OndraSter.ic.cz";
$path=$pg2;
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////
$design = eregi_replace('§PATH§', $path, $design);
$design = eregi_replace('§MENU§', $menu, $design);
$design = eregi_replace('§TEXT§', $text, $design);
$design = eregi_replace('§TITLE§', $title, $design);
$design = eregi_replace('§CLANKY§', $clanky, $design);
echo $design;
mysql_close();
?>
tak to nezbývá, než tam prdnout pár ladících řádků. Prostě tam, kde chceš, abys věděl, co v které proměnné je, tak tam dej echo a sleduj, co se kde děje. Víc zatím nevím.
uz to mam:) v menu.php mam §CLANKY§ eregovat pomoci $clanky, jenze ja vse ukladal do $menu :D
no, mam tu dalsi problemek. Jedna se o fulltextovy vyhledavani. Tento SQL proste nejde:
if(isset($_POST['search_text'])){
$string = addslashes($_POST['search_text']);
$query = "select * from blog where match (nazev,text) against ('pokus')";
$result = mysql_query($query) or die(mysql_error());
$text = "Výsledky hledání:<br /><br />";
while($vypis=mysql_fetch_array($result)) {
echo 'sem ve whilu'; //Pro textovaci ucely-nevypise se ale!
$text.="<a href='?page=blogread&no=".$vypis['id']."'>".$vypis['nazev']."</a>";
}
}
v mysql mam fulltexty hromadne pro sloupce "nazev" a "text"