Пореден въпрос за база данни

Knoppix_

Registered
Здравейте имам таблица в база дани с две полета 1-вото е ID, второто е ime, от тази таблица взимам името т.е втората колона и я придавам към линк. Имам втора таблица в която имам няколко полета които искам да визуализирам, но условието е като я визулизирам да взимам от първта таблица полето име и то да е равно на полето име във втората таблица как мога да го направя. Давам пример за да е по ясно

1-вта таблица е ID|Ime
2-рата е ID|IME|PERIOD|Neshto1|Neshto2|Neshto3|

Иксам да направя заявка от втората таблица така че да отпечатвам само информацията за редовете от таблицата в които полето Ime от 1-вта таблица e равно на полето Ime от втората таблица

адреса в адрес бара ми е ?page=europe&ime=Petar Bushev
 
PHP:
$sql=mysql_query("select from table1,table2 where table1.ime=table2.ime");
while(mysql_fetch_array($sql))
{
//
}
аз поне така го разбрах :D
 
DirectX каза:
PHP:
$sql=mysql_query("select from table1,table2 where table1.ime=table2.ime");
while(mysql_fetch_array($sql))
{
//
}
аз поне така го разбрах :D

Ти си моето спасение много ти благодаря!

И обаче на мене ми трябва друго ако съвпадат двете колони с имената да отпечатва информацията само от 2-rata таблица
 
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
        <title>View Records</title>
<link rel="stylesheet" type="text/css" href="css.css">

</head>
<body>

<?php
/* 
        VIEW-PAGINATED.PHP
        Displays all data from 'players' table
        This is a modified version of view.php that includes pagination
*/

        // connect to the database
        include('connect-db.php');
        
        // number of results to show per page
        $per_page = 10;
        
        // figure out the total pages in the database
		mysql_query("SET CHARACTER SET utf8");
        $result = mysql_query("SELECT * FROM vlekachi,evropa_otchet where vlekachi.vlekach=evropa_otchet.reg_nomer");
        $total_results = mysql_num_rows($result);
        $total_pages = ceil($total_results / $per_page);

        // check if the 'page' variable is set in the URL (ex: view-paginated.php?page=1)
        if (isset($_GET['section']) && is_numeric($_GET['section']))
        {
                $show_page = $_GET['section'];
                
                // make sure the $show_page value is valid
                if ($show_page > 0 && $show_page <= $total_pages)
                {
                        $start = ($show_page -1) * $per_page;
                        $end = $start + $per_page; 
                }
                else
                {
                        // error - show first set of results
                        $start = 0;
                        $end = $per_page; 
                }               
        }
        else
        {
                // if page isn't set, show first set of results
                $start = 0;
                $end = $per_page; 
        }
        // dispaly add new record
        
		echo "<p>" . "<a href=\"?page=new\">Добави нов запис" . "</a></p>";
                
        // display data in table
        echo "<table class=\"result\">";
        echo "<tr> <th>Камион</th> <th>Начална дата</th> <th>Крайна дата</th><th></th> <th></th></tr>";

        // loop through results of database query, displaying them in the table 
        for ($i = $start; $i < $end; $i++)
        {
                // make sure that PHP doesn't try to show results that don't exist
                if ($i == $total_results) { break; }
        
                // echo out the contents of each row into a table
                echo "<tr>";
				echo '<td>' . mysql_result($result, $i, 'reg_nomer') . '</td>';
				echo '<td>' . mysql_result($result, $i, 'nach_data') . '</td>';
				echo '<td>' . mysql_result($result, $i, 'kraina_data') . '</td>';
                echo '<td><a href="?page=edit&id=' . mysql_result($result, $i, 'id') . '">Edit</a></td>';
                echo '<td><a href="?page=delete&id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>';
                echo "</tr>"; 
        }
        // close table>
        echo "</table>"; 
        
        // pagination
		
		 // display pagination
        
		echo "<br>";
        echo "<b>Страница</b> ";
        for ($i = 1; $i <= $total_pages; $i++)
        {
                echo "<a href='?page=view-paginated&section=$i'>$i</a> ";
        }
        echo "</p>";
        
?>


</body>
</html>
Това ми е кода проблема ми е че на всеки линк който съм генерирал ми излиза една и съща информация т.е все едно полетата не са равни
 
Fakeheal каза:
Knoppix_ каза:
1-вта таблица е ID|Ime
2-рата е ID|IME|PERIOD|Neshto1|Neshto2|Neshto3|

Код:
SELECT * FROM table1 JOIN table2 ON table1.ime = table2.ime
може и така :P
а след това на долу...

while($row=mysql_fetch_query($sql))
{
$ime=$row['ime'];
$period = $row['period'];
.....
}
echo "$ime-$period....";
 
?page=europe&kamion=РВ 7103 МХ изкарва

Камион Начална дата Крайна дата
РВ 7102 МХ 01.01.2013 05.02.2013 Edit Delete

?page=europe&kamion=РВ 7102 МХ изкарва

Камион Начална дата Крайна дата
РВ 7102 МХ 01.01.2013 05.02.2013 Edit Delete

т.е получава се така че винаги резултата е един и същ все едно условието ако .. го няма
 
Използвай alias, за да зададеш колоните от таблиците, които искаш, но се преповтарят.

Код:
SELECT *, table1.ime AS table1_ime, table2.ime AS table2_ime FROM table1 JOIN table2 ON table1.ime = table2.ime

И вече след като loop-неш през резултата ще ползваш:
$row['table1_ime'];
$row['table2_ime'];

Или както си ги именуваш ти. (след "AS")

Edit:
Иксам да направя заявка от втората таблица така че да отпечатвам само информацията за редовете от таблицата в които полето Ime от 1-вта таблица e равно на полето Ime от втората таблица

Може би заявката трябва да ти е така:
Код:
SELECT *, table1.ime AS table1_ime, table2.ime AS table2_ime FROM table1 JOIN table2 ON table1.ime = table2.ime WHERE table1.ime = 'Petar Bushev'
 
Fakeheal каза:
Използвай alias, за да зададеш колоните от таблиците, които искаш, но се преповтарят.

Код:
SELECT *, table1.ime AS table1_ime, table2.ime AS table2_ime FROM table1 JOIN table2 ON table1.ime = table2.ime

И вече след като loop-неш през резултата ще ползваш:
$row['table1_ime'];
$row['table2_ime'];

Или както си ги именуваш ти. (след "AS")

Edit:
Иксам да направя заявка от втората таблица така че да отпечатвам само информацията за редовете от таблицата в които полето Ime от 1-вта таблица e равно на полето Ime от втората таблица

Може би заявката трябва да ти е така:
Код:
SELECT *, table1.ime AS table1_ime, table2.ime AS table2_ime FROM table1 JOIN table2 ON table1.ime = table2.ime WHERE table1.ime = 'Petar Bushev'

Това Petar Bushev идва от тук

echo '<td><a href="?page=europe&kamion=' .mysql_result($result, $i, 'vlekach') . '">Petar Bushev</a></td>';
 
Връзка/релация се прави по числова стойност. Ако имаме име, което присъства във втората таблица, то първата е излишна... Каква е структурата на таблиците и какво все пак се търси :roll:
 

Back
Горе