SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 12.03.2004, 13:44:19
LordFuture LordFuture ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Michla
Beiträge: 61
Doppelte Elemente aus Array löschen

Hey Ho, hab ein kleines Prob:

Hab ne dynamische Bildergallerie geschrieben. Jedes Bild bekommt in der Tabelle "Gallery" meiner DB einen eintrag, unter anderem einen Kategory-Namen in der spalte category, je nachdem bei welcher kategory angezeigt werden soll.

Gut, läuft soweit alles super und zu guter letzt schreib ich noch ein Drop-Down Menü mit allen zur verfügung stehenden Kategorien.

Dieses wird natürlich dynamisch aus der SQL-DB erzeugt und ich hab folgendes Prob:

Ich lasse alle Datensätze durchschauen und hab z.B.
20 Einbträge mit category="Hans Wurst und sein Sohn"
16 Einbträge mit category="Weiswurst mit Semmeln"
38 Einbträge mit category="Mir fällt kein Blöder Kategorynahe mehr ein."

sprich ich hab ein Array mit insgesammt 20+16+38 = 74 Einträgen, von denen aber nur 3 wirklich unterschiedlich sind und ich ja auch jeden nur 1x brauche.

Kennt ihr da einen einfachen weg alles doppelte aus dem Array zu hauen dass ich von den 74 Beiträgen auf die 3 unterschiedlichen komme?

Habs schon mit array_unique getestet, haut aber irgendwie net hin (egal was wie im array steht hab ich immer nur 1en Eintrag).
__________________
Software ist like sex - its better when its free!
Mit Zitat antworten
  #2  
Alt 12.03.2004, 15:22:13
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
array_unique ist eigentlich die richtige Variante.

Poste doch mal, wie du es angewandt hast. Vielleicht liegt darin ja ein Fehler.
Mit Zitat antworten
  #3  
Alt 12.03.2004, 17:09:25
Beedle Beedle ist offline
Anfänger
 
Registriert seit: Jan 2004
Beiträge: 104
Ich würde den Ansatz ändern. Mach daraus zwei Tabellen.
Tabelle 1
bild_id|bild|gruppe_id

Tabelle 2
gruppe_id|gruppe

Dann hast du auch nicht das Problem wenn eine kat:
Mir fällt kein Blöder Kategorynahe mehr ein.
und eine:
Mir fällt kein blöder Kategoriename mehr ein.

Viele Grüße
Beedle
Mit Zitat antworten
  #4  
Alt 12.03.2004, 20:01:51
Marilu Marilu ist offline
Member
 
Registriert seit: Apr 2003
Ort: 49.54, 8.35 - 3./9
Beiträge: 878
Array_unique ist ziemlich buggy, dieses Problem hatte ich auch mal. Ich hab's so gelöst:

