Autor Zpráva
maestorm
Profil
Hezký den,
rozhodl jsem se naučit se PHP, MySQL a jelikož se učím z knížky PHP6, MySQL, Apache, tak jsem narazil momentálně na problém, který nevím, v čem přesně vězí stále mi to při zadání select2.php píše: Table 'moviesite.movietype' doesn't exist a já nevím jak tu tabulku vytvořit, nebo kde bych jí měl vytvořit, nebo co v kódu upravit?
select2.php
<?php
$db = mysql_connect('localhost', 'root', 'klinger09') or die('Unable to connect. Check your connection parameters.');
$results = mysql_select_db('moviesite', $db) or die(mysql_error($db));

// select movie titles and thier genre after 1990
$query = 'SELECT
		movie.movie_name, movie.movietype_label
	FROM
		movie, movietype
	WHERE
		movie.movie_type = movie.movietype_id
	AND movie.movie_year > 1990
	ORDER BY 
		movie_type';
$results = mysql_query($query, $db) or die(mysql_error($db));

// Show the results
echo '<table border="1">';
while ($row = mysql_fetch_assoc($results)) {
echo '<tr>';
extract ($row);
echo '<td>' . $movie_name . '</td>';
echo '<td>' . $movietype_label . '</td>'; 
echo '</tr>';
}
echo '</table>';
?>


moviesite.php
<?php
	session_start();
	if($_SESSION['authuser'] != 1) {
		echo "You haven't got permissions to browse this website! ";
		exit();
	}
?>
<!DOCTYPE html> 
   <head> 
      <meta charset="utf-8">
      <title>Filmový web - <?php echo $_REQUEST['favorite']; ?></title> 
	  <link type="text/css" rel="stylesheet" href="style.css" />
   </head> 
   <body> 
<?php include 'header.php'; ?>
<?php
$favorite = array ("Brian's life",
				   'Pianist',
				   'Fishman king',
				   'Saint grail',
				   'Matrix',
				   'Terminator 2',
				   'Star Wars',
			       'Close Encounters of the Third Kind',
	               'Sixteen candle holders',
				   'Lord of the Rings: The Fellowship of the Ring');

if (isset($_GET['favorite'])) {

	echo 'Welcome to our stupid website! ';
	echo 'Logged member: '.$_SESSION['username'];
	echo '<br />';
	echo 'My favorite movie is ';
	echo $_REQUEST['favorite'];
	echo '.<br />';
	$mark = 5;
	echo 'This movie is evaluated by mark: ';
	echo $mark;
	echo '<br />';
	echo '<a href="date.php">';
	echo 'měsíce';
	echo '</a>';

} else {
	echo 'My '. $_POST['pocet']. ' top movies<br />';
	if(isset($_GET['$sort'])) {
		sort($favorite);
		echo 'sorted by alphabet';
	}
	$cfilmu = 0;
	echo '<ol>';
	while ($cfilmu <$_POST['pocet']) {
		echo '<li>';
		echo $favorite[$cfilmu];
		echo '</li>';
		$cfilmu = $cfilmu + 1;
	}
}
?>
   </body> 
</html>

db_create.php
<?php
//connect to MySQL
$db = mysql_connect('localhost', 'root', 'klinger09') or 
    die ('Unable to connect. Check your connection parameters.');

//create the main database if it doesn't already exist
$query = 'CREATE DATABASE IF NOT EXISTS moviesite';
$results = mysql_query($query, $db) or die(mysql_error($db));

//make sure our recently created database is the active one
$results = mysql_select_db('moviesite', $db) or die(mysql_error($db));

//create the movie table
$query = 'CREATE TABLE movie (
        movie_id        INTEGER UNSIGNED  NOT NULL AUTO_INCREMENT, 
        movie_name      VARCHAR(255)      NOT NULL, 
        movie_type      TINYINT           NOT NULL DEFAULT 0, 
        movie_year      SMALLINT UNSIGNED NOT NULL DEFAULT 0, 
        movie_leadactor INTEGER UNSIGNED  NOT NULL DEFAULT 0, 
        movie_director  INTEGER UNSIGNED  NOT NULL DEFAULT 0, 

        PRIMARY KEY (movie_id),
        KEY movie_type (movie_type, movie_year) 
    ) 
    ENGINE=MyISAM';
$results = mysql_query($query, $db) or die (mysql_error($db));

//create the movietype table
$query = 'CREATE TABLE movietype ( 
        movietype_id    UNSIGNED NOT NULL AUTO_INCREMENT, 
        movietype_label VARCHAR(100)     NOT NULL, 
        PRIMARY KEY (movietype_id) 
    ) 
    ENGINE=MyISAM';
$results = mysql_query($query, $db) or die(mysql_error($db));

//create the people table
$query = 'CREATE TABLE people ( 
        people_id         UNSIGNED    NOT NULL AUTO_INCREMENT, 
        people_fullname   VARCHAR(255)        NOT NULL, 
        people_isactor    TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, 
        people_isdirector TINYINT(1) UNSIGNED NOT NULL DEFAULT 0, 

        PRIMARY KEY (people_id)
    ) 
    ENGINE=MyISAM';
$results = mysql_query($query, $db) or die(mysql_error($db));

echo 'Movie database successfully created!';
?>


db_insert.php
<?php
// connect to MySQL
$db = mysql_connect('localhost', 'root', 'klinger09') or 
    die ('Unable to connect. Check your connection parameters.');

//make sure you're using the correct database
$results = mysql_select_db('moviesite', $db) or die(mysql_error($db));

