php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
nicht alle daten eines arrays werden in das pulldown menü geladen


 
jazzdee
31-07-2003, 17:05 
 
ich habe ein pulldown menü, welches seine daten aus einer tabelle bezieht.
in der tabelle "kategorie" gibt es eine row "kategorie_id" und "kategorie".
es sind bereits 3 datensätze vorhanden, es werden jedoch immer welche verschluckt. momentan werden nur zwei datensätze angezeigt, obwohl 3 eingetragen sind. wo liegt der fehler?


<?php
$kategorie_SQL = "SELECT * FROM kategorie";
$kategorie_result = mysql_query($kategorie_SQL);
echo '<select name="kategorie" size="1"';

while($i = mysql_fetch_array($kategorie_result) )
{
echo "<option value=\"$i[kategorie]\">$i[kategorie]</option>";
}
echo '</select>';

?>


sorry, hab den fehler gefunden. hatte in voherigen versuche ne liste mit der size="1" erstellt. das muss natürlich weg ;)

@mods ---> das hier kann gelöscht werden

 
Innuendo
31-07-2003, 17:07 
 
Ich würde SELECT um ORDER BY id ASC erweitern und den Namen des <select> umbenennen. Sicher ist sicher. :)

 
jazzdee
31-07-2003, 17:19 
 
so isses jetzt richtig :)

<?php
$kategorie_SQL = "SELECT * FROM kategorie";
$kategorie_result = mysql_query($kategorie_SQL);
echo '<select name="kategorie">;

while($i = mysql_fetch_array($kategorie_result) )
{
echo "<option value=\"$i[kategorie]\">$i[kategorie]</option>";
}
echo '</select>';

?>


@Innuendo
ORDER by id würde ein chaos entfachen. man würde das menü nur noch sehr schlecht lesen können.
warum soll ich den namen des select tags ändern? er muss kategorie sein, damit die daten ordentlich in die db abgespeichert werden. wenn ich den namen ändern würde, müsste ich die ganzen INSERT daten ändern (na ja, kommt auf selbe raus)
aber es würde mich trotzdem interessieren, warum du meintest "sicher ist sicher"?!

 
muecke0815
31-07-2003, 17:19 
 
da stimm ich Innuendo zu!
aber nach id sortieren da ist es doch besser nach kategorie - schließlich muß man ja auch mal an die end-user denken :-)

na das macht man nicht direkt in die db mit client daten!

 
Innuendo
31-07-2003, 17:24 
 
Warum würde das Ordnen nach der ID ein Chaos verursachen? Da werden ja wohl schlecht 4.329 Kategorien drin stehen, oder? Und außerdem gibst Du doch eh nur den Namen der Kategorie aus. Was macht das Skript denn, wenn Du die SELECT-Anweisung um meinen Vorschlag erweiterst?

 
muecke0815
31-07-2003, 17:45 
 
@ Innuendo
weil es für den menschen leichter ist namen nach buchstaben zu finden! interne id sortierung sieht der user nicht und brauch er doch auch nicht

 
Innuendo
31-07-2003, 17:52 
 
Wer sagt denn, dass die ID der jeweiligen Kategorie angezeigt wird? Er soll nach der ID sortieren. Das heißt noch lange nicht, dass diese dann auch angezeigt wird.

SELECT * FROM kategorie ORDER BY id ASC heißt bei mir "Nimm alles von der Tabelle kategorie und sortiere es aufsteigend nach der ID" und nicht "Nimm alles von der Tabelle, sortiere es und gib die ID aus".

 
muecke0815
31-07-2003, 17:54 
 
richtig und in dieser reihenfolge wird auch die while schleife ablaufen!!! sprich nach id sortiert. hab nirgendsgesagt das sie angezeigt wird????

 
Innuendo
31-07-2003, 17:55 
 
Ist ja auch egal. Er hat seinen Beitrag oben bearbeitet und somit das Problem selbst gelöst.

 
jazzdee
31-07-2003, 18:37 
 
es geht darum,

ich gehe jetzt mal davon aus, dass 5 datensätze in der db sind.

so würde es aussehen, wenn man nach ID ordnet:
Fanpages
Sonstiges
2.Bundesliga
International
1.Bundesliga

wenn ich nun aber nach kategorie ordne, sieht es schon besser aus (besser lesbar und schneller aufzufinden):
1.Bundesliga
2.Bundesliga
Fanpages
International
Sonstiges


aber is ja auch egal. die hauptsache ist, das ihr versucht habt mir zu helfen. thx

 
Innuendo
31-07-2003, 18:38 
 
Hättest Du erwähnt, dass Du eine bestimmte Sortierreihenfolge haben willst, wär das was anderes gewesen.

Klappt es denn jetzt überhaupt?

 
jazzdee
31-07-2003, 20:34 
 
jo, klappt einwandfrei


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:02 Uhr.