PHP-Code:
function my_array_unique($old){ 
    
$new = array(); 
    for(
$i=0;$i<count($old);++$i){ 
        if(
in_array($old[$i], $new) != "true"){ 
            
$new[] = $old[$i]; 
        } 
    } 
    return 
$new

Mit Zitat antworten
  #5  
Alt 13.03.2004, 10:37:49
LordFuture LordFuture ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Michla
Beiträge: 61
Wow, erwstmal danke für eure Zuschriften.

Ok, ich schnapp mir mal den Code von Marilu und schau obs besser läuft. Wenn nicht post ich heut Abend meinen Code (ist ja net lang, nur hab ich den jetzt leider net hier), falls alles wunderbar läuft meld ich mich natürlich auch nochmal.

@Beedle:
Dass mit den 2 Tabellen hab ich mir auch zunächst überlegt, hab mich aber dann für trotzdem nur eine entschieden da ich so alles mit einer Tabelle abdecke und diese Tabelle nicht so rießig ist/wird. Und die Namen der Kategorien sind recht unterschiedlich, sprich ähneln sich nicht sehr. Ist auch Ne Admin-Seitige Gallery sprich die User können sie nur anschauen und ihren Senf dazu abgeben... Hmh, gut. Für den Senf hab ich auch ne Extra Tabelle. Muss ich mal sehen.

Auf jeden Fall schon vielmals Danke für eure beteiligung an meinem Problem, meld mich heut Abend wieder!
__________________
Software ist like sex - its better when its free!
Mit Zitat antworten
  #6  
Alt 13.03.2004, 10:59:07
LordFuture LordFuture ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Michla
Beiträge: 61
Hi,

hat mir natürlich keine Ruhe gleassen :-) und ich muss sagen mit deinen Lösungsansatz Marilu hat es wunderbarst geklappt (Siehe // Entfernen der Doppelten Kategorien aus dem Array). Für interessierte hier trotzdem nochmal der endlich richtig funktionierende Code:

PHP-Code:
// SQL-Datenbank vorbereiten und abfragen
$userdb mysql_connect($SQLserver $SQLuser$SQLpasswort);
$resx mysql_db_query($SQLdbname"select * from gallery");
$sqlmax mysql_num_rows($resx);

//Schleife zum Ausesen der Datensätze in Arrays
$cat = array();
for (
$sqli=0$sqli<$sqlmax$sqli++)
    {
  
$temp_category mysql_result($resx$sqli"category");
  
$cat[$sqli] = $temp_category;
  }
mysql_close($userdb); 

// Entfernen der Doppelten Kategorien aus dem Array
$entryz count($cat);
$newcat = array(); 
for(
$i=0;$i<count($cat);++$i)
  { 
  if(
in_array($cat[$i], $newcat) != "true")
    { 
    
$newcat[] = $cat[$i]; 
    } 
  }
$entz count($newcat);
    
// Template initialisieren
$tpl = new IntegratedTemplateExtension($m5 "/templates/");
$tpl -> loadTemplatefile("gchoose.tpl");

// Do homä ein paar allgemeine ITX-Variablen die wir jetzt setzen 
$tpl -> setVariable("tmarg","10");
$tpl -> setVariable("lmarg","20");
  
// So, zu guter letzt noch des Drop-Down-Menü mit den einträgen füllen
$tpl -> setCurrentBlock("colblock");
for(
$d=0$d<$entz$d++)
    {
    
$tpl -> setVariable("gco_value"$newcat[$d]);
    
$tpl -> setVariable("gco_title"$newcat[$d]);
    
$tpl -> parseCurrentBlock();
    }

$tpl -> show();
?> 
__________________
Software ist like sex - its better when its free!
Mit Zitat antworten
  #7  
Alt 13.03.2004, 16:05:25
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 72
Beiträge: 4.001
"Heute basteln wir ein Listenfeld"
Zitat:
Original geschrieben von LordFuture
Für interessierte hier trotzdem nochmal der endlich richtig funktionierende Code:
Sehr umständlich. Schon mal was von DISTINCT gehört?

PHP-Code:
# Connect
if ($conn = @mysql_connect($SQLserver $SQLuser$SQLpasswort))
{
  if (! @
mysql_select_db ($SQLdbname)) die ('Abbruch: SQL Server nicht erreichbar!');
}
else
{
  die (
'Abbruch: SQL Server nicht erreichbar!');
}

# Connect erfolgreich, DB selektiert

$newcat = array();

if (
$res mysql_query('SELECT DISTINCT category FROM gallery'))
{
  while (
$row mysql_fetch_assoc($res)) $newcat[] = $row['category'];
}

@
mysql_free_result($res);
mysql_close();

$entz count ($newcat);

# und weiter mit Deinem Script
    
// Template initialisieren
$tpl = new IntegratedTemplateExtension($m5 "/templates/");
$tpl -> loadTemplatefile("gchoose.tpl");

// Do homä ein paar allgemeine ITX-Variablen die wir jetzt setzen 
$tpl -> setVariable("tmarg","10");
$tpl -> setVariable("lmarg","20");
  
// So, zu guter letzt noch des Drop-Down-Menü mit den einträgen füllen
$tpl -> setCurrentBlock("colblock");
for(
$d=0$d<$entz$d++)
    {
    
$tpl -> setVariable("gco_value"$newcat[$d]);
    
$tpl -> setVariable("gco_title"$newcat[$d]);
    
$tpl -> parseCurrentBlock();
    }

$tpl -> show();
?> 
Mit Zitat antworten
  #8  
Alt 13.03.2004, 17:09:56
LordFuture LordFuture ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Michla
Beiträge: 61
Ui!

Ehrlich gesagt: Nee, bisher noch nichts von gehört. Scheint aber ein versäumniss gewesen zu sein.

Danke für deinen Beitrag, speicher ich mich gleich mal in meinen Ordner "Merks dir gefälligst"!

THX!
__________________
Software ist like sex - its better when its free!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:28:23 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt