php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-01-2005, 11:51
Citycobra
 Junior Member
Links : Onlinestatus : Citycobra ist offline
Registriert seit: May 2002
Beiträge: 66
Citycobra ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Funktion] Array Problemm

Hallo,

ich hab da ein Problemm mit array()s, ich möchte mir im meinem Script zur auswahl von Kategorien ein Select menu mit den kategorien anzeigen lassen, das Anzeige Format ist:

/index
/index/allgemein/
/index/allgemein/webdesign
/index/PHP
/Index/PHP/Scripte usw

das funktioniert auch soweit bis auf die tatsache wenn ich die kategorien umverteile entweder die kategorie ohne namen also ein leerer Eintrag erscheint, oder einfach der vorherige eintrag doppelt vohanden ist. ich hab schon alles probiert und finde keine lössung, kann mir da mal jemand helfen. hier die functionen zum erstellen des Select Menus:

PHP-Code:
function selectgroup($subid=0) {
    global 
$db$n;
                
// abfrage der einträge aufsteigent von 0 bis...
    
$group $db->query("SELECT * FROM dp".$n."_newsgroup WHERE visible=1 ORDER BY 'group' ASC");
    
$subgroup "<select name=\"group\">";
    
$i=1;
    
$grouparray[0][0] = "/Index"// angezeigte beschreibung
    
$grouparray[0][1] = 0//Kategorie ID
    //ab hier werden die auswahl felder erstellt.
               
while ($row $db->fetch_array($group)) {
        
$grouparray[$i][0] = getcat($row,$grouparray);
        
$grouparray[$i][1] = $row['groupid'];
        
$i++;
    }
    
usort($grouparray'sortCatArray');
    foreach(
$grouparray as $phat) {
        if (
$row['groupid'] == $phat[1]) $subgroup .= "<option value=\"$phat[1]\" selected>$phat[0]</option>\n";
        else 
$subgroup .= "<option value=\"$phat[1]\">$phat[0]</option>\n";
    }
    
$subgroup .= "</select>";
    return 
$subgroup;
}
// hier werden die Unterkategorien zusammen gefügt
function getcat($row,$grouparray){
    
$l $row['group']; 
    if(isset(
$row['group'])) {
        if(isset(
$grouparray[$l][1]) && $grouparray[$l][1] == $l) {
            
$addgroup $grouparray[$l][0];
            
$title .= $addgroup."/".$row[title];
            }
        } else {
            
$title "/Index/".$row['title'];
        }
        return 
$title;
}
hier werden die kompletten Kategorien sortiert
function sortCatArray($a$b) {
    return 
strcmp($a[0], $b[0]);

und hier ist der SQL Dump

PHP-Code:
 CREATE TABLE `dp1_newsgroup` (
  `
groupidint(11unsigned NOT NULL auto_increment,
  `
groupint(11) default '0',
  `
titlevarchar(250collate latin1_general_ci NOT NULL default '',
  `
descriptiontext collate latin1_general_ci NOT NULL,
  `
imagesvarchar(255collate latin1_general_ci NOT NULL default '',
  `
keywordstext collate latin1_general_ci NOT NULL,
  `
countnewsint(11unsigned NOT NULL default '1',
  `
visibletinyint(1NOT NULL default '0',
  
PRIMARY KEY  (`groupid`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=;

-- 
-- 
Daten für Tabelle `dp1_newsgroup`
-- 

INSERT INTO `dp1_newsgroupVALUES (10'Allgemein''Allgemeine News und Offtopic'''''01);
INSERT INTO `dp1_newsgroupVALUES (20'PHP''News rund um PHP'''''01);
INSERT INTO `dp1_newsgroupVALUES (32'Scripte''Neu erschienene PHP Scripte die man sich ansehen sollte.'''''01);
INSERT INTO `dp1_newsgroupVALUES (40'hp-scripte.de''Neues über unsere Projekte'''''11);
INSERT INTO `dp1_newsgroupVALUES (51'DPE''Hier finden Sie die aktuellen News zum DynamicPortal'''''11);
INSERT INTO `dp1_newsgroupVALUES (60'MySQL''News rund um MySQL'''''01); 
wie gesagt die anzeige funktioniert, nur halt nach einer umstellung der kategorien nicht.

Geändert von Citycobra (17-01-2005 um 12:00 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 17-01-2005, 12:20
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sortier doch im sql... das problem is wohl deine sortier funktion... die unnötig is
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #3 (permalink)  
Alt 17-01-2005, 12:29
Citycobra
 Junior Member
Links : Onlinestatus : Citycobra ist offline
Registriert seit: May 2002
Beiträge: 66
Citycobra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

hi,

die sortier function ist leider nicht unnötig da das Select Menu sortiert ausgegeben werden soll, bei der SQL DB muss die sortierung bei 0 anfangen da sonst die einträge zum zusammen fügen der Kategorien " /index/php/ usw nicht funktioniert. das Problem ist ja eigentlich imme rnur der array[$i][0] eintrag mit der beschreibung, den die ID wird immer korekt eingetragen nur halt die zusammen gefügte Kategorie nicht,
wenn du bei der angegeben db nur den eintrag 5 also die MySQL kategorie der PHP kategorie (3) zuweist tritt der fehler auf, die menus werden an sonsten korrekt angezeigt und auch korrekt Sortiert

also das sieht so aus

0 = Index
1 = Index/Allgemein
5 = Index/Allgemein/DPE
2 = Index/PHP usw....

Geändert von Citycobra (17-01-2005 um 12:31 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 17-01-2005, 12:38
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du holst alle daten aus der db also kannste da auch sortieren...
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #5 (permalink)  
Alt 17-01-2005, 12:48
Citycobra
 Junior Member
Links : Onlinestatus : Citycobra ist offline
Registriert seit: May 2002
Beiträge: 66
Citycobra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

klar kann ich sortieren, tu ich ja auch und zwar nach Kategorie (group)

von 0 aufsteigent, danach wird der array doch nur noch von A aufwärts sortiert, ich brauche immer die oberste Kartegorie zuerst also in meinem fall zuerst 0 dann 1 usw

Mach ich das in der DB bekommen ich nicht die gewünschte anzeige, denn liegt zb die hauptkategorie 0 am ende und verweise mit einer kategorie darauf die am anfang steht finder die abfrage die Haupkategorie nicht weil sie ja noch nicht im array steht. also habe ich unvollständige einträge.

schau dir mal den Dump an vieleicht weist du dann was ich meine.


Geändert von Citycobra (17-01-2005 um 12:51 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 17-01-2005, 13:07
Citycobra
 Junior Member
Links : Onlinestatus : Citycobra ist offline
Registriert seit: May 2002
Beiträge: 66
Citycobra ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry,

ich glaub ich war was schwer von begriff, ich hab gar nicht an die doppelte sortierung gedacht,, gab die abfrage geänder und nun ist der fehler verschwunden hier jetzt mal der korekte bereich für den fall das es jemand brauchen kann.

PHP-Code:
function selectgroup($subid=0) {
    global 
$db$n;
    
$group $db->query("SELECT * FROM dp".$n."_newsgroup  WHERE visible=1 ORDER BY 'group' AND 'title' ASC");
    
$subgroup "<select name=\"group\">";
    
$i=1;
    
$grouparray[0][0] = "/Index";
    
$grouparray[0][1] = 0;
    while (
$row $db->fetch_array($group)) {
        
$grouparray[$i][0] = getcat($row,$grouparray);
        
$grouparray[$i][1] = $row['groupid'];
        
$i++;
    }
    
usort($grouparray'sortCatArray');
    foreach(
$grouparray as $phat) {
        if (
$row['groupid'] == $phat[1]) $subgroup .= "<option value=\"$phat[1]\" selected>$phat[0]</option>\n";
        else 
$subgroup .= "<option value=\"$phat[1]\">$phat[0]</option>\n";
    }
    
$subgroup .= "</select>";
    return 
$subgroup;

danke für für den hinweis.
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:55 Uhr.