ugrás a tartalomhoz

Mysql - Több találat esetén is csak 1-et ad vissza a lekérdezés

geforce9600gt · 2015. Május. 31. (V), 08.43
Hello!

Az alábbi kóddal az a baj, hogy ha a doc táblában több olyan sor is van, ahol a tananyag_id megegyezik a $_GET-ben lévő id-vel, akkor is csak egy adatot rak ki, pedig van olyan, aminél 2 is van.

És most ahol több találat is van, azt úgy rakja ki, hogy azt a tananyagot 2x, csak ugye a másik doc adattal. Mi lenne erre a megoldás?
$sql = "SELECT tananyag.*, doc.*, admin_user.id, admin_user.nev FROM tananyag 
				INNER JOIN doc ON tananyag.tan_id = doc.tananyag_id
				LEFT OUTER JOIN admin_user ON tananyag.tan_uploader = admin_user.id
				WHERE tananyag.tananyag_csoport = ".$_SESSION['logged']['nevsor_csoport']."
				ORDER BY tananyag.tan_upload_date DESC";
		
		echo $sql;
		
		$get_tananyag = mysqli_query($kapcs, $sql);
		
		if(mysqli_num_rows($get_tananyag) > 0 )
		{
			while($t = mysqli_fetch_assoc($get_tananyag))
			{
				?>
                <div class="row tananyag_row">
                	<h4 class="tananyag_title"><?php echo $t['tan_nev']; ?></h4>
                    <p><?php echo $t['tan_leiras']; ?></p>
                    <span class="tananyag_uploaded_info"><i class="glyphicon glyphicon-user"></i> Feltöltötte: <?php echo $t['nev']; ?></span>
                    <span class="tananyag_uploaded_info"><i class="glyphicon glyphicon-calendar"></i> 
                    Feltöltés dátuma: <?php echo substr($t['tan_upload_date'], 0, -3); ?></span>
                    <span class="tananyag_uploaded_info"><i class="glyphicon glyphicon-file"></i> Fájl, dokumentum: 
                    <a href="docs/<?php echo $t['doc_file']; ?>" class="file_link"><?php echo $t['doc_file']; ?></a></span>
                </div>
                <?php
			}
		}
		else
		{
			echo '<p>Tananyagok feltöltése folyamatban...</p>';
		}
		?>
 
1

Biztos?

Poetro · 2015. Május. 31. (V), 14.24
Biztos van több találat? A myqli_num_rows mennyit mutat? Ezen kívül jó lenne, ha a feltételben a változót megfelelően escape-elnéd.
2

A php.net-en a doksiban miért

pythonozok · 2015. Május. 31. (V), 15.58
A php.net-en a doksiban miért nincs mysqli_fetch_assoc?
5

Igen, így megvolt, csak

pythonozok · 2015. Május. 31. (V), 19.08
Igen, így megvolt, csak kicsit furcsa, hogy sokfelé hivatkoznak rá, a doksiban meg csak mint metódus szerepel, függvényként azt mondják, hogy nem létezik. Elsőre azt hittem, valami deprecated dolog, azért kérdeztem itt...
4

Feladat?

Vilmos · 2015. Május. 31. (V), 18.03
Mit is szeretnél voltaképpen?
Tegyük fel, látni akarod mely tananyaghoz van feltöltött dokumentum. Akkor 1 tan.rekord => 1 doc.rekord az értelmes eredmény. A lekérdezés így néz ki, például:

SELECT tananyag.*, doc.tan_id
FROM tananyag
INNER JOIN (SELECT distinct(tan_id) AS tan_id FROM doc ) doc
ON tananyag.tan_id = doc.tan_id
Ha minden kapcsolatot akarsz látni
SELECT tananyag.*, doc.*, ...
,
akkor meg miért gond az 1 tan.rekord => több doc.rekord?
6

Az van most, hogyha pl az A

geforce9600gt · 2015. Május. 31. (V), 19.52
Az van most, hogyha pl az A tananyaghoz több dokumentum van felrakva a doc táblába, akkor ezt az A tananyagot most annyiszor rakja ki, ahány fájl van hozzá a doc táblában.

Nem a fájlokat rakja ki, amennyi van, hanem többször azt a tananyagot, mindig más fájlal, ugye ahány fel van töltve.
7

A lekérdezésed pontosan azt

Vilmos · 2015. Május. 31. (V), 22.47
A lekérdezésed pontosan azt csinálja amire panaszkodsz. Az nem látszik rajta, hogy valami mást szeretnél.
8

Mind1 hagyjuk. Végülis nem

geforce9600gt · 2015. Jún. 1. (H), 07.26
Mind1 hagyjuk. Végülis nem írtam le mi a gondom vele.