Problem link lə bağlıdır, aşağıda php kodum :
<?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 "[ ". $row['id'] ."]  <br>"; echo "[ <a href='#link'>". $row['name'] ."</a>]  <br><br>"; }
Mysql databaza kodu:
CREATE TABLE `data` (
`id` int(11) NOT NULL,
`name` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
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)
1
Salam. tam olaraq isinize yarayib- yaramayacagindan emin deyilem amma , implode adli funksiya var arasdirsaz melumat ala bilersiz
0
Salam, çox sağolun maraqlanaram
0
” 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
0
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ə
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.
0
salam. men size implode metodunu demisdim hansi ki, arraylar uzerinde emeliyyat aparir. siz ise explode ile islemisiniz bu string uzerinde emeliyyat aparir
0
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.
0
Sualınız aydın deyil. Harada link olsun?
Burada?
echo “[ “. $row[‘name’] .”]
“;
Burada deyirsinizsə, elə ayrı linkdirlər də burada.
0
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.
0
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ə
toplaya bilərsiz.
Ən nəhayətində də
0
Salam, göstərdiyiniz kodu tətbiq edib yoxluyacam, köməyə görə çox sağ olun, cavab yazacam.
0
Salam verdiyiniz kodu tətbiq etdim birşey alındıra bilmədim, fərqli nəticələr çıxdı.
Sual verin
Cavab verin