Jump to content
  • 0

Подключение к б/д,редактирование,удаление...


vitaxastifler
 Share

Question

Мне надо создать сайт (к примеру сайт сериалов) Мне надо что бы на главной выводились сериалы (картинка и название сериала) на 2-х стр описание сериала,список сезонов...

Потом к ней подключена админка с которой я могу редактировать,удалять и добавлять сериалы,сезоны и серии...через sql

 

Где можно найти инфу про то как всё это подключать и выкупить всю сущность?

 

К примеру "сериал"

<?php//add serialif(isset($_REQUEST["add_serial"]) && $_REQUEST["add_serial"] == 1) {    $name = $_REQUEST['name'];    $description = $_REQUEST['description'];    $produced = $_REQUEST['produced'];    $photo = $_REQUEST['photo'];    $serial  = array(":name" => $name, ":description" => $description, ":produced" => $produced, ":photo" => $photo);    $STH = $DBH->prepare("INSERT INTO `serial` SET `name` = :name, `description` = :description, `produced` = :produced, `photo` = :photo");    $STH->execute($serial);    echo "Serial successfully added.<br />";}//edit serialif(isset($_REQUEST["edit_serial"]) && $_REQUEST["edit_serial"] == 1) {    $id = isset($_REQUEST["id"]) ? (int)$_REQUEST["id"] : "null";    $name = $_REQUEST['name'];    $description = $_REQUEST['description'];    $produced = $_REQUEST['produced'];    $photo = $_REQUEST['photo'];    $serial  = array(":id" => $id, ":name" => $name, ":description" => $description, ":produced" => $produced, ":photo" => $photo);    $STH = $DBH->prepare("UPDATE `serial` SET `name` = :name, `description` = :description, `produced` = :produced, `photo` = :photo WHERE id = :id");    $STH->execute($serial);    echo "Serial successfully updated.<br />";}//delete serialif (isset($_REQUEST["del_serial"]) && $_REQUEST["del_serial"] == 1) {    $id = isset($_REQUEST["id"]) ? (int)$_REQUEST["id"] : "null";    $STH = $DBH->query("DELETE FROM `serial` WHERE `id` = ". $id );    echo "Serial successfully deleted";}?><table border="1">    <?php    $STH = $DBH->query('SELECT * FROM `serial` ORDER BY `id` ASC');    $STH->setFetchMode(PDO::FETCH_OBJ);    while($row = $STH->fetch()){    ?>        <tr>            <td><?php echo $row->name; ?></td>            <td><a href="index.php?handler=edit_serial&id=<?php echo $row->id; ?>">Edit</a></td>            <td><a href="index.php?handler=delete_serial&id=<?php echo $row->id; ?>">Delete</a></td>        </tr>    <?php } ?></table><br /><form action="index.php" method="post">    <input type="hidden" name="handler" value="add_serial">    <input type="submit" value="Add Serial"></form>

add_serial.php

<form method="post" action="index.php">    <table border="1">        <tr>            <td>Название сериала</td>            <td><input type="text" name="name" value=""></td>        </tr>        <tr>            <td>Описание</td>            <td><textarea name="description" rows="10" cols="50"></textarea></td>        </tr>        <tr>            <td>Дата релиза</td>            <td><input type="text" name="produced" value=""></td>        </tr>        <tr>            <td>Картинка</td>            <td><input type="text" name="photo" value=""></td>        </tr>        <tr>            <td><input type="button"  value="cancel" onclick="javascript: history.go(-1);"></td>            <td><input type="submit" name="add" value="Add"></td>        </tr>    </table>    <input type="hidden" name="add_serial" value="1">    <input type="hidden" name="handler" value="serial"></form>
Edited by vitaxastifler
Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

Ерундой не страдайте) лучше верстку начните изучать - постепенно усложняйте и к php переходите))

Возьмите любую CMS которая для этих целей подходитЮ шаблон свой поставьте)) и всё.

Просто ваше время сберечь хочу - вы на это возможно несколько месяцев потратите (запиливание самописной CMS толком ничего не зная) 

Link to comment
Share on other sites

  • 0
