kostenloser Webspace werbefrei: lima-city


Optionfeld schon ausgewählt

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    Hallo,

    ich habe das folgende Script zum Ändern einer ref="/tag/kategorie">Kategorie:

    $kategorie_query = "SELECT * FROM dl_rezept_kategorien";
    	$res = $abstract->query ( $kategorie_query );
    	
    	$i=1;
    	while ( $kategorie = $abstract->fetchRow () ) {
    	if ($i == $kategorie_id) {
    	echo '<option value="' . $kategorie ['id'] . '" selected>' . $kategorie ['name'] . '</option>';
    	} else {
    	echo '<option value="' . $kategorie ['id'] . '">' . $kategorie ['name'] . '</option>';
    	}
    	$i++;
    	}


    In der Datenbank steht eine Kategorie ID, und das Script gibt die aktuelle Kategorie als selected aus.

    Folgendes Problem gibt es mit diesem Script:

    Wenn die Kategorie IDs nicht fortlaufend in der Datenbank stehen, bleibt das Script schon bei der ersten Kategorie stehen.
    Warum ist das so?

    Beispiel:

    1|Testkategorie1
    2|Testkategorie2
    3|Testkategorie3
    .....
    7|Testkategorie7

    Bei den ersten drei zeigt das Script die richtige Kategorie bei der Änderung an, aber wenn die 7. Kategorie ausgewählt ist, nicht.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo php-oop!

    Wie bleibt das Script stehen? Gibt es einen Fehler?

    Du könntest bei der Schleife ein debugging einbauen:

    while ( $kategorie = $abstract->fetchRow () ) {
    echo $kategorie_id.'<br>';


    So kann man sehen ob nicht genügend Werte aus der Datenbank kommen oder etwas anderes der Fehler ist.
  4. Hallo php-oop,

    sehe ich das richtig, dass du die Kategorie standardmäßig willst, die die id $kategorie_id hat?

    Ist es dann nicht sinnlos, einen Zähler $i hochzuzählen und damit zu vergleichen?
    Müsste der Code dann nicht eher so aussehen?
    $kategorie_query = "SELECT * FROM dl_rezept_kategorien";
    $res = $abstract->query ( $kategorie_query );
    
    while ( $kategorie = $abstract->fetchRow () ) {
    	if ($kategorie['id'] == $kategorie_id) {
    		echo '<option value="' . $kategorie ['id'] . '" selected>' . $kategorie ['name'] . '</option>';
    	} else {
    		echo '<option value="' . $kategorie ['id'] . '">' . $kategorie ['name'] . '</option>';
    	}
    }


    Ich kann mir zwar nicht vorstellen, dass das dein Problem behebt, aber da es ja bei fortlaufenden nicht auftritt, und $i auch fortlaufend ist, würde ich es auf einen Versuch ankommen lassen...

    Ansonsten lass dir, wie maxplus schon gesagt hat, am Besten mal alle Werte, die in der Abfrage drinstehn, ausgeben...
  5. Autor dieses Themas

    php-oop

    php-oop hat kostenlosen Webspace.

    Ja, das ist richtig !

    Ich habe es eben mit deinem Code probiert, jetzt funktioniert alles, wie es soll ;)

    Danke für deine Hilfe !

    fr34qy schrieb:
    Hallo php-oop,

    sehe ich das richtig, dass du die Kategorie standardmäßig willst, die die id $kategorie_id hat?

    Ist es dann nicht sinnlos, einen Zähler $i hochzuzählen und damit zu vergleichen?
    Müsste der Code dann nicht eher so aussehen?
    $kategorie_query = "SELECT * FROM dl_rezept_kategorien";
    $res = $abstract->query ( $kategorie_query );
    
    while ( $kategorie = $abstract->fetchRow () ) {
    	if ($kategorie['id'] == $kategorie_id) {
    		echo '<option value="' . $kategorie ['id'] . '" selected>' . $kategorie ['name'] . '</option>';
    	} else {
    		echo '<option value="' . $kategorie ['id'] . '">' . $kategorie ['name'] . '</option>';
    	}
    }


    Ich kann mir zwar nicht vorstellen, dass das dein Problem behebt, aber da es ja bei fortlaufenden nicht auftritt, und $i auch fortlaufend ist, würde ich es auf einen Versuch ankommen lassen...

    Ansonsten lass dir, wie maxplus schon gesagt hat, am Besten mal alle Werte, die in der Abfrage drinstehn, ausgeben...
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!