michuuu92 Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 (edytowane) Witam, mam problem z bazą danych. Strone mam na CBA i chciałem dodac skrypt komentarzy. <?PHP /* Baza Danych -- [ CREATE TABLE `komentarze` ( `id` BIGINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT , `wpis_id` BIGINT( 255 ) UNSIGNED NOT NULL , `autor` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `tytul` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `tresc` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `data` BIGINT( 255 ) UNSIGNED NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci ] -- */ MySQL_Connect("localhost", "root", ""); MySQL_Select_DB("komentarze"); class Komentarze { private function sprawdz ($id) { $id = intval(mysql_escape_string($id)); $q = MySQL_Query("SELECT `id` FROM `komentarze` WHERE `id`=$id"); if(MySQL_Num_Rows($q) > 0){ return TRUE; }else{ return FALSE; } } public function dodaj ($autor, $tytul, $tresc, $wpis_id) { $autor = mysql_escape_string($autor); $tytul = mysql_escape_string($tytul); $tresc = mysql_escape_string($tresc); $wpis_id = intval(mysql_escape_string($wpis_id)); $q = MySQL_Query("INSERT INTO `komentarze` (`wpis_id`, `autor`,`tytul`,`tresc`, `data`) VALUES ({$wpis_id}, '{$autor}', '{$tytul}', '{$tresc}', ".time().")"); if($q){ return TRUE; }else{ return FALSE; } } public function usun ($id) { $id = intval(mysql_escape_string($id)); if($this->sprawdz($id)){ $q = MySQL_Query("DELETE `komentarze` WHERE `id`=$id"); if($q) return TRUE; }else{ return FALSE; } } public function wyswietl ($wpis_id) { $wpis_id = intval(mysql_escape_string($wpis_id)); $tablica = array(); $q = MySQL_Query("SELECT `autor`, `tytul`, `tresc`, `data` FROM `komentarze` WHERE `wpis_id`={$wpis_id} ORDER By `data` DESC"); while($komentarz = MySQL_Fetch_Array($q)){ $tablica[] = array( "autor" => $komentarz["autor"], "tytul" => $komentarz["tytul"], "tresc" => $komentarz["tresc"], "data" => $komentarz["data"] ); } return $tablica; } }?><META http-equiv=Content-Type content="text/html; charset=utf-8"><?PHP $id_wpisu = $_GET["wpis"]; $kom = new Komentarze; if($_POST["wpis_id"] > 0){ $kom->dodaj($_POST["nick"], $_POST["tytul"], $_POST["tresc"], $_POST["wpis_id"]); echo "<font color=red><B>Komentarz został dodany.</B></font><br><br>"; } foreach($kom->wyswietl($id_wpisu) as $komentarz){ echo "Tytul: <B>{$komentarz["tytul"]}</B>, napisany przez: <B>{$komentarz["autor"]}</B>, ".date("d-m-Y, H:i", $komentarz["data"])."<BR>".nl2br($komentarz["tresc"])."<BR><BR>"; }?><h1>Komentarze</h1> <FORM action="" method="POST"> <input type="hidden" name="wpis_id" value="<?=$id_wpisu;?>"> Twój Nick: <input type="text" name="nick"><BR> Tytul Komentarza: <input type="text" name="tytul"><BR> Treść: <textarea name="tresc"></textarea> <input type="submit" value="DODAJ!"> </FORM>Na samej górze jest niby podane wszystko ale przy próbie utworzenia bazy danych pokazuje błąd: #1046 - No database selected Jak mam dodać bazę danych? Skrypt pisał mi kumpel niestety już nie zdążył mi wytłumaczyć co i jak. Powidział tylko ze muszę utworzyć bazę danych a potem połączyć ja ze skryptem. Edytowane 13 Marca 2010 przez michuuu92 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
moe Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 a masz w connection stringu nazwe bazy? bo chyba nie :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
michuuu92 Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 Chodzi o samą baze SQL bo to w niej wywala mi błąd. Nie uruchomiłem jeszcze PHP bo nie mogę utworzyć bazy danych w SQL. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 IMO próbujesz utworzyć tabelę, a nie wybrałeś bazy... 1. Doczytaj o podstawach SQL. 2. Skorzystaj z konsoli MySQL lub phpMyAdmin. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
stivo Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 (edytowane) A nie widzicie tych linijek: MySQL_Connect("localhost", "root", ""); MySQL_Select_DB("komentarze");?? Tylko IMO to powinno być przed tworzeniem tabeli. Poza tym o ile pamiętam, to na CBA wymagana jest zewnętrzna baza danych. Edytowane 13 Marca 2010 przez stivo Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
ULLISSES Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 A nie widzicie tych linijek: A Ty nie widzisz tych: Chodzi o samą baze SQL bo to w niej wywala mi błąd. Nie uruchomiłem jeszcze PHP bo nie mogę utworzyć bazy danych w SQL. ?? Do autora: Używając phpMyAdmin utwórz bazę danych i wybierz tą bazę (wybiera się z menu po lewej). Dopiero wtedy możesz wkleić kod SQL tworzący tabelę. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
michuuu92 Opublikowano 13 Marca 2010 Zgłoś Opublikowano 13 Marca 2010 Po 4 godzinach siedzenia z kumplem udało nam się, może wyglądem to to nie powala jeszcze. Ale działa. CBA jako serwer sporo problemów narobiło. Blog tak to wygląda. <?PHP /* Baza Danych -- [ CREATE TABLE `komentarze` ( `id` BIGINT( 255 ) UNSIGNED NOT NULL AUTO_INCREMENT , `wpis_id` BIGINT( 255 ) UNSIGNED NOT NULL , `autor` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `tytul` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `tresc` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `data` BIGINT( 255 ) UNSIGNED NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci ] -- */ if (!(MySQL_Connect("mysql.cba.pl", "locomisiek", "")&& MySQL_Select_DB("bike_travel_cba_pl"))) {die('brak polaczenia z baza mysql');} class Komentarze { private function sprawdz ($id) { $id = intval(mysql_escape_string($id)); $q = MySQL_Query("SELECT `id` FROM `komentarze` WHERE `id`=$id"); if(MySQL_Num_Rows($q) > 0){ return TRUE; }else{ return FALSE; } } public function dodaj ($autor, $tytul, $tresc, $wpis_id) { $autor = mysql_escape_string($autor); $tytul = mysql_escape_string($tytul); $tresc = mysql_escape_string($tresc); $wpis_id = intval(mysql_escape_string($wpis_id)); $q = MySQL_Query("INSERT INTO `komentarze` (`wpis_id`, `autor`,`tytul`,`tresc`, `data`) VALUES ({$wpis_id}, '{$autor}', '{$tytul}', '{$tresc}', ".time().")"); if($q){ return TRUE; }else{ return FALSE; } } public function usun ($id) { $id = intval(mysql_escape_string($id)); if($this->sprawdz($id)){ $q = MySQL_Query("DELETE `komentarze` WHERE `id`=$id"); if($q) return TRUE; }else{ return FALSE; } } public function wyswietl ($wpis_id) { $wpis_id = intval(mysql_escape_string($wpis_id)); $tablica = array(); $q = MySQL_Query("SELECT `autor`, `tytul`, `tresc`, `data` FROM `komentarze` WHERE `wpis_id`={$wpis_id} ORDER By `data` DESC"); while($komentarz = MySQL_Fetch_Array($q)){ $tablica[] = array( "autor" => $komentarz["autor"], "tytul" => $komentarz["tytul"], "tresc" => $komentarz["tresc"], "data" => $komentarz["data"] ); } return $tablica; } public function WyswietlNaWWW($wpis_id) { foreach($this->wyswietl($wpis_id) as $komentarz){ echo "Tytul: <B>{$komentarz["tytul"]}</B>, napisany przez: <B>{$komentarz["autor"]}</B>, ".date("d-m-Y, H:i", $komentarz["data"])."<BR>".nl2br($komentarz["tresc"])."<BR><BR>"; } echo '<h1>Komentarze</h1><FORM action="" method="POST"><input type="hidden" name="wpis_id" value="' . $wpis_id . '"/>Twój Nick: <input type="text" name="nick"/><BR/>Tytul Komentarza: <input type="text" name="tytul"/><BR/>Tresć: <textarea name="tresc"></textarea><input type="submit" value="DODAJ!"/></FORM>'; } } ?>a tutaj dorzucam kod Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...