Avatar billede usse Nybegynder
18. august 2004 - 16:09 Der er 15 kommentarer og
1 løsning

explode og værdi?

Jeg vil gerne tjekke om en profil allerede er i buddy list..
Jeg har et felt, som hedder buddylist, og der er angivet nogle profiler eks..  profilnavn1, profilnavn2, profilnavn3, osv...
Hvis jeg nu gerne vil se om profilnavn2 eksisterer...

function buddy_list_tjek($profilnavn){

// Hent buddy list for profilen..
    $hent_bl = mysql_query("SELECT buddylist FROM profiler WHERE brugernavn='$profilnavn'");
    $bl = mysql_fetch_array($hent_bl);

// Opdel buddy' efter komma
    $b = explode(",", $bl[buddylist]);

// Tjekker om profilen har buddy i sin liste..
  if($b[$profilnavn] == $profilnavn){ echo "Buddy er allerede i listen.."; }
        else { echo "Buddy er ikke i listen.."; }

}
Avatar billede dennismp Nybegynder
18. august 2004 - 16:11 #1
prøv:
if( in_array($profilnavn, $b) )
  echo "Buddy er allerede i listen..";
Avatar billede usse Nybegynder
18. august 2004 - 16:22 #2
Genialt... det virker mange tak..., men lige en ting til så...
Hvis jeg nu vil KUN slette profilnavn2 fra buddylist feltet, hvad såå?
Avatar billede dennismp Nybegynder
18. august 2004 - 16:30 #3
foreach($b as $k => $v)
  if( $k == 'sletmigbuddy' )
    unset($b[$k]);

du kan også bruge array_filter, men det virker lidt overkill.
Avatar billede usse Nybegynder
18. august 2004 - 16:40 #4
tak skal du have.. kan jeg ikke lige skrive hvis der er noget... :D
Avatar billede dennismp Nybegynder
18. august 2004 - 16:42 #5
Jeg ved ikke om du kan skrive, hvis det bliver nødvendigt.

Men du er velkommen til det :)
Avatar billede usse Nybegynder
18. august 2004 - 17:19 #6
Det virker ikke, det med at slette buddy.. plz help...
Avatar billede dennismp Nybegynder
18. august 2004 - 17:55 #7
ooops.

foreach($b as $k => $v)
  if( $v == 'sletmigbuddy' )
    unset($b[$k]);
Avatar billede usse Nybegynder
18. august 2004 - 18:52 #8
Det virket stadig ikke... kan ikke lige hitte det..
Avatar billede dennismp Nybegynder
18. august 2004 - 19:18 #9
Prøv at give mig lidt kode - så jeg kan fyre op under php'en :)
Avatar billede usse Nybegynder
18. august 2004 - 19:25 #10
Jeg vil ikke slette en $var, men slette noget af teksten i feltet.. buddylist(profilnavn1,profilnavn,2profilnavn3,)

if($funktion == 'fjern'){
foreach($b as $k => $v)
  if( $v == '$profil[brugernavn]' )
  unset($b[$k]);
}
eller ?

if($funktion == 'fjern'){
  $v = in_array($profil[brugernavn], $b);
      unset($v);
  }
Avatar billede dennismp Nybegynder
18. august 2004 - 19:41 #11
if( $v == '$profil[brugernavn]' )

skal være:

if( $v == $profil[brugernavn] )
Avatar billede usse Nybegynder
18. august 2004 - 20:00 #12
Det har jeg også prøvet og det virker heller ikke... trals..

Her er min funktion, så kan det være du kan anskue kodens virkning lidt.. :D

function buddy_list_tjek($profilnavn, $profilid){

// Hent buddy list for profilen..
    $hent_bl = mysql_query("SELECT buddylist FROM profiler WHERE brugernavn='$_SESSION[brugernavn]'");
    $bl = mysql_fetch_array($hent_bl);

// Opdel buddy' efter komma
    $b = explode(",", $bl[buddylist]);

// Er profilen online.. ?
    $hent_online_buddy = mysql_query("SELECT * FROM onlinelisten WHERE brugernavn='$profilnavn'");
    $online_buddy = mysql_fetch_array($hent_online_buddy);

// Tjekker om profilen har buddy i sin liste, og er online..
  if(in_array($profilnavn, $b)){
      if($online_buddy == TRUE){
      echo "<a href='?side=profilliste&id=".$profilid."&funktion=fjern'>";
      echo "<img src=billeder/online.gif alt='online..' border=0></a> ".$profilnavn." ";
            status($profilnavn);
      echo " - Buddy er allerede i listen..";
      } else {
      echo "<a href='?side=profilliste&id=".$profilid."&funktion=fjern'>";
      echo "<img src=billeder/offline.gif alt='offline..' border=0></a> ".$profilnavn." ";
            status($profilnavn);
      echo " - Buddy er allerede i listen..";
      }
  }

  else{
        if($online_buddy == TRUE){
      echo "<a href='?side=profilliste&id=".$profilid."&funktion=tilfoj'>";
      echo "<img src=billeder/online.gif alt='online..' border=0></a> ".$profilnavn." ";
            status($profilnavn);
      echo " - Buddy er ikke i listen..";
      } else {
      echo "<a href='?side=profilliste&id=".$profilid."&funktion=tilfoj'> ";
      echo "<img src=billeder/offline.gif alt='offline..' border=0></a> ".$profilnavn." ";
            status($profilnavn);
            echo " - Buddy er ikke i listen..";
      }
  }

//Her er tilføj buddy
if($funktion == 'tilfoj'){
if($bl == TRUE){
$opdater_profilen = "UPDATE profiler SET buddylist='$bl[buddylist],$profil[brugernavn]' WHERE brugernavn='".$_SESSION[brugernavn]."'";
mysql_query($opdater_profilen);
}
else {
$opdater_profilen = "UPDATE profiler SET buddylist='$profil[brugernavn]' WHERE brugernavn='".$_SESSION[brugernavn]."'";
  mysql_query($opdater_profilen);
}
Avatar billede usse Nybegynder
18. august 2004 - 22:25 #13
LOL det var min fejl.. skulle lige læse omkring funktionen.. :D
Avatar billede dennismp Nybegynder
18. august 2004 - 22:37 #14
Har lige lavet et ultra-simpelt test:

<?php
    $buddy = 'adam,maj,peter,n00b';
    print "Min buddylist er: $buddy.<br /> Men jeg vil af med n00b..<br/>";

    $b = explode(',',$buddy);
    foreach($b as $k => $v)
        if( $v == 'n00b' )
            unset($b[$k]);

    $buddy = join(',',$b);
    print "Slettet. Nu er min buddylist: $buddy";
?>

Der virker det som det skal. Kan ses her: http://dennis.moellegaard.dk/v4/php/530580.php?source=2
Avatar billede usse Nybegynder
18. august 2004 - 23:09 #15
Du er en skatter.. ledte netop efter denne funktion... tusind tak fordi du er så hjælpsom..
Avatar billede dennismp Nybegynder
18. august 2004 - 23:12 #16
Øh, tak.. Tror jeg nok :)

Ellers siger du bare til - jeg er ikke på vej i seng (ferie er en dejlig tid :) )
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester