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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
12.03.2004, 12:44:19
|
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!
|
12.03.2004, 14:22:13
|
|
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.
|
12.03.2004, 16:09:25
|
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
|
12.03.2004, 19:01:51
|
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;
}
|
13.03.2004, 09:37:49
|
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!
|
13.03.2004, 09:59:07
|
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!
|
13.03.2004, 15:05:25
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
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();
?>
|
13.03.2004, 16:09:56
|
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!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:15:20 Uhr.
|