Avatar billede supermand69 Nybegynder
29. november 2003 - 00:10 Der er 3 kommentarer og
1 løsning

function virker ikke

Hej... jeg har nu siddet i snart et helt døgn med en function jeg simpelt hen ikke kan få til at virke :-/

Jeg har en database med nogle brugere som så kan tilføje hinanden som favoritter...

function update_array($id_arr, $table_arr, $column_arr, $record_arr, $action)
{
    global $db;
   
    $i = 0;
   
    foreach($id_arr as $id)
    {
        $table_arr = array_values($table_arr);
        $table = $table_arr[$i];
       
        $column_arr = array_values($column_arr);
        $column = $column_arr[$i];
       
        $record_arr = array_values($record_arr);
        $record = $record_arr[$i];
       
        $get = mysql_query("SELECT $column FROM $db.$table WHERE id='$id'");
        $row = mysql_fetch_array($get);
       
        if($action)
        {
            if($row[$column])
            {
                $field_arr = explode(',', $row[$column]);
                if(!in_array($record, $field_arr)) $field_arr[] = $record;
                foreach($field_arr as $value) $update .= "$value,";
                $update = substr($update, 0, -1);
            }
            else $update = $record;
        }
        else
        {
            if($row[$column])
            {
                $field_arr = explode(',', $row[$column]);
                if(in_array($record, $field_arr))
                {
                    foreach($field_arr as $value) if($value != $record) $update .= "$value,";
                    $update = substr($update, 0, -1);
                }
            }
        }
       
        echo "<br>'$row[$column]' --> '$update'<br>";
        echo "<br>UPDATE $db.$table SET $column='$update' WHERE id='$id'<br><br>";
       
        if($update) mysql_query("UPDATE $db.$table SET $column='$update' WHERE id='$id'");
       
        unset($update);
       
        $i++;
    }
}

$id_arr = array(
    $_SESSION[userid],
    $_GET[user]
);
$table_arr = array(
    'users',
    'users'
);
$column_arr = array(
    'favourite',
    'favourite2'
);
$record_arr = array(
    $_GET[user],
    $_SESSION[userid]
);

if($_GET[func] == 'add_favourite') $action = 1;

if($_GET[func] == 'add_favourite' || $_GET[func] == 'del_favourite') update_array($id_arr, $table_arr, $column_arr, $record_arr, $action);
Avatar billede tjp Mester
29. november 2003 - 03:32 #1
Hvad er det lige, der ikke virker?? *S*
Avatar billede supermand69 Nybegynder
29. november 2003 - 12:24 #2
$row[favourite] kan f.eks. være '3,67,89,5' som er id'er på andre brugere... når man så vil adde en bruger mere er det ikke altid det virker...

eks. $row[favourite] .= ',47';
Avatar billede supermand69 Nybegynder
29. november 2003 - 18:10 #3
har fundet fejlen... den kunne ikke slette hvis $row[favourite] eller $row[favourite2] var et tal

function update_array($id_arr, $table_arr, $column_arr, $record_arr, $action)
{
    global $db;
   
    $i = 0;
   
    foreach($id_arr as $id)
    {
        $table_arr = array_values($table_arr);
        $table = $table_arr[$i];
       
        $column_arr = array_values($column_arr);
        $column = $column_arr[$i];
       
        $record_arr = array_values($record_arr);
        $record = $record_arr[$i];
       
        $get = mysql_query("SELECT $column FROM $db.$table WHERE id='$id'");
        $row = mysql_fetch_array($get);
       
        if($action)
        {
            $update = 1;
           
            if($row[$column])
            {
                $field_arr = explode(',', $row[$column]);
                if(!in_array($record, $field_arr)) $field_arr[] = $record;
                foreach($field_arr as $value) $field .= "$value,";
                $field = substr($field, 0, -1);
            }
            else $field = $record;
        }
        else
        {
            if($row[$column])
            {
                $update = 1;
               
                $field_arr = explode(',', $row[$column]);
                if(in_array($record, $field_arr))
                {
                    foreach($field_arr as $value) if($value != $record) $field .= "$value,";
                    $field = substr($field, 0, -1);
                }
            }
        }
       
        if($update) mysql_query("UPDATE $db.$table SET $column='$field' WHERE id='$id'");
       
        unset($field);
       
        $i++;
    }
}
Avatar billede supermand69 Nybegynder
29. november 2003 - 18:10 #4
svar ;)
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