<?php//add serialif(isset($_REQUEST["add_serial"]) && $_REQUEST["add_serial"] == 1) {     //В $_REQUEST - содержится $_POST $_GET и $_COOCKIE    // Т.Е   в данном случае проверяется условие Если есть и если ==1 то :    $name = $_REQUEST['name'];    $description = $_REQUEST['description'];    $produced = $_REQUEST['produced'];    $photo = $_REQUEST['photo'];        //Ниже полученные переменные заносятся в ассоциативный массив    $serial  = array(":name" => $name, ":description" => $description, ":produced" => $produced, ":photo" => $photo);    //Возможно нужно так:       //$serial = array("name" => $name, "description" => $description, "produced" => $produced, "photo" => $photo);    // далее происходит подготовка к выполнению запроса  (с двоеточием - будут заменены на соответствующие поля в пред. массиве)    $STH = $DBH->prepare("INSERT INTO `serial` SET `name` = :name, `description` = :description, `produced` = :produced, `photo` = :photo");    // Собственно само выполнение запроса с использованием подготовленного массива    // INSERT - обозначет вставку новой строки    $STH->execute($serial);    echo "Serial successfully added.<br />";}//edit serialif(isset($_REQUEST["edit_serial"]) && $_REQUEST["edit_serial"] == 1) {    $id = isset($_REQUEST["id"]) ? (int)$_REQUEST["id"] : "null";    $name = $_REQUEST['name'];    $description = $_REQUEST['description'];    $produced = $_REQUEST['produced'];    $photo = $_REQUEST['photo'];    $serial  = array(":id" => $id, ":name" => $name, ":description" => $description, ":produced" => $produced, ":photo" => $photo);    $STH = $DBH->prepare("UPDATE `serial` SET `name` = :name, `description` = :description, `produced` = :produced, `photo` = :photo WHERE id = :id");    // Аналогично предыдущему, но UPDATE - обновляет существующие данные    $STH->execute($serial);    echo "Serial successfully updated.<br />";}//delete serialif (isset($_REQUEST["del_serial"]) && $_REQUEST["del_serial"] == 1) {    $id = isset($_REQUEST["id"]) ? (int)$_REQUEST["id"] : "null";    // Аналогично предыдущему, но DELETE- Удаляет строку в таблице    // WHERE - т.е. ГДЕ.  id = нужному id    $STH = $DBH->query("DELETE FROM `serial` WHERE `id` = ". $id );    echo "Serial successfully deleted";}?><table border="1">    <?php    $STH = $DBH->query('SELECT * FROM `serial` ORDER BY `id` ASC');    //Аналогично. SELECT - запрос взятия данных из БД, ORDER BY - сортировка по `id` . ASC - вроде означает обратную(не помню - погуглите=)    $STH->setFetchMode(PDO::FETCH_OBJ);    //setFetchMode - обозначает формирование массива из полученного запроса)) там много вариантов, но пока используете его    while($row = $STH->fetch()){    // WHILE это цикл. Т.е мы проходим циклом по полученному массиву и вставляем данные    // $row->id  .  -> т.е. мы вытягиваем из текущей строки id     // в целях развития)) обратное действие будет $row["id" => "что то"];    ?>        <tr>            <td><?php echo $row->name; ?></td>            <td><a href="index.php?handler=edit_serial&id=<?php echo $row->id; ?>">Edit</a></td>            <td><a href="index.php?handler=delete_serial&id=<?php echo $row->id; ?>">Delete</a></td>        </tr>    <?php } ?></table><br /><form action="index.php" method="post">    <input type="hidden" name="handler" value="add_serial">    <input type="submit" value="Add Serial"></form>

 всё  примерно так))

вот небольшая ссылочка про PDO

http://webonrails.ru/post/1438/

Про try и catch не читайте, не думаю что на данном этапе будет понятно что это, хотя всё может быть)))

Edited by Николя223
  • Like 1
Link to comment
Share on other sites

  • 0

парни ещё такой вопрос,мне нужно разобраться в 

 

while($row = $STH->fetch()){

 

не могу понять как он относиться к коду и на какими параметры можно его отредактировать???

Edited by vitaxastifler
Link to comment
Share on other sites

  • 0

Ну так сложилось что на фирме сразу показали как работать с PDO.


Подскажите следуюющее.

У меня есть список сезонов в которых есть список серий,

http://hostingkartinok.com/show-image.php?id=034119721094793890302489d5ebdd89

 

При нажатии на "первый сезон" я ожидаю что он мне выведет список серий.

Но увы,мне выдаёт такую ошибку 

Fatal error: Call to a member function setFetchMode() on a non-object in Z:\home\serial\www\admin\serr.php on line 17

 

Вот код 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>Serial</title>    <link rel="stylesheet" type="text/css" href="style1.css"></head><body><?php$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `serial` WHERE `id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);$row = $STH->fetch();$name = $row->name;$photo = $row->photo;$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `season` WHERE `serial_id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);?><?php?><div class="global">    <br><br>    <div class="ph">   <?php echo "<img width='201' height='285' src='img/".$row->photo."'>"?></div>    <div class="name">  <a href=""id= <h1><?php echo $row->name;?></a></h1></div>    <div class="post1"><p><?php echo $row->description;?></p></div>    <?php while($row1 = $STH->fetch()) { ?>    <div class="name2">  <a href="serr.php?"id= <h1><?php echo $row1->name;?></a></h1></div>	    <br /><br /> <?php } ?>    <?php    ?>    <button><a href="index.php" alt="adm" style="ext-decoration:non"> Вход в админку</button></p></div></body></html>