// insert data into the movie table
$query = 'INSERT INTO movie
        (movie_id, movie_name, movie_type, movie_year, movie_leadactor,
        movie_director)
    VALUES
        (1, "Bruce Almighty", 5, 2003, 1, 2),
        (2, "Office Space", 5, 1999, 5, 6),
        (3, "Grand Canyon", 2, 1991, 4, 3)';
$results = mysql_query($query, $db) or die(mysql_error($db));

// insert data into the movietype table
$query = 'INSERT INTO movietype 
        (movietype_id, movietype_label)
    VALUES 
        (1,"Sci Fi"),
        (2, "Drama"), 
        (3, "Adventure"),
        (4, "Military"), 
        (5, "Comedy"),
        (6, "Horror"),
        (7, "Action"),
        (8, "Kids")';
$results = mysql_query($query, $db) or die(mysql_error($db));

// insert data into the people table
$query  = 'INSERT INTO people
        (people_id, people_fullname, people_isactor, people_isdirector)
    VALUES
        (1, "Jim Carrey", 1, 0),
        (2, "Tom Shadyac", 0, 1),
        (3, "Lawrence Kasdan", 0, 1),
        (4, "Kevin Kline", 1, 0),
        (5, "Ron Livingston", 1, 0),
        (6, "Mike Judge", 0, 1)';

$results = mysql_query($query, $db) or die(mysql_error($db));

echo 'Data inserted successfully!';
?>


předem všem případným pomocníkům velice děkuji!
PS: Začátky bývají vždy krušné...
Marek88
Profil
maestorm:
...nevím jak tu tabulku vytvořit...
Co zkusit soubor db_create.php?
laijk
Profil
maestorm:
Mám tú knihu tiež a naučíš sa tak, že pôjdeš postupne, najprv spusti db_create.php a až potom select2.php.
maestorm
Profil
A tedy říkáte, že je to jen tím?

PS: Co vím tak v té knize chybí (na stránkách týkajících se moviesite.php, atd.)
$results = mysql_select_db('moviesite', $db) or die(mysql_error($db));
...chybí tam právě to $results = alespoň pokud se nemýlím a pak taky u některé CREATE TABLE teď nevím přesně u které je tam pár chybných věcí třeba jak se tvoří v select1.php, nebo select2.php ta tabulka, tak tam jsem taky něco viděl (alespoň podle kódu co mají wrox na domovském webu...)
laijk
Profil
fakt myslíš túto knihu?? Odkaz

-ja to robím a nechýba tam nič, a na obale knihy dole máš napísanú stránku odkiaľ si môžeš stiahnúť všetky zdrojové súbory (s českým komentárom).
maestorm
Profil
ano myslím tuto knihu a právě mezi kódy stáhlými z webu a těmi popsanými v knize jsem našel dané nesrovnalosti...
shaggy
Profil
A čo čakáte od knihy, ktorá má prvú nezrovnalosť hneď v nadpise? Ja by som bol veľmi opatrnými pri narábaní s informáciami z takej knihy. Jednoducho povedané - podľa názvu vidím, že to písal buď amatér, alebo je to marketingový ťah, ani jedno neveští nič dobré.
Mike8748
Profil
shaggy:
jakou nesrovnalost mas na mysli ?
ShiraNai7
Profil
Mike8748:
Třeba to, že PHP6 je stále ve vývoji a oficiálně ani nevyšlo, krom snad jakýchsi vývojových verzí.
maestorm
Profil
Já vím, ale člověk chce být o krok napřed... prosím tě tedy ShiroNai7 o nějaké odkazy na materiály na webu, které by jsi mi o PHP a MySQL doporučil.
Velice děkuji!
maestorm
Profil
ale u db_insert.php mi to při jeho spuštění píše: Duplicate entry '1' for key 'PRIMARY' nevím jak to opravit a jak dám nejprve db_create.php a pak to select2.php tak mi to stejně napíše zase: Table 'moviesite.movietype' doesn't exist

Každá rada drahá
laijk
Profil
maestorm:
to spúšťaš odrazu alebo čo?? najprv spusť iba ten script db_create.php!
-ináč ja som s tou knihou spokojný, aj keď je pravda, že zatial som musel raz opraviť kód lebo to čo bolo v tej knihe nešlo, ale potom keď som si stiahol z tej stránky tie kódy tak odtiaľ funguje všetko ako má.
maestorm
Profil
já to zkoušel několikrát, ale je to stále stejné...
Davex
Profil
maestorm:
tak mi to stejně napíše zase: Table 'moviesite.movietype' doesn't exist
Já tu knihu nemám, ale když se do databáze podíváš přes phpMyAdmin nebo Adminer, tak tam ta tabulka movietype je? Skript db_create.php žádné chyby nehlásil? Mně totiž ano.

Na stránce odkazované v [#5] najdeš v souborech ke stažení opravy chyb. Oprav kód, smaž databázi a začni znova.
maestorm
Profil
Děkuji za radu Davexi! Nechám to na zítra aneb ráno moudřejší večera ;-)
Přeji dobrou noc
maestorm
Profil
Už jsem na to přišel, podle toho staženého kódu, ale v knize jsou navíc chyby na stránkách (109,110,111,121) "$výsledky = " a potom není "UNSIGNED INT", ale TINYINT UNSIGNED

a potom jsem na 121 stránce moc nepochopil to spojení dvou tabulek a jelikož ten kód select2.php to neobsahuje prosím o kód pro spojení dvou tabulek, abych to t toho pochopil.

Velice všem rádcům děkuji za dosavadní i budoucí pomoc!
panther
Profil
maestorm:
join
maestorm
Profil
díky

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:

0