Изкарване на разултати с left join.

RiddleR

Registered
Добър вечер, трябва ми помощ, че се затруднявам яко.

Имаме две таблици:

crist
- id
- tex


Втората:

izteg
-id
-koi
-ip


Как мога да изкарвам резултатите от izteg, и с полето koi което съдържа id-to от първата да изкарам tex също от първата таблица?

Благодаря.
 
първо си добави едно поле в izteg crist_id за да може да имаш какво да сравняваш.
после ->

[sql]
SELECT id,tex FROM izteg LEFT JOIN izteg ON izteg.id = crist.crist_id
[/sql]

и получаваш всички резултати
 
полето koi от втората таблица е точно за тая цел :) то е ид-то от crist

а как да изкарвам резултатите?
 
$qry = mysqli_query($con,$sql);

while($row = mysqli_fetch_array($qry))
{
echo $row['pole1'];
echo $row['pole2'];

}

и така нататък с полетата които ти трябват
 
нещо не бачка...
като полето koi е сменено на crist_id
Код:
$zaqvka = mysql_query("SELECT id,tex FROM izteg  LEFT JOIN izteg ON izteg.id = crist.crist_id");

$qry = mysqli_query($zaqvka,$connect);

while($row = mysqli_fetch_array($qry))
{
echo "sad";
echo $row['tex'];
echo $row['crist_id'];

}
 
RiddleR каза:
нещо не бачка...
като полето koi е сменено на crist_id
Код:
$zaqvka = mysql_query("SELECT id,tex FROM izteg  LEFT JOIN izteg ON izteg.id = crist.crist_id");

$qry = mysqli_query($zaqvka,$connect);

while($row = mysqli_fetch_array($qry))
{
echo "sad";
echo $row['tex'];
echo $row['crist_id'];

}

защо два пъти правиш mysqli_query ?
Т.е. защао правиш query на query-то. Тоя код който съм ти дал е просто ориентировачен как да си направиш нещата :)

Код:
$zaqvka = mysqli_query($connect,"SELECT id,tex FROM izteg  LEFT JOIN izteg ON izteg.id = crist.crist_id") or die (mysqli_error($connect));


while($row = mysqli_fetch_array($qry))
{
echo "sad";
echo $row['tex'];
echo $row['crist_id'];

}
 
сложи този or die (mysql_error()); или ако ползваш mysqli or die (mysqli_error($connect)) тъй като гледам ползваш mysql а не mysqli
 
mapka7a каза:
сложи този or die (mysql_error()); или ако ползваш mysqli or die (mysqli_error($connect)) тъй като гледам ползваш mysql а не mysqli

Код:
$connect = mysql_connect($hostname, $dbuser, $dbpass)or die(mysql_error()); 
mysql_select_db($dbname,$connect); 

	
	
	
$zaqvka = mysqli_query($connect,"SELECT id,tex FROM izteg  LEFT JOIN izteg ON izteg.id = crist.crist_id") or die (mysql_error());


while($row = mysqli_fetch_array($qry))
{
echo "sad";
echo $row['tex'];
echo $row['crist_id'];
 
}

нищо не излиза, html кода на страницата свършва точно като почва $zaqvka
 
А така?
PHP:
$connect = mysql_connect($hostname, $dbuser, $dbpass)or die(mysql_error());
mysql_select_db($dbname,$connect);

   
   
   
$query = mysql_query($connect,"SELECT id,tex FROM izteg  LEFT JOIN izteg ON izteg.id = crist.crist_id") or die (mysql_error());


while($row = mysql_fetch_array($query)){
	echo "sad";
	echo $row['tex'];
	echo $row['crist_id'];
}
 
подкарах го така:


PHP:
$zaqvka = mysql_query("SELECT crist_id,tex FROM izteg  LEFT JOIN crist ON izteg.crist_id = crist.id LIMIT 10");

while($row = mysql_fetch_array($zaqvka))
{

echo"  <tr><td>";
echo $row['tex'];
echo"</td></tr>";

}

но как мога да изкарам последните който са добавени в izteg? защото сега ми ги показва обратно, тоест първите който са добавени.

Edit: оправих се благодаря на всички за помоща, давам точка на dakata__92 тъй като най-близо беше до резултата.

PHP:
$zaqvka = mysql_query("SELECT crist_id,tex FROM izteg  LEFT JOIN crist ON izteg.crist_id = crist.id ORDER BY izteg.id DESC LIMIT 20");
 
Пробвай така :)
PHP:
$zaqvka = mysql_query("SELECT crist_id,tex FROM izteg  LEFT JOIN crist ON izteg.crist_id = crist.id ORDER BY izteg.crist_id DESC LIMIT 10");

while($row = mysql_fetch_array($zaqvka)){
	echo"  <tr><td>";
		echo $row['tex'];

	echo"</td></tr>";
}
 
Код:
SELECT izteg.*,crist.tex FROM zteg JOIN crist ON crist.id = izteg.koi

Тук е доста добре обяснено с картинки дори. Става доста ясно:
http://www.sitepoint.com/understanding-sql-joins-mysql-database/

Също така:
Код:
You are using mysql_* which is deprecated since PHP 5.5.0. This extension is deprecated as of PHP 5.5.0, and will be removed in the future.

Вместо mysql_* ползвай PDO or MySQLi.

Ето пример:

Код:
$mysqli = mysqli_init();
$mysqli->real_connect($hostname, $dbuser, $dbpass, $dbname);


Код:
$result = $mysqli->query("SELECT izteg.*,crist.tex FROM zteg JOIN crist ON crist.id = izteg.koi");
//и т.н.

http://php.net/manual/en/book.mysqli.php
http://web-tourist.net/login/login/view.php?st=3159
 

Back
Горе