2-й док

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>Serial</title>    <link rel="stylesheet" type="text/css" href="style1.css"></head><body><?php$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `serial` WHERE `id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);$row = $STH->fetch();$name = $row->name;$photo = $row->photo;$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `season` WHERE `serial_id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `serii` WHERE `season_id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);?><?php?><div class="global">    <br><br>    <div class="ph">   <?php echo "<img width='201' height='285' src='img/".$row->photo."'>"?></div>    <div class="name">  <a href=""id= <h1><?php echo $row->name;?></a></h1></div>    <div class="post1"><p><?php echo $row->description;?></p></div>    <?php while($row1 = $STH->fetch()) { ?>    <div class="name2">  <a href="serr.php"id= <h1><?php echo $row1->name;?></a></h1></div>	    <br /><br /> <?php } ?>    <?php    ?>    <button><a href="index.php" alt="adm" style="ext-decoration:non"> Вход в админку</button></p></div></body></html>
Link to comment
Share on other sites

  • 0

ссылку почитай. это тоже самое что ты спросил, только на обычном mysql

 

как увидешь цикл while - заметишь аналогию


а вообще - вот мануал http://www.php.net/manual/ru/pdostatement.fetch.php


Но увы,мне выдаёт такую ошибку 

 

`id`='.$id

 

попробуй так `id`="'.$id.'"'

 

т.е WHERE `id` = 'Какое то значение' в кавычках

Edited by Николя223
Link to comment
Share on other sites

  • 0
id - число, а число не строковое значение, т.е. можно и без кавычек.

верно) эт я заработался что то

 

 

 

 

 

Посмотри в базе - есть ли вообще там хоть что то.

Я PDO не юзаю, необходимости не было.  А ради интереса - времени нет тесты делать) не экстрасенс пока к сожалению. У тебя много чего получасться не будет, пока шишек не набьешь, все через такое проходили

Edited by Николя223
Link to comment
Share on other sites

  • 0

 

Ну так сложилось что на фирме сразу показали как работать с PDO.

Подскажите следуюющее.

У меня есть список сезонов в которых есть список серий,

http://hostingkartinok.com/show-image.php?id=034119721094793890302489d5ebdd89

 

При нажатии на "первый сезон" я ожидаю что он мне выведет список серий.

Но увы,мне выдаёт такую ошибку 

Fatal error: Call to a member function setFetchMode() on a non-object in Z:\home\serial\www\admin\serr.php on line 17

 

Вот код 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>Serial</title>    <link rel="stylesheet" type="text/css" href="style1.css"></head><body><?php$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `serial` WHERE `id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);$row = $STH->fetch();$name = $row->name;$photo = $row->photo;$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `season` WHERE `serial_id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);?><?php?><div class="global">    <br><br>    <div class="ph">   <?php echo "<img width='201' height='285' src='img/".$row->photo."'>"?></div>    <div class="name">  <a href=""id= <h1><?php echo $row->name;?></a></h1></div>    <div class="post1"><p><?php echo $row->description;?></p></div>    <?php while($row1 = $STH->fetch()) { ?>    <div class="name2">  <a href="serr.php?"id= <h1><?php echo $row1->name;?></a></h1></div>	    <br /><br /> <?php } ?>    <?php    ?>    <button><a href="index.php" alt="adm" style="ext-decoration:non"> Вход в админку</button></p></div></body></html>

2-й док

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd"><html><head>    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    <title>Serial</title>    <link rel="stylesheet" type="text/css" href="style1.css"></head><body><?php$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `serial` WHERE `id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);$row = $STH->fetch();$name = $row->name;$photo = $row->photo;$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `season` WHERE `serial_id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);$id = $_REQUEST['id'];$DBH = new PDO("mysql:host=localhost;dbname=serials", "root", "");$DBH->query("SET NAMES utf8");$STH = $DBH->query('SELECT * FROM `serii` WHERE `season_id`='.$id);$STH->setFetchMode(PDO::FETCH_OBJ);?><?php?><div class="global">    <br><br>    <div class="ph">   <?php echo "<img width='201' height='285' src='img/".$row->photo."'>"?></div>    <div class="name">  <a href=""id= <h1><?php echo $row->name;?></a></h1></div>    <div class="post1"><p><?php echo $row->description;?></p></div>    <?php while($row1 = $STH->fetch()) { ?>    <div class="name2">  <a href="serr.php"id= <h1><?php echo $row1->name;?></a></h1></div>	    <br /><br /> <?php } ?>    <?php    ?>    <button><a href="index.php" alt="adm" style="ext-decoration:non"> Вход в админку</button></p></div></body></html>

Ну же,подскажите кто нибудь!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy