Author Topic: Wert in einem ARRAY löschen  (Read 10424 times)

0 Members and 1 Guest are viewing this topic.

rinaldos

  • Guest
Wert in einem ARRAY löschen
« on: February 12, 2009, 09:02:52 PM »
Hallo zusammen,
ich habe hier ein Array, bestehend aus numerischen Werten. Nun möchte ich aus dem Array, einen wert löschen. Wie stelle ich das am besten an?

Das Array wird mit folgenden Code in die Datenbank eingetragen:

     $sql 
"SELECT user_id, user_cat
             FROM "
.USERS_TABLE."
             WHERE user_id = '"
.$user_info['user_id']."'";
     
$cat_view_row $site_db->query_firstrow($sql);
     
$cat_viewing_id $new_cat_id;
     
$user_cat_ids_new $cat_view_row['user_cat'];
     if (
$cat_view_row) {
         
$user_cat_ids_array explode(" "$cat_view_row['user_cat']);
         
$cat_viewing count ($user_cat_ids_array);
         if (!
in_array($cat_viewing_id$user_cat_ids_array)) {
            
$user_cat_ids_new .= " ".$new_cat_id;
            
$sql "UPDATE ".USERS_TABLE."
                    SET user_cat = '"
.$user_cat_ids_new."'
                    WHERE user_id = '"
.$user_info['user_id']."'";
            
$site_db->query($sql);
            }
         } else {
           
$sql "INSERT INTO ".USERS_TABLE."
                   (user_cat)
                   VALUES
                   (
$new_cat_id)";
           
$site_db->query($sql);


Im weiteren Abschnitt will ich aus dem Tabellenfeld user_cat einen Wert löschen.

Dazu muss doch nur dieser Abschnitt geändert werden. Der Wert der rausgenommen werden soll, habe ich mit $new_cat_id definiert. Nur wie geht das?


         
if (!in_array($cat_viewing_id$user_cat_ids_array)) {
            
$user_cat_ids_new .= " ".$new_cat_id;
            
$sql "UPDATE ".USERS_TABLE."
                    SET user_cat = '"
.$user_cat_ids_new."'
                    WHERE user_id = '"
.$user_info['user_id']."'";
            
$site_db->query($sql);
            }


Gruß
Ingo

Offline KurtW

  • 4images Guru
  • *******
  • Posts: 2.778
    • View Profile
    • Malediven-Bilder ~~Dreams~~
Re: Wert in einem ARRAY löschen
« Reply #1 on: February 13, 2009, 07:28:05 AM »
Hallo Ingo,

der code kommt mir irgendwie bekannt vor  :wink:

Ganz kann ich Dir nicht folgen. Du möchtest die angesehenen cat_id's der user jeweils neu
in die db speichern oder die jeweilige id rauslöschen.

=> Der Code ist bei meinem Mod zum hinzufügen der id, falls noch nicht in dem Array vorhanden.
      falls doch, wird kein Update gemacht. Falls der erste Eintrag, wird haltdie aktuelle ID eingetragen.


gruss
Kurt

rinaldos

  • Guest
Re: Wert in einem ARRAY löschen
« Reply #2 on: February 13, 2009, 07:48:14 AM »
Stimmt, ist aus deinem MOD. Ich nutze den Code für etwas anderes. Da ich mich leider immer an anderen Beispielen durchhangel um irgendwas entstehen zu lassen, habe ich nun deinen Code genutzt um erstmal etwas funktionierendes wie den Addcat MOD entstehen zu lassen.
Wenn ein Nutzer eine Kategorie neu erstellt, kommt die Kategorie ID in das Feld user_cat. Somit hat er die Rechte diese Kategorie zu löschen, umzubenennen und weitere Kategorien zu erstellen. Wenn er nun seine Kategorie löscht, soll logischerweise auch die ID verschwinden :-)
Die Modifikation steht soweit. Der Nutzer kann bei mir in seinen Kategorien schalten und walten (Ist noch nicht freigegeben) :-) Nur mit dem entfernen der Kategorie ID hapert es.
Ich nutze den Code nicht um anzeigen zu lassen welche Kategorien er besucht hat :-) Das wäre auch zu banal......

LG
Ingo

Offline KurtW

  • 4images Guru
  • *******
  • Posts: 2.778
    • View Profile
    • Malediven-Bilder ~~Dreams~~
Re: Wert in einem ARRAY löschen
« Reply #3 on: February 13, 2009, 12:29:22 PM »
Quote
Ich nutze den Code nicht um anzeigen zu lassen welche Kategorien er besucht hat  Das wäre auch zu banal......

sieht nach dem code so aus...

Kleiner Tip:
lightbox function in includes/functions.php
Code: [Select]
function remove_from_lightbox($id)die beinhaltet die gesuchte function


Gruss
Kurt

rinaldos

  • Guest
Re: Wert in einem ARRAY löschen
« Reply #4 on: February 13, 2009, 12:47:41 PM »
Danke :-)
Dann werd ich damit mal rumexperimentieren :-)

Gruß
Ingo

rinaldos

  • Guest
Re: Wert in einem ARRAY löschen
« Reply #5 on: February 15, 2009, 02:57:26 PM »
Der Tip war Gold wert. Nun stehe ich aber vor einem anderen Rätsel.
 Wenn nun ein bestimmter Wert überschritten wird, soll die error_page angezeigt werden. Das klappt soweit auch, nur wird die variabel cat_limit, nicht mit im text ausgegeben:-(

ich lasse die errorpage hiermit anzeigen:

  $site_template
->register_vars(array(
  
"cat_limit" => $cat_limit
  
));
  if (
$cat_exist >= $cat_limit)  {
     
show_error_page("<meta http-equiv=refresh content=\"10; URL=categories.php?cat_id=$cat_parent_id\">\n
     "
.$lang['addcat_error_limit']."
     <table border=0 cellspacing=0 cellpadding=8><tr><td>
     "
.$lang['user_gb_new_wait']."<a href=categories.php?cat_id=$cat_parent_id>".$lang['user_gb_new_to']."</a>
     </td></tr></table>"
);
     }

die dazugehörige $lang['addcat_error_limit']


$lang
['addcat_error_limit'] = "Jeder Nutzer darf nur eine bestimmte Anzahl von Kategorien anlegen. Die Anzahl liegt derzeit bei {cat_limit}. Wenn du mehr Kategorien brauchst, schreibe mir bitte eine eMail.";

 Der Wert in {cat_limit} wird nicht angezeigt. Ich habe diesen Wert im kurz vorher ja definiert. wenn ich ein echo $cat_limit mache, wird der Wert ausgegeben. Nur leider nicht da, wo er soll. Für jeden Tip wäre ich dankbar......

LG
Ingo