'No database selected' - jak skonfigurować phpmyadmin?


(Barakiel) #1

Witam po raz drugi na forum,

jako leszcz w dziedzinie chciałem zapytać o sprawę pewnie banalną, ale nierozwiązywalną dla mnie od kilku dni. Przemierzyłem internet - fora, manuale - w różnych językach i nadal nie wiem co zrobić.

Otóż bazując na książce php5 dla początkujących doszedłem do zadania w którym muszę zrobić bazę danych w php5. Napisałem dwa pliki kodu zgodnie z instrukcją i przy próbie ich otwarcia przez przeglądarkę otrzymuję komunikat 'No database selected'. :frowning:

Mam winxp, xamppa - apache 2 i mysql działają.

Nie wiem w czym tkwi problem bo wyczytałem, że muszę sobie założyć hasło na phpmyadmin, ale po jego założeniu pojawiał mi się napis access denied i chociaż robiłem zmiany w pliku config.inc.php nie mogłem się na nowo dostać na stronę phpmyadmin. Rozwiązaniem była deinstalacja i ponowna instalacja. I tak kilka razy. Ustawienia w phpmyadmin mam domyślne czyli localhost i root .Tym razem zanim coś zrobię piszę bo mam już dość próbowania zmian, na których się nie znam.

Dla zobrazowania początek mojego pliku o filmach wygląda tak:

<?php

// połączenie z serwerem MySQL; użyliśmy własnych parametrów

// w razie potrzeby zmień je na inne

$connect = mysql_connect("localhost", "root", "") or

die ("Sprawdź połączenie z serwerem.");

// utwórz bazę danych, jeśli jeszcze nie istnieje

$create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")

or die(mysql_error());

// utwórz tabelę "movie"

$movie = "CREATE TABLE movie (

movie_id int(11) NOT NULL auto_increment,

movie_name carchar(255) NOT NULL

movie_name tinyint(2) NOT NULL default 0

movie_year int(4) NOT NULL default 0

movie_leadactor int(11) NOT NULL default 0

movie_director int(11) NOT NULL default 0

PRIMARY KEY (movie_id)

KEY movie_type (movie_type.movie_year)

)";

Bardzo proszę o podpowiedź w miarę zrozumiałą dla początkującego, co mam dalej zrobić, co sprawdzić, itd.

pozdrawiam


(Grzelix) #2

Szczerze to nie miałem okazji tworzyć bazy z poziomu php, ale wczytując się w to co napisałeś wydaje mi się że brakuje Ci właśnie wybrania bazy danych.

Flow:

Connect to mysql -> create database -> select database -> create table (in selected database)

powyższy "diagram" pokazuje moim zdaniem prawidłowy przebieg.

Chętnie sprawdziłbym sam jak to działa ale ostatnio krucho u mnie z czasem. Mam nadzieje że to coś pomoże, może nasunie kolejny pomysł

Pozdrawiam


(Drobok) #3

http://php.net/manual/en/function.mysql-select-db.php


(Barakiel) #4

Dzięki wielkie za podpowiedź:] tak też zrobię, chwilowo krucho z czasem u mnie, ale jutro powinienem to przetestować i dam znać jak podziałało.

Ale zastanawia mnie fakt, że skoro kod przepisuję z książki i powinien działać, to dlaczego muszę tam coś jeszcze dopisywać? Możliwe, że w książce jest błąd?


(hatezit) #5

Ja na twoim miejscu, użyłbym @connect = new mysqli ('host', 'login', 'hasło', 'nazwa bazy') gdzie dajesz host, login, hasło i nazwę bazy danych, co prawda użycie mysqli wiąże się z programowaniem obiektowym:)


(Barakiel) #6

Witam,

przetestowałem porady i nadal nie działa. Może coś źle napisałem... mój kod wygląda teraz tak:

<?php

// połączenie z serwerem MySQL; użyliśmy własnych parametrów

// w razie potrzeby zmień je na inne

$connect = mysql_connect("localhost", "root", "") or

die("Sprawdź połączenie z serwerem.");

// utwórz bazę danych, jeśli jeszcze nie istnieje

$create = mysql_query("CREATE DATABASE IF NOT EXISTS moviesite")

or die(mysql_error());

mysql_select_db("moviesite" or die(mysql_error()));

Może ktoś z uprzednio mi pomagających kolegów wie co jest nie tak?;]


(hatezit) #7

W lini mysql_connect po nawiasie brak średnika ;, czy podałeś hasło do bazy?


(Barakiel) #8

dzięki;] poprawiłem. Hasła do bazy nie dawałem, bo po paru próbach z komunikatem 'access denied' zniechęciłem się i na razie to porzuciłem.

Chyba idzie w dobrym kierunku, bo komunikat 'no database selected' zniknął, ale mam za to inny "Table 'movie' already exists" co z tym zrobć?

-- Dodane 19.03.2012 (Pn) 22:54 --

wyczytałem coś o "DROP TABLE moviesite" ale nie wiem gdzie to wpisać i jak żeby było poprawnie, czy może coś innego trzeba zrobić?


(Drobok) #9

Twój kod tworzy bazę i nic poza tym. Odpalając ten skrypt 2x wywołałeś błąd, ponieważ chcesz utworzyć już istniejącą bazę :slight_smile:

Twoje polecenie (z poprzedniego posta) usuwa bazę danych. Możesz je wpisać w konsoli sql / czy w mysql_query. Możesz to również zrobić bez wpisywania nigdzie, używając np phpmyadmin (po prostu klikając usuń)