Помогите с базой

Discussion in 'PHP' started by -=ALbaNeЦ=-, 24 Jan 2008.

  1. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Народ помогите пожалуйста!
    Есть БД- в ней 5 таблиц:
    klass
    ocenka
    predmet
    teacher
    users
    В users поля -там ID, имя, фамилия ...... ,класс,пароль!
    В teacher- tID, имя, фам ............предмет1......пркдмет2, пароль
    В predmet -pID,название, tID
    В ocenka- дата, оценка, pID, ID-ученика(из users)
    В klass- kID, предмет1............предмет13!
    Нужно как то связать все эти таблицы примерно так- вводишь ИД юзера и его пароль и тебе выдается таблица со всеми всеми прдметами для данного класса, и оценками!
    Вот только все это связать у мя никак не получается!!!Помогите ПЛИЗЗ!!!!!!!
     
  2. mad_xakep

    mad_xakep Banned

    Joined:
    10 Apr 2007
    Messages:
    190
    Likes Received:
    68
    Reputations:
    0
    это типа запрос сделать ?
     
  3. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Ну впринципе да! Первая страничка просто два поля для ввода(ид и пас) и кнопка запроса, а потом как то нужно чтобы по всем таблицам прошлась и именно для введенного ид ученика, собрала инфу и вывела в табл примерно так:
    Предмет | Дата|
    05|06|07|08|09
    ___________________________________
    Алгебра | 4 | н |
    Русский | 3 | 4 |
    Геом | 1 | 5 |
    _____________|

    Ну или может подскажите как получше сделать!!!
     
  4. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Не обязательно чтоб именно так выводилось, эт я так думаю, но может так вообще и нельзя вывести! Подскажите!!!!
     
  5. PiNzit

    PiNzit Elder - Старейшина

    Joined:
    14 Jan 2008
    Messages:
    57
    Likes Received:
    10
    Reputations:
    0
    Я так понимаю разные классы изучают разный набор предметов да? В атком случае когда ученик логинится проверяеш его класс, а даллее из спец таблицы джойномвыбираеш нужные предметы, подробнее о джойнах почитай тут http://www.knizheknet.msk.ru/www.knizhek.net_406.rar (Сама книга на другую тему, но твой вопрос достаточно понятно освящен на странице 126 "раздел 3.4.2 Реструктуризация модели")
     
  6. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Ссылка на книжку битая:) РАзные классы не изучают разные предметы, просто у каждого класса их разное количество и кое гдн разные название!
     
  7. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Скажите хотя бы код странички:
    Вводишь ИД и пас, она соединяется с таблицой users и при прохождении проверки просто тупо выдае на белом листе остальные данные из таблицы, тобишь имя, фамилию, отчество и класс! Подскажите пожалуйтса как это реализовать, а там мож я сам от этого смогу плясать
     
  8. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    select name, last_name,класс from users where name=".SESSION['name'];
    Если авторизация была по сессиям... =\
     
  9. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Не запрос то я знаю, я имел ввиду код самой авторизации! Ну там поля ввода к ним чет привязаь надо(плохо в кодинге, сам не знаю)кнопочка ок связанная наверно тоже с базой.
     
  10. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Вот есть страничка login.php
    <? include_once ("config.php"); ?>
    <html>
    <head>
    <title>Запрос данных ученика</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <p><font face="Arial, Helvetica, sans-serif" size="5"><b>Запрос данных ученика</b></font></p>

    <form name="Sample" method="post" action="<? print $resultpage ?>">
    <table width="40%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
    <tr>
    <td colspan="2" bgcolor="#FFFFCC" valign="middle">
    <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b>Запрос</b></font></div>
    </td>
    </tr>
    <tr>
    <td width="32%" bgcolor="#CCCCCC" valign="middle"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;ID</font></b></td>
    <td width="68%" valign="middle"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    &nbsp;
    <input type="text" name="ID" size="15" maxlength="15">
    </font></b></td>
    </tr>
    <tr>
    <td width="32%" bgcolor="#CCCCCC" valign="middle"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Пароль</font></b></td>
    <td width="68%" valign="middle"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
    &nbsp;
    <input type="password" name="password" size="15" maxlength="15">
    </font></b></td>
    </tr>
    <tr valign="middle" bgcolor="#CCCCCC">
    <td colspan="2">
    <div align="center">
    <input type="submit" name="Login" value="OK">
    <input type="reset" name="Clear" value="Очистить">
    </div>
    </td>
    </tr>
    </table>
    </form>

    <p>&nbsp;</p>
    </body>
    </html>
    После ввода ИД и пасса должно перенаправлятся на страничку проверки этих данных и если данные верни выдавать остальные данные из таблицы, а если не верны перводить на какуенибудь страничку! Подскажите код этой странички проверки плиз!
     
  11. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    PHP:
    <?php

         
    include ("header.php");

        echo 
    "<form action='auth.php' method='post'>
        <span style='margin-left:90px;'>Login :</span> <br /><span style='margin-left:90px;'><input type='text' name='name' value='"
    .$_SESSION['name']."' /></span><br /><br />
        <span style='margin-left:90px;'>Pass :</span> <br /><span style='margin-left:90px;'><input type='password' name='password' value='"
    .$_SESSION['password']."' /></span><br /><br />
        <span style='margin-left:90px;'><input type='submit' value='Войти' title='Войти' /></span>
        </form>"
    ;

        if(
    $_POST['name'] && $_POST['password'])
        {

            if(!
    get_magic_quotes_gpc())
            {
                  
    $password $_POST['password'];
                  
    $name     mysql_escape_string($_POST['name']);
              } else {
                  
    $password stripslashes($_POST['password']);
                  
    $name     $_POST['name'];
              }

              
    $password md5($password);
              
    $query "SELECT * FROM `users` WHERE `name` = '".$name."' AND `pass` = '".$password."'";
              
    $result mysql_query($query);
              if(!
    $result) exit("Ошибка");

            if(
    mysql_num_rows($result))
            {
                
    $_SESSION['fname'] = $name;
                
    $_SESSION['password'] = $password;
                 
    setcookie('name_cook',$_SESSION['fname'],time()+ 86400 30 12);
                  
    setcookie('pass_cook',$_SESSION['password'],time()+ 86400 30 12);
                echo 
    "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD><body>";
              } else {
                echo(
    "<span style='margin-left:90px;'>Неверный пароль</span>");
                echo 
    "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='1; URL=index.php'></HEAD><body>";
            }
         }

        if(
    $_GET['do'] == 'logout')
        {
            
    setcookie('name_cook'"");
            
    setcookie('pass_cook'"");
            
    session_destroy();
            echo 
    "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'></HEAD></HTML>";
         }

        include (
    "footer.php");
    ?>
    PS. CODED by Isis
     
  12. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    а header.php & footer.php где взять?
     
  13. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    И насколько я понял это страница не проверки, а именно ввода, а вот перенаправляет она как раз на то что походу мне надо!!!!
     
  14. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Омг тебе надо проверку наличия кук?
     
  15. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Не мне куки не нужны(вроде не нужны). Мне нужны такая фишка:
    1стр- подключение к базе данных, два поля ввода и кнопка окей и сброс
    2.стр - это страница куда перенаправляет первая после нажатия окей, на этой страници какойто код, который подключается к бд проверяет введенные данные на первой и если они совпадают перенапавляет на 3, а если нет обратно на первую
    Вот код второй стран мне и нужен:)
     
  16. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    ОООО нашел впринципе подходящий мне скрипт!
    Но остался вопрос! Вот скрипт:
    PHP:
    <?php

    include("config.php");

    $connect mysql_connect("$dbhost""$dbusername""$dbpass");
    mysql_select_db("$dbname"$connect);

    session_start();

    if(!isset(
    $ID)) {

    echo 
    "<form method=\"POST\" action=$PHP_SELF>
    <center>
    <table>
    <tr>
    <td>Username:</td>
    <td><input type=\"text\" name=\"ID\" size=\"20\"></td>
    </tr>
    <tr>
    <td>Password:</td>
    <td><input type=\"password\" name=\"password\" size=\"20\"></td>
    </tr>
    <tr>
    <td colspan=\"2\">
    <p align=\"center\"><input type=\"submit\" value=\"Submit\" name=\"submit\"></td>
    </tr>
    </table>
    </center>
    </form>"
    ;
    exit;
    }

    session_register("ID");
    session_register("password");

    $sql "SELECT * FROM users WHERE ID = \"$ID\" AND password = \"$password\"";
    $result = @mysql_query($sql) or die("No.");

    if(
    mysql_num_rows($result) == "0") {

    session_unregister("ID");
    session_unregister("password");

    echo 
    "<h2 align=center>Wrong username and password, try again</h2>";
    exit;

    }

    $ID mysql_result($result,0,"name");
    mysql_close($connect);

    ?>
    А вопрос такой:
    $ID = mysql_result($result,0,"name");- вот эта строка выводит после проверки ид и пасса строку из таблицы-имя, а как зделать чтоб помимо строки имя она выводила и строку фамилия и отчество и класс??? Помогите кто может плиз!!!
     
  17. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Ну плиз помогите, очень надо!!!!!!
     
  18. bul.666

    bul.666 булка

    Joined:
    6 Jun 2006
    Messages:
    719
    Likes Received:
    425
    Reputations:
    140
    Короче вот накатал проверку пароля и вывод данных:
    Создал БД "db" и таблицу users
    Внес туда 5 полей...
    Вот SQL:
    Отсюда создастая Таблица users:
    1 Ivan Ivanov 6b iamhacker
    Дальше PHP:
    Файл index.html (Тут форма для отправки данных)
    HTML:
    <form action="auth.php" method="POST">
    Name: <input type="text" name="name"><br>
    Password: <input type="password" name="password">
    <input type="submit">
    </form>
    
    Файл auth.php (Тут проверки данных имя и пароля и редирект на вывод данных)
    PHP:
    <?php
    mysql_connect
    ("localhost","","");
    mysql_select_db("db");

    if(isset(
    $_POST['password'])) {
    $query "SELECT * FROM `users` WHERE `name` = '".$_POST['name']."' AND `password` = '".$_POST['password']."'";
    $result mysql_query($query);
     if(
    mysql_num_rows($result)) 
            { 
                
    $_SESSION['name'] = $_POST['name'];
                
    $_SESSION['password'] = $_POST['password']; 
                 
    setcookie('name',$_SESSION['name']);              
                 
    setcookie('password',$_SESSION['password']);
                
    Header("Location: db.php");
              }else {
                  echo 
    "Wrong Password!";
    }
    }
    ?>
    Тут я немного поизвращался с COOKIE и SESSION =)
    Файл db.php (Сюда нас привел редирект из auth.php)
    PHP:
    <?php
    mysql_connect
    ("localhost","","");
    mysql_select_db("db");

    $result mysql_query("SELECT * FROM `users` WHERE `name`='".$_COOKIE['name']."'");
    mysql_close();
    while(
    $data mysql_fetch_row($result)) 
    {
        list(
    $id,$name,$last_name,$class,$password)=$data;
        echo 
    "
        <table>
        <tr>
        <td>ID</td><td>
    $id</td>
        </tr>
        <tr>
        <td>NAME</td><td>
    $name</td>
        </tr>        
        <tr>
        <td>LAST_NAME</td><td>
    $last_name</td>
        </tr>
        <tr>
        <td>CLASS</td><td>
    $class</td>
        </tr>
        <tr>
        <td>PASSWORD</td><td>
    $password</td>
        </tr>
        </table>"
    ;
    }
    ?>
    Результат скрипат при правильном вводе name='Ivan' password='iamhacker':
    В ФОРМАТЕ HTML:
    HTML:
    	<table>
    	<tr>
    	<td>ID</td><td>1</td>
    	</tr>
    	<tr>
    	<td>NAME</td><td>Ivan</td>
    	</tr>		
    	<tr>
    	<td>LAST_NAME</td><td>Ivonov</td>
    	</tr>
    	<tr>
    	<td>CLASS</td><td>6b</td>
    	</tr>
    	<tr>
    	<td>PASSWORD</td><td>iamhacker</td>
    	</tr>
    	</table>
    
    :D :D :D :D :D :D :D :D :D :D :D :D :D
     
    1 person likes this.
  19. -=ALbaNeЦ=-

    -=ALbaNeЦ=- New Member

    Joined:
    12 Dec 2007
    Messages:
    20
    Likes Received:
    1
    Reputations:
    0
    Спасибо бальшое bul, очень признателен, пойду потестирую эти скрипты:)
     
    1 person likes this.