2 správné a nefunkční SQL dotazy
12 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
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"