Php While Loop da Row ların birləşdirilməsi və link məsələsi

Problem link lə bağlıdır, aşağıda php kodum : [code]<?php // host (localhost) $db_host = "localhost"; // database name $db_name = "yourdatabasename"; // login $db_user = "youruser"; // password $db_pass = "yourpass"; $db = mysqli_connect ($db_host, $db_user, $db_pass, $db_name) or die ("Невозможно подключиться к БД"); $sql="SELECT id, group_concat(name) as name FROM data group by id"; $result=mysqli_query($db,$sql); while($row=mysqli_fetch_array($result)){ echo "[&nbsp". $row['id'] ."] &nbsp<br>"; echo "[&nbsp<a href='#link'>". $row['name'] ."</a>] &nbsp<br><br>"; } [/code] Mysql databaza kodu: [code][/code] CREATE TABLE `data` ( `id` int(11) NOT NULL, `name` varchar(50) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 [code][/code] and the values in it: Bazaya əlavə edilənlər : 1 kamran 1 emin 2 ramin 2 kam 2 john Və nəticə : [ 1] [ kamran,emin] [ 2] [ ramin,kam,john] İd ləri birləşdirmişəm amma "name" bölməsindəkilər ümumi olaraq bir linkə aid olur, mən isə istəyirəm belə olsun : [ 1] [ kamran][emin] [ 2] [ ramin][kam][john] yəni ayrı - ayrılıqda link olsun

Verilmiş cavablar və yazılan şərhlər (11 cavab var)

dantekamran (2018-05-08 22:18:08)
Salam verdiyiniz kodu tətbiq etdim birşey alındıra bilmədim, fərqli nəticələr çıxdı.

dantekamran (2018-05-01 21:27:23)
Salam, göstərdiyiniz kodu tətbiq edib yoxluyacam, köməyə görə çox sağ olun, cavab yazacam.

dantekamran (2018-05-01 21:25:30)
Salam, implode haqqında videolara baxdım orda birləşdirmə əməliyyatı olur deyə istifadə etmədim, ona görə explode istifadə etdim, aşağıda cavab var implode istifadə edilib o koddan istifadə edib yoxluyacam, çox sağ olun köməyə görə, cavab yazacam.

newprogrammer (2018-04-29 22:21:33)
salam. men size implode metodunu demisdim hansi ki, arraylar uzerinde emeliyyat aparir. siz ise explode ile islemisiniz bu string uzerinde emeliyyat aparir

E. Hacı (2018-04-28 16:10:58)
Problem mysql query-dədir. Ümumiyyətlə yanaşmanı fərqli edib, qrup concatsız etsəydiniz daha yaxşı olardı. Məsələn $sql="SELECT id, name FROM data group by id"; sonra bunu while ilə [code] $array[$row['id']][]='<a href="#">['.$row['name'].']</a>'; [/code] toplaya bilərsiz. Ən nəhayətində də [code] foreach( $array as $key=>$value) { echo implode(" ",$value).'<br>'; } [/code]

dantekamran (2018-04-28 15:57:55)
Məsələni başqa cür həll etdim, nə də olsa başqalarına da lazım olar, deməli explode vasitəsilə linklərə klik edəndə ad olaraq düzgün gəlir amma rəqəm olaraq id düz gəlmir ona görə keçiddə id yox məhz axtarış ilə tapmağı kodlaşdırdım, misalüçün : [ 1] [ kamran][emin] ikisinə də klik edən də actor.php?actor_id=1 verir, amma ad olaraq düz verir actor.php?actor_id=kamran actor.php?actor_id=emin ona görə keçid faylda actor.php də [code] $actorname = $_GET['actor_fname']; $sql="SELECT actor_fname, actor_id FROM actors WHERE (`actor_fname` LIKE '%".$actorname."%')"; [/code] ad olaraq axtarış verməyi fikirləşdim və nəticə uğurlu alındı, sadəcə bir problem çıxdı o da əgər eyni adda aktyor olarsa və id ləri fərqli olarsa, cədvələ eyni ad əlavə etdim yoxlamaq üçün 1 kamran 2 kamran təcrübə olaraq yoxladım while loop olmadığı üçün 1 kamran nəticə olaraq çıxır və əksinə hər ikisi. 1 kamran 2 kamran əgər başqa yol bilirsinizsə çox yaxşı olardı nə də olsa id ilə tapmaq daha düzgündür, bu yol isə müddətli olaraq işə yarıyar.

dantekamran (2018-04-28 14:43:45)
[code] $adlar = explode(',',$row['name']); echo &quot;[ &quot;. $row['id'] .&quot;] <br>"; foreach ($adlar as $name) echo "[ <a>". $name ."</a>] <br>"; [/code] " explode " işə yaradı amma əsas koda tətbiq etdim linklər ayrıldı və belə problem çıxdı, misal üçün 1 1 1 2 1 4 burda film [1] aktyorlar [1] [2] [4] --> linklər ayrıldı amma klikləyəndə actor.php?actorid=1 olaraq görür, yəni ilk id hansıdısa onu görür 2 2 2 3 burda film [2] aktyorlar [2] [3] --> eləcə də burda actor.php?actorid=2

dantekamran (2018-04-28 13:14:48)
Salam, çox sağolun maraqlanaram

dantekamran (2018-04-28 13:14:00)
Salam, " group_concat " edəndə 1 nömrəli id aid olan adlar bir linkdə formalaşır, mənə isə ayrı-ayrı lazımdı, [ 1] [ kamran,emin] --> bu bir linkdi amma mənə belə forması lazımdı --> [ kamran] [emin] yəni üstünə klik edəndə kamran,emin birlikdə kliklənir, mənə isə ayrı lazımdı kamran və emin əlavə olaraq film saytına tətbiq etmək üçün axtarıram, məndə bir biri ilə əlaqələndirilmiş cədvəllər var relationship metodu, bu isə sadə cədvəldi ( yoxlamaq məqsədi ilə ). Məqsəd 1 filmə bir neçə aktyorun əlavə edilməsi və onlara ayrı ayrılıqda link verilməsi relationship vasitəsilə, əgər bunu tapsam onu da həll etmiş olacam.

E. Hacı (2018-04-26 12:58:09)
Sualınız aydın deyil. Harada link olsun? Burada? echo "[ ". $row['name'] ."]

"; Burada deyirsinizsə, elə ayrı linkdirlər də burada.

newprogrammer (2018-04-26 01:36:52)
Salam. tam olaraq isinize yarayib- yaramayacagindan emin deyilem amma , implode adli funksiya var arasdirsaz melumat ala bilersiz