php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.08.2010, 06:22  
Benutzer
 
Registriert seit: 05.05.2010
Beiträge: 58
PHP-Kenntnisse:
Anfänger
Phoenix@ befindet sich auf einem aufstrebenden Ast
Standard Undefined offset / verschachtelte For-Schleifen

Hallo,

ich hoffe meine Problembeschreibung wird verständlich, ich bin gerade am überlegen wie ich mein Problem am besten rüber bringe ... aber, ich versuche es einfach mal

Ich habe 3 For-Schleifen die jeweils anzeigen: Hauptkategorie, Subkategorie, Menüpunkte.

Die äußere For-Schleife läuft Perfekt durch, die mittlere läuft 1x durch und die ganz innen auch 1x = Danach kommt der Fehler, ich sehe den Fehler aber einfach nicht ....

Beispiel:

Hauptkategorie1
- Subkategorie
- Menüpunkt
- Menüpunkt
- Menüpunkt
- "Subkategorie 2 ... Fehler ... Undefined offset ..
- Menüpunkt ... Undefined offset ..
- Menüpunkt ... Undefined offset ..
Hauptkategorie2 (funktioniert)
Hauptkategorie3 (funktioniert)

Lasse ich die 3te For-Schleife weg Funktionieren Hauptkategorie und Subkategorie Anzeige perfekt nur sobald ich die 3te Schleife für Menüounkte einfüge ....

Ich hoffe ich habe den Fehler einigermaßen verständlich rüber gebracht ansonsten sagt mir bitte kurz was ich besser erklären soll und ich werde versuchen es nachzubessern.

Genaue Fehlermeldung: Notice: Undefined offset: 1 in inc_kategorien_verwalten.php on line 68

... Theoretisch ... sollte die Variable definitiv gefüllt sein (funktioniert ja wie gesagt mit zwei Schleifen) ... der Fehler wiederholt sich nach dem zweiten Durchgang ziemlich oft ... habe jetzt aber nur den ersten hier rein geschrieben, bei den weiteren unterscheidet sich lediglich die Zeile.

Ich habe die Stelle im Code markiert wo (ab dem zweiten durchlauf) der erste Fehler auftritt:

PHP-Code:
///////////////////////////////////////////////////////////
// Funktion: Echo Uebersicht
// Zeigt die Übersicht von Kategorien verwalten an
///////////////////////////////////////////////////////////

function echo_uebersicht()
{

echo 
'<div class="Content">
      <div class="Content-Head">
        <h2><strong>Grundeinstellungen:</strong></h2>
      </div>
      <div class="Content-umrandung">
        <div class="Content-Inhalt">'
;

// Hauptkategorien aus der Datenbank holen und zählen

$sql "SELECT * FROM `navi_hauptkategorien` ORDER BY OrderBy ASC";
$db_erg mysql_query$sql ); if ( ! $db_erg ) {die('Funktion: Echo_Navigation Abfrage #1 - MySQL Error ... ' mysql_error());}
$subkategorie = array(array());
$a 0; while($feldhauptkategorie mysql_fetch_array($db_erg))
{
   
$hauptkategorie[$a]['id']       = $feldhauptkategorie['ID'];
   
$hauptkategorie[$a]['name']     = $feldhauptkategorie['Name'];
   
$a++;
}
mysql_free_result$db_erg );

$hauptkategoriecount count($hauptkategorie);

// Hauptkategorien Anzeigen

for($hauptkategorienr 0$hauptkategorienr $hauptkategoriecount $hauptkategorienr++)
{
echo 
'<fieldset>';

echo 
'<legend>'$hauptkategorie[$hauptkategorienr]['name'] .'
<a href=""><img class="adminimg" src="http://www.php.de/_img/delete-page-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/edit-page-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/add-page-green.gif" width="14" height="14" /></a>
 </legend><div class="admin_spacer1"></div>'
;

// Subkategorien aus der Datenbank holen und zählen

$sql "SELECT * FROM `navi_subkategorien` WHERE Hauptkategorie = '"$hauptkategorie[$hauptkategorienr]['id'] ."' ORDER BY OrderBy ASC";
$db_erg mysql_query$sql ); if ( ! $db_erg ) {die('Funktion: Echo_Navigation Abfrage #1 - MySQL Error ... ' mysql_error());}
$subkategorie = array(array());
$b 0; while($feldsubkategorie mysql_fetch_array($db_erg))
{
   
$subkategorie[$b]['id']       = $feldsubkategorie['ID'];
   
$subkategorie[$b]['name']     = $feldsubkategorie['Name'];
   
$b++;
}
mysql_free_result$db_erg );

$subkategoriecount count($subkategorie);

// Subkategorien Anzeigen

