Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Php - поиск и MySQL 2, multiple table search 
:(
    Опции темы
BigN
  Дата 28.5.2005, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет



Короче надо сделать поик по автору из Tabel: Verfasser ...




Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 
4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h2>Traumgruppe GD2 - Elektronikdokument Datenbank </h2>
<h2>Implementation des 4. Blattes</h2>
<hr>
<h2>Teil 2: Suche in der DatenBank - Suchergebnisse</h2>
    <?php
        // information
        echo("begin<br>");
        
        $selSucTyp = $_REQUEST["selSucTyp"];
        $txtSucTer = $_REQUEST["txtSucTer"];
        trim($txtSucTer);
        if (!$selSucTyp || !$txtSucTer){
            echo("bitte fühlen Sie die Form!!!");
            exit();
        }
        $selSucTyp = addslashes($selSucTyp);
        $txtSucTer = addslashes($txtSucTer);
        
        // dummie : echo($selSucTyp);
        //echo($txtSucTer);
        //connect to dababase
        $dbcnn = mysql_connect("localhost","gd2","d02"); 
        if (!dbcnn){
            echo("database not connected");
            exit();
        }
        $dbsel = mysql_select_db("gd2");
        
        if (!dbsel){
            echo("database not selected");
            exit();
        }
        
        echo("preliminary tasks carried out <br>");
        
        if ($btnSubmit= "Submit"){
            echo("executing...<br>");
            
            
            switch ($selSucTyp){
/*            case "Titel":
                $suchCondition= "Titel like '%".$txtSucTer."%'";
                break;
            case "Dis":
                $suchCondition= "DispJahr=".$txtSucTer;
                break;    
*/
            case "Ver":
                $suchCondition= 
"Verfasser.Nachname = ".$txtSucTer." OR Verfasser.Vorname = ".$txtSucTer." 
AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid";
                break;
/*                default:
                $suchCondition= "true";
*/
            }
            
            $str1= "select * from Dokument, Verfasser, wird_verfasst 
WHERE Verfasser.Nachname = ".$txtSucTer." OR Verfasser.Vorname = ".$txtSucTer." 
AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid";

            $query= $str1;
            echo("query:<br>");
            echo($str1);    
            $result= mysql_query($query);
            $num_result= mysql_num_rows($result);
            echo("<p><b>".$num_result."</b> books found</p>");
            echo("<table border='1'>".
            "<tr><td>Dokument Id</td><td>Titel</td>
            <td>Dokument Typ</td><td>Disputation Jahr</td></tr>");
            for($i=0;$i<$num_result;$i++){
                $rows= mysql_fetch_array($result);
            echo("<tr>");
           echo("<td>".$rows[Dokid]."</td>");
           echo("<td>".$rows[Titel]."</td>");
           echo("<td>".$rows[Typ]."</td>");
                echo("<td>".$rows[DispJahr]."</td>");
            echo("</tr>");
                
            }
            echo("</table>");
        }
    ?>
    
</body>
</html>






Код


CREATE DATABASE gd2;
show databases;
use gd2;
CREATE TABLE Dokument(Dokid int(20) NOT NULL AUTO_INCREMENT, 
Titel varchar(100) NOT NULL, Typ varchar(20) NOT NULL, 
Dispjahr year(4) NOT NULL, PRIMARY KEY(Dokid) );

use gd2;
CREATE TABLE Verfasser( Verid int(20) AUTO_INCREMENT NOT NULL, 
Vorname varchar(30) NOT NULL, Nachname varchar(30) NOT NULL, 
Email varchar(30) default NULL, PRIMARY KEY(Verid));

use gd2;
CREATE TABLE wird_verfasst( Dokid int(20) NOT NULL, Verid int(20) NOT NULL);

INSERT INTO Dokument VALUES 
(1, 'Context Awareness in Information Logistics', 'Dissertation', 2005);

INSERT INTO Dokument VALUES 
(2, 'Exp 92 in Sevilla. Ziele, MaЯnahmen und Wirkungen', 'Diplomarbeit', 1998);

INSERT INTO Dokument VALUES 
(3, 'Weiblichkeit und aesthetisches Handeln bei zeitgenoessischen', 'Dissertation', 2004);


INSERT INTO Verfasser VALUES (1, 'Aulikki', 'Eromaeki', NULL);
INSERT INTO Verfasser VALUES (2, 'Ingrid', 'Wagner-Kantuser', NULL);
INSERT INTO Verfasser VALUES (3, 'Haselloff', 'Sandra','[email protected]');
INSERT INTO Verfasser VALUES (4, 'Pamela', 'Heise', '[email protected]');


INSERT INTO wird_verfasst VALUES (1, 3);
INSERT INTO wird_verfasst VALUES (2, 4);
INSERT INTO wird_verfasst VALUES (3, 1);
INSERT INTO wird_verfasst VALUES (3, 1);
INSERT INTO wird_verfasst VALUES (3, 2);





ok search.html

Код
 <html>
<head>
<title>search database</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="search.php" method="post" name="frmSearch">
    <table width="200" border="0" id="tblSearch">
       <caption>
        Dokument dababase search
        </caption>

    <tr>
     <td width="82">Verfasser</td>
     <td width="6"></td>
     <td colspan="2"><input name="txtVer" type="text" size="100"></td>
    </tr>
    <tr>
     <td>Title</td>
     <td>&nbsp;</td>

     <td colspan="2"><input name="txtTitle" type="text" size="100"></td>
    </tr>
    <tr>
      <td>Dokumenttyp</td>
      <td>&nbsp;</td>
      <td colspan="2"><input name="txtDoktyp" type="text" size="100"></td>
      </tr>
    <tr>

     <td>&nbsp;</td>
     <td>&nbsp;</td>
     <td width="488">&nbsp;</td>
        <td width="108"><input name="btnSubmit" type="submit" id="btnSubmit" value="Submit"></td>
    </tr>
</table>

</form>
</body>
</html>


[/code]

[/code]

Это сообщение отредактировал(а) BigN - 28.5.2005, 15:03
PM MAIL   Вверх
Mal Hack
Дата 28.5.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



BigN и в чем проблема-то?
Поиск по базе - выборка. Запрос SELECT. Выполняешь, далее разбираешь результат.
PM ICQ   Вверх
BigN
Дата 28.5.2005, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет



проблема в том что после поиска ничего видно !!! ни одного результата
PM MAIL   Вверх
BigN
Дата 28.5.2005, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет



smile где то во здесь

$str1= "select * from Dokument, Verfasser, wird_verfasst

WHERE Verfasser.Nachname = ".$txtSucTer." OR Verfasser.Vorname = ".$txtSucTer."

AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid";


PM MAIL   Вверх
Joes
Дата 28.5.2005, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 15.11.2004

Репутация: нет
Всего: 7



Вот это ".$txtSucTer." лучше возьми в одинарные кавычки...
А выводишь ты как???
PM MAIL   Вверх
BigN
Дата 29.5.2005, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет





a tak oni uje tam

25 $selSucTyp = addslashes($selSucTyp);
26 $txtSucTer = addslashes($txtSucTer);




ti eto imeesh vvidu

".$txtSucTer." ==>> ' ".$txtSucTer." '
PM MAIL   Вверх
Joes
Дата 29.5.2005, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 15.11.2004

Репутация: нет
Всего: 7



нет просто '.$txtSucTer.', а то путаница быть может, у тебя весь запрос в двойных да и тут еще двойные...
Покажи как выводишь $str1, а то может просто вывод неверно составлен...
PM MAIL   Вверх
Mal Hack
Дата 29.5.2005, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



BigN а в самой таблице записи есть? Посмотри через phpmyadmin.
PM ICQ   Вверх
BigN
Дата 29.5.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет



tablizu s pomoshi phpmyadmin sdelal. smile
PM MAIL   Вверх
Mal Hack
Дата 29.5.2005, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(BigN @ 29.5.2005, 13:14)
tablizu s pomoshi phpmyadmin sdelal. smile

Я про данные говорю. Они там есть?
И еще. Запусти скрипт, добавив в начало строки:
Код
error_reporting( E_ALL );
ini_set( 'display_errors' ,'1' );

PM ICQ   Вверх
BigN
Дата 29.5.2005, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет




Joes, pomenyal :

$query = "select * from Dokument, Verfasser, wird_verfasst
WHERE Verfasser.Nachname = '.$txtSucTer.'
OR Verfasser.Vorname = '.$txtSucTer.'
AND Verfasser.Verid = wird_verfasst.Verid
AND Dokument.Dokid = wird_verfasst.Dokid";




resul'tat smile


query:
select * from Dokument, Verfasser, wird_verfasst WHERE Verfasser.Nachname = '.Einstein.' OR Verfasser.Vorname = '.Einstein.' AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid

0 books found
Dokument Id Titel Dokument Typ Disputation Jahr

Добавлено @ 12:24
2 tochki ubral


$query = "select * from Dokument, Verfasser, wird_verfasst
WHERE Verfasser.Nachname = '$txtSucTer'
OR Verfasser.Vorname = '$txtSucTer'
AND Verfasser.Verid = wird_verfasst.Verid
AND Dokument.Dokid = wird_verfasst.Dokid";

RESULT:

begin
preliminary tasks carried out
executing...
query:
select * from Dokument, Verfasser, wird_verfasst WHERE Verfasser.Nachname = 'Einstein' OR Verfasser.Vorname = 'Einstein' AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid

0 books found
Dokument Id Titel Dokument Typ Disputation Jahr
Добавлено @ 12:27

delo v tom chto u nas bolee chem 1 tabliz, i shas chitayu o funkziyah JOIN i UNION


no est nekotorie nedostatiki:

$query= "select * from Dokument
UNION
select * Verfasser
UNION
select * wird_verfasst
WHERE Verfasser.Nachname = '$txtSucTer'
OR Verfasser.Vorname = '$txtSucTer'
AND Verfasser.Verid = wird_verfasst.Verid
AND Dokument.Dokid = wird_verfasst.Dokid";
smile
PM MAIL   Вверх
PARROT
Дата 30.5.2005, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 3
Всего: 50



BigN, На кнопку Код, сил уже не хватает?
Приятнее читать твой код так:
Код

тут код.

Пользуйся пожалуйста! smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
BigN
Дата 30.5.2005, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет



mojet sledushiy raz tak i sdelayu, no izza paru strok glaza ne ustanut je... smile
smile

smile

peace
PM MAIL   Вверх
PARROT
Дата 30.5.2005, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 3
Всего: 50



Согласись, тут не пару строк:
Код

$query = "select * from Dokument, Verfasser, wird_verfasst 
WHERE Verfasser.Nachname = '.$txtSucTer.' 
OR Verfasser.Vorname = '.$txtSucTer.' 
AND Verfasser.Verid = wird_verfasst.Verid 
AND Dokument.Dokid = wird_verfasst.Dokid";

//resul'tat  


query:
select * from Dokument, Verfasser, wird_verfasst WHERE Verfasser.Nachname = '.Einstein.' OR Verfasser.Vorname = '.Einstein.' AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid

0 books found
Dokument Id Titel Dokument Typ Disputation Jahr

//Добавлено @ 13:24 
//2 tochki ubral


$query = "select * from Dokument, Verfasser, wird_verfasst 
WHERE Verfasser.Nachname = '$txtSucTer' 
OR Verfasser.Vorname = '$txtSucTer' 
AND Verfasser.Verid = wird_verfasst.Verid 
AND Dokument.Dokid = wird_verfasst.Dokid";

//RESULT:

begin
preliminary tasks carried out
executing...
query:
select * from Dokument, Verfasser, wird_verfasst WHERE Verfasser.Nachname = 'Einstein' OR Verfasser.Vorname = 'Einstein' AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid

0 books found
Dokument Id Titel Dokument Typ Disputation Jahr 

//delo v tom chto u nas bolee chem 1 tabliz, i shas chitayu o funkziyah JOIN i UNION
//no est nekotorie nedostatiki:

$query= "select * from Dokument
UNION
select * Verfasser
UNION
select * wird_verfasst 
WHERE Verfasser.Nachname = '$txtSucTer' 
OR Verfasser.Vorname = '$txtSucTer' 
AND Verfasser.Verid = wird_verfasst.Verid 
AND Dokument.Dokid = wird_verfasst.Dokid";

А 48 строк!

Это сообщение отредактировал(а) PARROT - 30.5.2005, 19:29


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
BigN
Дата 30.5.2005, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 25.4.2005

Репутация: нет
Всего: нет



za chem so mnoi sporish , hochesh spamit' chto li?

a tak ya tye pokaju skolko tam strok esli kod ne mojesh razlichat' ... smile
Добавлено @ 21:42
Joes, pomenyal :

Код

$query = "select * from Dokument, Verfasser, wird_verfasst
WHERE Verfasser.Nachname = '.$txtSucTer.'
OR Verfasser.Vorname = '.$txtSucTer.'
AND Verfasser.Verid = wird_verfasst.Verid
AND Dokument.Dokid = wird_verfasst.Dokid";




resul'tat smile

Код

query:
select * from Dokument, Verfasser, wird_verfasst WHERE Verfasser.Nachname = '.Einstein.' OR Verfasser.Vorname = '.Einstein.' AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid


0 books found
Dokument Id Titel Dokument Typ Disputation Jahr

Добавлено @ 12:24
2 tochki ubral

Код

$query = "select * from Dokument, Verfasser, wird_verfasst
WHERE Verfasser.Nachname = '$txtSucTer'
OR Verfasser.Vorname = '$txtSucTer'
AND Verfasser.Verid = wird_verfasst.Verid
AND Dokument.Dokid = wird_verfasst.Dokid";


RESULT:

begin
preliminary tasks carried out
executing...
query:
select * from Dokument, Verfasser, wird_verfasst WHERE Verfasser.Nachname = 'Einstein' OR Verfasser.Vorname = 'Einstein' AND Verfasser.Verid = wird_verfasst.Verid AND Dokument.Dokid = wird_verfasst.Dokid

0 books found
Dokument Id Titel Dokument Typ Disputation Jahr
Добавлено @ 12:27

delo v tom chto u nas bolee chem 1 tabliz, i shas chitayu o funkziyah JOIN i UNION


no est nekotorie nedostatiki:
Код

$query= "select * from Dokument
UNION
select * Verfasser
UNION
select * wird_verfasst
WHERE Verfasser.Nachname = '$txtSucTer'
OR Verfasser.Vorname = '$txtSucTer'
AND Verfasser.Verid = wird_verfasst.Verid
AND Dokument.Dokid = wird_verfasst.Dokid";
smile

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0660 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.