if(!empty($subkategorie[0]['name']))
{
for(
$subkategorienr 0$subkategorienr $subkategoriecount $subkategorienr++)
{

/// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Bei der nächsten Variable kommt der Fehler
// '.$subkategorie[$subkategorienr]['name'].'
/// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

echo '<hr /><div class="admin_punkt">

<span class="admin_kat">'
.$subkategorie[$subkategorienr]['name'].'
<a href=""><img class="adminimg" src="http://www.php.de/_img/delete-page-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/edit-page-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/add-page-green.gif" width="14" height="14" /></a>'
;
$letztesubkategorie $subkategoriecount 1;
if (
$subkategoriecount '1' and $subkategorienr != $letztesubkategorie ){echo'<a href=""><img class="adminimg" src="http://www.php.de/_img/down-green.gif" width="14" height="14" /></a>';}
if (
$subkategoriecount '1' and $subkategorienr != '0' ){echo'<a href=""><img class="adminimg" src="http://www.php.de/_img/up-green.gif" width="14" height="14" /></a>';}
echo 
'</span></div><hr />';

// Menüpunkte aus der Datenbank holen

$sql "SELECT * FROM `navi_menuepunkte` WHERE Subkategorie = '"$subkategorie[$subkategorienr]['id'] ."' ORDER BY OrderBy ASC";
$db_erg mysql_query$sql ); if ( ! $db_erg ) {die('Funktion: Echo_Navigation Abfrage #1 - MySQL Error ... ' mysql_error());}
$subkategorie = array(array());
$c 0; while($feldmenuepunkte mysql_fetch_array($db_erg))
{
   
$menuepunkte[$c]['id']       = $feldmenuepunkte['ID'];
   
$menuepunkte[$c]['name']     = $feldmenuepunkte['Name'];
   
$c++;
}
mysql_free_result$db_erg );

$menuepunktecount count($menuepunkte);

// Menüpunkte anzeigen Anzeigen

if(!empty($menuepunkte[0]['name']))
{
for(
$menuepunktenr 0$menuepunktenr $menuepunktecount $menuepunktenr++)
{
echo 
'<div class="admin_punkt">
<span class="admin_subkat">'
.$menuepunkte[$menuepunktenr]['name'].'
<a href=""><img class="adminimg" src="http://www.php.de/_img/delete-page-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/edit-page-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/down-green.gif" width="14" height="14" /></a>
<a href=""><img class="adminimg" src="http://www.php.de/_img/up-green.gif" width="14" height="14" /></a>
</span></div>'
;



}}}}
echo 
'</fieldset><div class="admin_spacer2"></div>';


Geändert von Phoenix@ (20.08.2010 um 06:26 Uhr).
Phoenix@ ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.08.2010, 06:47  
Benutzer
 
Registriert seit: 05.05.2010
Beiträge: 58
PHP-Kenntnisse:
Anfänger
Phoenix@ befindet sich auf einem aufstrebenden Ast
Standard

Bahhh, hier ist der Fehler ... hatte bei allen 3 Arrays $subkategorie = array(array()); ...
Phoenix@ ist offline  
Alt 20.08.2010, 07:55  
Erfahrener Benutzer
 
Registriert seit: 09.11.2008
Beiträge: 200
smilla befindet sich auf einem aufstrebenden Ast
Standard

Was hälst du davon eine Funktion zu bauen, die du Rekursiv aufrufst und dir die Daten als Baum anzeigt. Das sollte vermutlich am einfachsten sein. Dann läuft es auch beliebig vielen Ebenen.
smilla ist offline  
Alt 20.08.2010, 09:13  
Benutzer
 
Registriert seit: 05.05.2010
Beiträge: 58
PHP-Kenntnisse:
Anfänger
Phoenix@ befindet sich auf einem aufstrebenden Ast
Standard

Wie man an meinem Code wahrscheinlich sieht bin ich jetzt echt nicht der PHP-Freak sondern eigne mir nach und nach immer mehr Sachen an ...

Also ich habe schon "einen Baum" aber ich muss gestehen dass ich meinen Code selbst etwas unübersichtlich finde und mich freuen würde wenn es eine bessere Technik geben würde (bzw. gibt es bestimmt ^^)

Kannst DU mir vielleicht ein Beispiel geben für "die du Rekursiv aufrufst"? Weil ich glaube ehrlich gesagt ich werde in einem Jahr oder so Probleme haben wenn ich vor habe was an der Funktion zu ändern
Phoenix@ ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Undefined Index ...? Bas Datenbanken 10 11.08.2010 15:23
Fehler: Undefined offset ttmobil PHP Tipps 2010 4 04.07.2010 19:37
[Erledigt] Undefined offset in prepend.inc.php Billau PHP Tipps 2009 2 17.09.2009 15:17
Notice: Undefined property Thoresus PHP Tipps 2009 2 17.08.2009 23:30
Problem Undefined variable: banbanban PHP Tipps 2009 5 04.03.2009 17:55
Use of undefined constant xxx - assumed 'xxx' in xxx ??? Natheedo PHP Tipps 2009 1 08.01.2009 00:43
php datei löschen djscaleo PHP Tipps 2008 21 14.11.2008 15:47
Wireshark SSL Handshake debugging-Handshake protokoll mittels PHP + Curl brian johnson Off-Topic Diskussionen 0 06.11.2008 11:54
Undefined variable Undefined property: block xxJJxx PHP Tipps 2008 16 05.08.2008 15:30
thumbnails erstellen dom PHP Tipps 2008 39 21.07.2008 21:28
Notice: Undefined index Kein Genie PHP Tipps 2008 5 23.04.2008 17:40
Undefined offset: 4 PHP Tipps 2005 1 25.04.2005 21:09
Notice: Undefined offset: ?? PHP Tipps 2005 11 08.02.2005 12:18
Undefined offset PHP Tipps 2004-2 6 30.12.2004 13:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-einsteiger/70958-undefined-offset-verschachtelte-schleifen.html, php for schleife undefined offset, schleifen gif, undefined offset, undefined offset: 4, php undefined offset, php undefined offset:, spanbildung beim schleifen, php undefined offset: 1, undefined offset:, geschachtelte for schleife php, while schleife undefined offset, zwei verschachtelte for-schleifen, verschachtelte for schleifen, geschachtelte for-schleife in c, offsetschleifen, php verschachtelte for, for schleife c für anfänger, undefined offset 11 php while, for schleife offset

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:12 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum