Anzahl der Dpopdownfeld-Element begrenzen

Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 10:53:08 von Daniel Simon

Hallo NG,

Ich fange gerade mit PHP an und habe folgendes vor:
Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in das
zweite Dropdownmenü.

Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...

Ich hoffe ihr könnt mir da weiterhelfen.

Vielen Dank im Vorraus
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 10:58:46 von Johannes Vogel

Hi Daniel

Daniel Simon wrote:
> Ich fange gerade mit PHP an und habe folgendes vor:
> Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
> Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in das
> zweite Dropdownmenü.
> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
> Ich hoffe ihr könnt mir da weiterhelfen.

PHP wid auf dem Server ausgeführt. Dein Ziel kannst du wohl am
einfachsten mit JavaScript erreichen. Oder aber du lädst die Seite
einfach neu und achtest darauf, dass in der zweiten DropDownBox nur 8
Elemente gelistet werden.

HTH, Johannes

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 14:12:53 von Daniel Simon

Hallo Johannes,

>> Ich fange gerade mit PHP an

>> Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
>> Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in das
>> zweite Dropdownmenü.
> PHP wid auf dem Server ausgeführt. Dein Ziel kannst du wohl am
> einfachsten mit JavaScript erreichen.

Ich bin zwar Anfänger aber nicht dumm und weiß das die PHP-Seite erst mal
vom Server in HTML-Code umgewandelt werden muss. Ich will auch nicht über
die Vor- und Nachteile von PHP/Javascript diskutieren. Wenn ich das gewollt
hätte hätte ich in einem FORUM gefragt wie ich das so mache, damit es schön
einfach ist.

>> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
>> Ich hoffe ihr könnt mir da weiterhelfen.
> Oder aber du lädst die Seite einfach neu und achtest darauf, dass in der
> zweiten DropDownBox nur 8 Elemente gelistet werden.

Neu laden? Wie meinen???
Ich wollte wissen wie ich es verhindere das ich überhaupt 8 Elemente in das
2 Dropdownfeld schieben kann, also ab 8 Elementen den Submit-Button bzw
Menü 1 und Button verschwinden lassen.

Die Elemente dürfen auf keinen Fall im Nirvana verschwinden, sobald es mehr
als 8 sind.


> HTH, Johannes

Wie soll mir der Vorschlag Javascript zu verwenden, bzw. die Wiederholung
meiner Frage als Aussage helfen?
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 15:10:14 von official

& dixit Daniel Simon:
> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...

Klingt so, als ob die Einträge des zweiten Menüs sinnvollerweise in
einem Array vorliegen (wie auch immer sie dahin kommen, meinetwegen
auch aus einer Datenbank). In dem Fall willst Du
http://de2.php.net/manual/de/ref.array.php und insbesondere
http://de2.php.net/manual/de/function.array-count-values.php lesen.

Ansonsten musst du damit leben. dass, sobald du eine Frage stellst, in
erster Linie nicht nach Antworten gesucht, sondern die Randbedingungen
und Umstände hinterfragt, kritisiert, bestritten und was weiss ich
noch alles werden. Kurz: es wird unterstellt, man sei ein kompletter
Vollidiot. Da diese These in 90% der Fälle auch zutrifft, ist es zwar
nervig, aber unumgänglich, im Verlauf des Threads nachzuweisen, dass
das nicht so ist. Hat man sich in einer Gruppe das nötige Ansehen
erworben, kann man seine Frage mit einer höheren Aussicht auf Antwort
dann neu stellen.

--
Ich kenne einige, die sich die Rehabilitierung ihrer Lieblingseröffnung
zur Lebensaufgabe gemacht haben. Sie versuchen laufend etwas zu beweisen,
was u.U. gar nicht bewiesen werden kann, weil es falsch ist. Damit haben
sie Wesentliches mit Wissenschaftlern gemeinsam. F. Volkmann in dags

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 15:10:57 von Felix Holdener

Daniel Simon wrote:

> Hallo Johannes,
>
>>> Ich fange gerade mit PHP an
>
>>> Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
>>> Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in
>>> das zweite Dropdownmenü.
>> PHP wid auf dem Server ausgeführt. Dein Ziel kannst du wohl am
>> einfachsten mit JavaScript erreichen.
>
> Ich bin zwar Anfänger aber nicht dumm und weiß das die PHP-Seite erst
> mal vom Server in HTML-Code umgewandelt werden muss. Ich will auch
> nicht über die Vor- und Nachteile von PHP/Javascript diskutieren. Wenn
> ich das gewollt hätte hätte ich in einem FORUM gefragt wie ich das so
> mache, damit es schön einfach ist.

Beleidigt?

>>> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>>> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit
>>> MySQL-Statement)... Ich hoffe ihr könnt mir da weiterhelfen.
>> Oder aber du lädst die Seite einfach neu und achtest darauf, dass in
>> der zweiten DropDownBox nur 8 Elemente gelistet werden.
>
> Neu laden? Wie meinen???

Der Ausdruck dafür ist "Affenformular": Du schickst das Formular an das
selbe PHP-Skript und wertest es aus. Je nachdem, was geklickt wurde passt
du den im Skript den Inhalt an.

> Ich wollte wissen wie ich es verhindere das ich überhaupt 8 Elemente
> in das 2 Dropdownfeld schieben kann, also ab 8 Elementen den
> Submit-Button bzw Menü 1 und Button verschwinden lassen.

Hä? Was schreibst du da? Jetzt versteht man gar nichts mehr...

> Die Elemente dürfen auf keinen Fall im Nirvana verschwinden, sobald es
> mehr als 8 sind.

Tun sie auch nicht. Nur die Anzeige im Formular ändert.

>> HTH, Johannes
>
> Wie soll mir der Vorschlag Javascript zu verwenden, bzw. die
> Wiederholung meiner Frage als Aussage helfen?

Mit JS machst du dasselbe einfach clientseitig: Nur den Teil der Daten
anzeigen, der gerade gewünscht ist.

hth

Felix

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 17:01:28 von Daniel Simon

Hallo Felix,

>>>> Ich fange gerade mit PHP an
>>>> Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
>>>> Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in
>>>> das zweite Dropdownmenü.
>>> PHP wid auf dem Server ausgeführt. Dein Ziel kannst du wohl am
>>> einfachsten mit JavaScript erreichen.
>> Ich bin zwar Anfänger aber nicht dumm und weiß das die PHP-Seite erst
>> mal vom Server in HTML-Code umgewandelt werden muss. Ich will auch
>> nicht über die Vor- und Nachteile von PHP/Javascript diskutieren. Wenn
>> ich das gewollt hätte hätte ich in einem FORUM gefragt wie ich das so
>> mache, damit es schön einfach ist.
>
> Beleidigt?

Na ja, ich frage hier weil ich wissen will wie ich das ganze mit PHP mache.
Wenn ich es hätte anders machen wollen, hätte ich auch erst an einer
anderen Stelle gefragt. Ich bin hier um PHP zu lernen und wenn dann ein
Beitrag in der Richtung 'fange gar nicht erst an, in PHP ist das zu
kompliziert' bekomme, dann hilft mir das nicht gerade weiter.

Wenn ich mich nicht schon ein bisschen in der Richtung schlau gemacht
hätte, dann würde ich hier auch nicht fragen (gut das kann man nicht
wissen, aber dann könnte man mir IMO zumindest einen Lösungsansatz
präsentieren und später kann man immer noch was anderes vorschlagen).


>>>> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>>>> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit
>>>> MySQL-Statement)... Ich hoffe ihr könnt mir da weiterhelfen.
>>> Oder aber du lädst die Seite einfach neu und achtest darauf, dass in
>>> der zweiten DropDownBox nur 8 Elemente gelistet werden.
>> Neu laden? Wie meinen???
> Der Ausdruck dafür ist "Affenformular": Du schickst das Formular an das
> selbe PHP-Skript und wertest es aus. Je nachdem, was geklickt wurde passt
> du den im Skript den Inhalt an.

Wenn damit gemeint ist, das die Seite die Änderungen (Element wandert von
Dropdown-Menü 1 zu Dropdown-Menü 2) durch die Button-Betätigung gemeint war
dann war mir das schon vorher klar. Meine jetzige Ausgangssituatuion ist:
Ich habe 2 Dropdown-Menüs, beide haben Buttons. Wenn ich ein Element im
Menü auswählen und den Button drücke, dann wandert das Element in das
jeweils andere Dropdown-Menü.

>> Ich wollte wissen wie ich es verhindere das ich überhaupt 8 Elemente
>> in das 2 Dropdownfeld schieben kann, also ab 8 Elementen den
>> Submit-Button bzw Menü 1 und Button verschwinden lassen.
> Hä? Was schreibst du da? Jetzt versteht man gar nichts mehr...

Programmiertechnisch: Wenn Anzahl Elemente in Dropdown-Menü 2 > 8 dann
sorge dafür das keine weiteren Elemente aus Dropdown-Menü 1 mehr hizugefügt
werden können. Ich hoffe das war verständlich...

>> Die Elemente dürfen auf keinen Fall im Nirvana verschwinden, sobald es
>> mehr als 8 sind.
> Tun sie auch nicht. Nur die Anzeige im Formular ändert.

Im Falle von Javascript auf jeden Fall...
Ich weiß halt nicht wie das gemeint war.

>> Wie soll mir der Vorschlag Javascript zu verwenden, bzw. die
>> Wiederholung meiner Frage als Aussage helfen?
> Mit JS machst du dasselbe einfach clientseitig: Nur den Teil der Daten
> anzeigen, der gerade gewünscht ist.

Das ist mir bewußt, deshalb kann man es ja auch im Browser abstellen! Das
ist einer der Gründe, warum ich PHP einsetzen will.
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 17:05:54 von dev-null-use-reply-adress

Daniel Simon schrieb:
> Johannes Vogel schrieb:
>>Daniel Simon wrote:

>>> Ich fange gerade mit PHP an
>
>>> Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
>>> Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in das
>>> zweite Dropdownmenü.
>> PHP wid auf dem Server ausgeführt. Dein Ziel kannst du wohl am
>> einfachsten mit JavaScript erreichen.
>
> Ich bin zwar Anfänger aber nicht dumm und weiß das die PHP-Seite erst mal
> vom Server in HTML-Code umgewandelt werden muss. Ich will auch nicht über
> die Vor- und Nachteile von PHP/Javascript diskutieren. Wenn ich das gewollt
> hätte hätte ich in einem FORUM gefragt wie ich das so mache, damit es schön
> einfach ist.

Hier gibt's Vorschläge, die u.U. auch von Deiner gewünschten Antwort
abweichen. Johannes Vorschlag war sinnvoll und sicher auch nett gemeint.
Warum Du ihn angreifst bzw. die beleidigte Leberwurst spielst,
ist mir vollkommen unverständlich. Ignoriere diesen Teil doch einfach,
wenn er Dir nicht passt.

>>> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>>> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
>>> Ich hoffe ihr könnt mir da weiterhelfen.
>> Oder aber du lädst die Seite einfach neu und achtest darauf, dass in der
>> zweiten DropDownBox nur 8 Elemente gelistet werden.
>
> Neu laden? Wie meinen???

Was ist daran nicht zu verstehen? Oben sagst Du, daß Du kein Javascript
willst. Ferner sei Deine Anwendung schon soweit, daß Einträge von einer
in die andere Box wandern, wenn man das Formular abschickt. Also lädst
Du es doch bereits jedesmal neu.

> Ich wollte wissen wie ich es verhindere das ich überhaupt 8 Elemente in das
> 2 Dropdownfeld schieben kann, also ab 8 Elementen den Submit-Button bzw
> Menü 1 und Button verschwinden lassen.

Dein Script muß sich halt jedes mal merken wie viele Einträge
in Box 2 sind. Da HTTP aber ein zustandsloses Protokoll ist und
jedes Abschicken des Formulars für das Script eine neue Aktion darstellt,
brauchst Du einen "Zwischenspeicher". Sowas schimpft sich Session.
Bei jeden Klick auf Deinen Submitbutton wird dann ein Wert in der Session
hochgezählt. Das Script könnte dann bei 8 einfach den Submitbutton
ausblenden, bzw. darüber einfach nichts mehr annehmen.

29. Sessions
http://www.php-faq.de/ch/ch-version4_session.html

insbesondere

29.12. Was sind Sessions und warum sind sie nützlich?
http://www.php-faq.de/q/q-sessions-zweck.html

> Die Elemente dürfen auf keinen Fall im Nirvana verschwinden, sobald es mehr
> als 8 sind.

Warum sollte das passieren? Alles eine Frage der Programmierung.


Gruß
JPM

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 24.11.2005 17:27:51 von Felix Holdener

Daniel Simon wrote:

> Programmiertechnisch: Wenn Anzahl Elemente in Dropdown-Men 2 > 8 dann
> sorge dafr das keine weiteren Elemente aus Dropdown-Men 1 mehr
> hizugefgt werden k”nnen. Ich hoffe das war verst„ndlich...
>

zum Beispiel damit, dass das Dorpdown-Menü 1 gar nicht mehr
verfügbar/sichtbar ist oder dass der Button dafür nicht mehr angezeigt
wird, wenn Anz_Elemente_2 >= 8

Vielleicht solltest du mal etwas Code posten. Es ist mir/uns ev. nicht
klar, was genau dir Probleme macht.

Felix

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 06:14:21 von Johannes Vogel

Hi Daniel Simon

Daniel Simon wrote:
>>>Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>>>begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
>>>Ich hoffe ihr könnt mir da weiterhelfen.
>>Oder aber du lädst die Seite einfach neu und achtest darauf, dass in der
>>zweiten DropDownBox nur 8 Elemente gelistet werden.
> Neu laden? Wie meinen???
> Ich wollte wissen wie ich es verhindere das ich überhaupt 8 Elemente in das
> 2 Dropdownfeld schieben kann, also ab 8 Elementen den Submit-Button bzw
> Menü 1 und Button verschwinden lassen.
> Die Elemente dürfen auf keinen Fall im Nirvana verschwinden, sobald es mehr
> als 8 sind.

> Wie soll mir der Vorschlag Javascript zu verwenden, bzw. die Wiederholung
> meiner Frage als Aussage helfen?

Diese Aussage sollte dir insofern helfen, auf schnellstem Weg die aus
mir geeigneteste Methode zu finden. JavaScript ist für solche Aufgaben
prädestiniert. Vorausgesetzt, dass die Kompatibilität gewährleistet sei.

Gerne wiederhole ich meine Aussage und erweitere sie ein wenig:
PHP wird auf dem Server ausgeführt. Das heisst, dass du dynamische
Programmierungen, welche clientseitig funktionieren sollen - also ohne
Aktivierung des Servers und damit ohne Reload der Seite - mit einer
anderen Sprache als PHP programmieren musst. So ist das Internet nun mal
aufgebaut. PHP hat damit eigentlich wenig zu tun, sondern abgekürzt das
HTTP-Protokoll und die Web-Infrastruktur. JavaScript ist eine Sprache,
die bei vielen Browsern interpretiert wird und deshalb oft für solche
Zwecke gebraucht wird. Vielleicht magst du auch du dich auf dieses
Niveau begeben?

Alternativ könntest du ein sogenanntes Affenformular verwenden. Nähere
Informationen dazu findest du in der FAQ:
27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
http://www.php-faq.de/q/q-stil-normalform.html
Die Netzwerklast wird aber bei Verwendung dieser Methode unnötig erhöht
und je nach Netzwerk-Verbindung die Handhabung der Seite mühsam. Es gibt
auch heute noch Leute mit Modem-Verbindungen.

Was diese Frage in d.c.l.p.datenbanken zu suchen hat, ist mir
unerklärlich. Ebenfalls, weshalb du die Antworten nicht genügend genau
nachbearbeitest. Welche Art von Antwort erwartest du?

HTH, Johannes

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 09:17:09 von Daniel Simon

Hallo Johannes,

ich möchte mich nochmal für mein Verhalten entschuldigen. Ich konnte mit
deiner Antwort halt nichts anfangen. Ich denke ich hätte meine
Problemstellung besser erläutern sollen, dann hätte ich wohl auch mit einer
besseren Antwort rechnen können...

>>>>Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>>>>begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
>>>>Ich hoffe ihr könnt mir da weiterhelfen.
>>>Oder aber du lädst die Seite einfach neu und achtest darauf, dass in der
>>>zweiten DropDownBox nur 8 Elemente gelistet werden.
>> Neu laden? Wie meinen???
>> Ich wollte wissen wie ich es verhindere das ich überhaupt 8 Elemente in das
>> 2 Dropdownfeld schieben kann, also ab 8 Elementen den Submit-Button bzw
>> Menü 1 und Button verschwinden lassen.
>> Die Elemente dürfen auf keinen Fall im Nirvana verschwinden, sobald es mehr
>> als 8 sind.
>
>> Wie soll mir der Vorschlag Javascript zu verwenden, bzw. die Wiederholung
>> meiner Frage als Aussage helfen?
>
> Diese Aussage sollte dir insofern helfen, auf schnellstem Weg die aus
> mir geeigneteste Methode zu finden. JavaScript ist für solche Aufgaben
> prädestiniert. Vorausgesetzt, dass die Kompatibilität gewährleistet sei.

Gut fange ich noch mal von neu an: Ich mache gerade eine Ausbildung zum
Fachinformatiker. Ich soll nun im Betrieb einen Webshop
(http://www.xt-commerce.com) so konfigurieren, dass man als
Webshopbesitzer, der von PHP keine Ahnung hat / keine Ahnung haben muss,
die Dinge auswählen kann, die auf der Startseite präsentiert werden sollen.

Diese Produkte werden aus einer MySQL-Datenbank geholt. Nun habe ich in der
Datenbank eine neue Tabelle angelegt. Dort werden alle Produkte
eingetragen, die man im Admin-Menü des Webshop von dem Dropdown-Menü 1 in
das Dropdown-Menü 2 schiebt.


> Gerne wiederhole ich meine Aussage und erweitere sie ein wenig:
> PHP wird auf dem Server ausgeführt. Das heisst, dass du dynamische
> Programmierungen, welche clientseitig funktionieren sollen - also ohne
> Aktivierung des Servers und damit ohne Reload der Seite - mit einer
> anderen Sprache als PHP programmieren musst.

Äh... Das hätte ich doch gerne mal etwas näher erläutert. Wenn ich nicht
etwas falsch verstanden habe wurde doch GIMP in PHP programmiert!?


> So ist das Internet nun mal aufgebaut. PHP hat damit eigentlich wenig zu
> tun, sondern abgekürzt das HTTP-Protokoll und die Web-Infrastruktur.
> JavaScript ist eine Sprache, die bei vielen Browsern interpretiert wird
> und deshalb oft für solche Zwecke gebraucht wird.

Wie man eigentlich mit meinen vorherigen Aussagen erkannt haben sollte: Ich
kann nur PHP verwenden.


> Vielleicht magst du auch du dich auf dieses Niveau begeben?

Wie soll ich das verstehen???

>
> Alternativ könntest du ein sogenanntes Affenformular verwenden. Nähere
> Informationen dazu findest du in der FAQ:
> 27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
> http://www.php-faq.de/q/q-stil-normalform.html

Endlich zumindest ein Lösungsansatz. Allerdings steht in meinem letzten
Post: Ich habe 2 Dropdown-Menüs und beide haben jeweils 1 Button.


> Die Netzwerklast wird aber bei Verwendung dieser Methode unnötig erhöht
> und je nach Netzwerk-Verbindung die Handhabung der Seite mühsam. Es gibt
> auch heute noch Leute mit Modem-Verbindungen.

1 Shopbesitzer = Admin
ein paar Programmierer = Admin
Das ganze ist noch nicht live. Das LAN ist schnell genug. Der Server mit
dem Webshop auch.


> Was diese Frage in d.c.l.p.datenbanken zu suchen hat, ist mir
> unerklärlich. Ebenfalls, weshalb du die Antworten nicht genügend genau
> nachbearbeitest. Welche Art von Antwort erwartest du?

Ist nachbearbeiten = verwenden, ausprobieren? Ich wollte nur wissen wie ich
eine Abfrage mache ob mehr als 8 Elemente im 2 Dropdown-Menü sind. Nict
mehr und nicht weniger. Ich hätte noch erwähnen sollen, das die Elemente
die von Dropdown-Menü 1 nach Dropdown-Menü 2 verschoben werden in der
Datenbank landen.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 09:55:37 von Daniel Simon

Am Thu, 24 Nov 2005 15:10:14 +0100 schrieb Christian H. Kuhn:

> & dixit Daniel Simon:
>> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
>> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
>
> Klingt so, als ob die Einträge des zweiten Menüs sinnvollerweise in
> einem Array vorliegen (wie auch immer sie dahin kommen, meinetwegen
> auch aus einer Datenbank). In dem Fall willst Du
> http://de2.php.net/manual/de/ref.array.php und insbesondere
> http://de2.php.net/manual/de/function.array-count-values.php lesen.

Das tun sie. Ich lese erst mal die Tabelle aus der MySQL-Datenbank in das
Array ein und lasse mir daraus ein eindimensionales Array erzeugen, aus
denen ich wiederum einzelne Elemente erzeugen lasse.

> Ansonsten musst du damit leben. dass, sobald du eine Frage stellst, in
> erster Linie nicht nach Antworten gesucht, sondern die Randbedingungen
> und Umstände hinterfragt, kritisiert, bestritten und was weiss ich
> noch alles werden. Kurz: es wird unterstellt, man sei ein kompletter
> Vollidiot. Da diese These in 90% der Fälle auch zutrifft, ist es zwar
> nervig, aber unumgänglich, im Verlauf des Threads nachzuweisen, dass
> das nicht so ist. Hat man sich in einer Gruppe das nötige Ansehen
> erworben, kann man seine Frage mit einer höheren Aussicht auf Antwort
> dann neu stellen.

Ja das muss ich wohl. Das mit MySQL wurde vom Vorposter wohl überlesen.
Allerdings hätte ich erwähnen sollen, dass die Elemente aus dem 2ten
Dropdown-Menü in eine Tabelle der Datenbank eingelesen werden. Ich hab nun
ein 'SELECT COUNT(*)' gemacht (so kann ich zumindest schon mal die
Überprüfung machen) und hoffe das ich den Rest alleine hinbekomme.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 10:05:48 von Fabian Schladitz

Daniel Simon schrieb:
> Hallo Johannes,

Ich mische mich mal in den Dialog ein, okay?

> Ich soll nun im Betrieb einen Webshop
> (http://www.xt-commerce.com) so konfigurieren, dass man als
> Webshopbesitzer, der von PHP keine Ahnung hat / keine Ahnung haben muss=
,
> die Dinge auswählen kann, die auf der Startseite präsentiert werden=
sollen.

Okay... das ist also mal das Ziel. Schön.

> Diese Produkte werden aus einer MySQL-Datenbank geholt. Nun habe ich in=
der
> Datenbank eine neue Tabelle angelegt. Dort werden alle Produkte
> eingetragen, die man im Admin-Menü des Webshop von dem Dropdown-Menü=
1 in
> das Dropdown-Menü 2 schiebt.

Das ist so... okay. Ich hoffe du verschiebst in der Datenbank nichts,=20
sondern hast in der neuen Tabelle nur stehen Produkt_ID. Die Startseite=20
darf dann einen JOIN machen und Startseiten_Produkte mit der allgemeinen =

Produktabelle verknüpfen.

Dann geht garantiert nichts ins Nirvana ;)

>>Gerne wiederhole ich meine Aussage und erweitere sie ein wenig:
>>PHP wird auf dem Server ausgeführt. Das heisst, dass du dynamische=20
>>Programmierungen, welche clientseitig funktionieren sollen - also ohne =

>>Aktivierung des Servers und damit ohne Reload der Seite - mit einer=20
>>anderen Sprache als PHP programmieren musst.
>=20
>=20
> Äh... Das hätte ich doch gerne mal etwas näher erläutert. Wenn =
ich nicht
> etwas falsch verstanden habe wurde doch GIMP in PHP programmiert!?

Du hast etwas falsch verstanden. GIMP hat nichts mit PHP zu tun.

>>So ist das Internet nun mal aufgebaut. PHP hat damit eigentlich wenig z=
u
>>tun, sondern abgekürzt das HTTP-Protokoll und die Web-Infrastruktur.
>>JavaScript ist eine Sprache, die bei vielen Browsern interpretiert wird=

>>und deshalb oft für solche Zwecke gebraucht wird.=20
>=20
>=20
> Wie man eigentlich mit meinen vorherigen Aussagen erkannt haben sollte:=
Ich
> kann nur PHP verwenden.

Du verwendest PHP um HTML-Texte zu erstellen, welche von deinem=20
Webserver per HTTP an den Client übertragen werden.

>>Vielleicht magst du auch du dich auf dieses Niveau begeben?
>=20
> Wie soll ich das verstehen???

Das auch DU JavaScript nutzen darfst, wenn es sinnvoll ist. Du musst=20
natürlich nicht, oft ist es aber sinnvoll.

>>Alternativ könntest du ein sogenanntes Affenformular verwenden. Näh=
ere=20
>>Informationen dazu findest du in der FAQ:
>>27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
>>http://www.php-faq.de/q/q-stil-normalform.html
>=20
> Endlich zumindest ein Lösungsansatz. Allerdings steht in meinem letzt=
en
> Post: Ich habe 2 Dropdown-Menüs und beide haben jeweils 1 Button.

Und wie verarbeitest du diese Buttons derzeit? Jeder Button dürfte doch=
=20
als definiert sein, oder? Du sendest also die=20
Änderung an ein PHP-Skript, welches dann die "Verschiebung" macht. Oder=
=20
nicht?


>>Was diese Frage in d.c.l.p.datenbanken zu suchen hat, ist mir=20
>>unerklärlich. Ebenfalls, weshalb du die Antworten nicht genügend ge=
nau=20
>>nachbearbeitest. Welche Art von Antwort erwartest du?
>=20
> Ist nachbearbeiten =3D verwenden, ausprobieren? Ich wollte nur wissen w=
ie ich
> eine Abfrage mache ob mehr als 8 Elemente im 2 Dropdown-Menü sind. Ni=
ct
> mehr und nicht weniger. Ich hätte noch erwähnen sollen, das die Ele=
mente
> die von Dropdown-Menü 1 nach Dropdown-Menü 2 verschoben werden in d=
er
> Datenbank landen.

Was mit deinem Problem _sehr_ wenig zu tun haben dürfte, da du nach dem=
=20
Userinterface fragst und nicht nach der Datenvorhaltung.

Sag uns doch bitte, wie du die beiden Buttons derzeit verarbeitest. Und=20
dann mach einfach eine IF-Abfrage, wenn das Array länger 8 Elemente hat=
,=20
gibst du den Button einfach nicht mehr aus.

--=20
HTH,
Fabian

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 10:15:48 von Johannes Vogel

Hi Daniel

Daniel Simon wrote:
> ich möchte mich nochmal für mein Verhalten entschuldigen. Ich konnte mit
> deiner Antwort halt nichts anfangen. Ich denke ich hätte meine
> Problemstellung besser erläutern sollen, dann hätte ich wohl auch mit einer
> besseren Antwort rechnen können...

Entschuldigen brauchst du dich nicht...

> Gut fange ich noch mal von neu an: Ich mache gerade eine Ausbildung zum
> Fachinformatiker. Ich soll nun im Betrieb einen Webshop
> (http://www.xt-commerce.com) so konfigurieren, dass man als
> Webshopbesitzer, der von PHP keine Ahnung hat / keine Ahnung haben muss,
> die Dinge auswählen kann, die auf der Startseite präsentiert werden sollen.
> Diese Produkte werden aus einer MySQL-Datenbank geholt. Nun habe ich in der
> Datenbank eine neue Tabelle angelegt. Dort werden alle Produkte
> eingetragen, die man im Admin-Menü des Webshop von dem Dropdown-Menü 1 in
> das Dropdown-Menü 2 schiebt.

Grundsätzlich - und das Auto muss mal wieder herhalten:
'Ich möchte gerne meine Weihnachtspakete fein säuberlich verpacken,
wofür ich gerne Betonkleber und Papier verwenden möchte. Nun fahre ich
mit dem Auto zu meiner Verwandtschaft, weshalb ich in der Auto-NG frage,
wie ich den Betonkleber zu verwenden habe.' Per Zufall hat's halt da
doch ein paar, die auch von Betonkleber ne Ahnung haben, aber die raten,
dir Klebband zu verwenden. Das scheinst du aber nicht zu mögen, weil du
wohl viele von Betonkleber schwärmen hörtest.

>>Gerne wiederhole ich meine Aussage und erweitere sie ein wenig:
>>PHP wird auf dem Server ausgeführt. Das heisst, dass du dynamische
>>Programmierungen, welche clientseitig funktionieren sollen - also ohne
>>Aktivierung des Servers und damit ohne Reload der Seite - mit einer
>>anderen Sprache als PHP programmieren musst.
> Äh... Das hätte ich doch gerne mal etwas näher erläutert. Wenn ich nicht
> etwas falsch verstanden habe wurde doch GIMP in PHP programmiert!?

GIMP in PHP?! Nein! Der Kern von Gimp ist in C geschrieben. Schliesslich
sollte da etwas pfupf in die Maschine, um grosse Bilddaten in kurzer
Zeit zu manipulieren. Spielt aber keine Rolle, weil das eine lokal
ausgeführte Applikation ist - wobei ein Webshop eben eine Webapplikation
ist. Da gibt's Server und Clients, Webserver und Browser, etc.

>>So ist das Internet nun mal aufgebaut. PHP hat damit eigentlich wenig zu
>>tun, sondern abgekürzt das HTTP-Protokoll und die Web-Infrastruktur.
>>JavaScript ist eine Sprache, die bei vielen Browsern interpretiert wird
>>und deshalb oft für solche Zwecke gebraucht wird.
> Wie man eigentlich mit meinen vorherigen Aussagen erkannt haben sollte: Ich
> kann nur PHP verwenden.

Weshalb solltest du nur PHP verwenden können? Weil du weder JavaScript,
HTML, PHP, SQL, etc. verstehst, aber eben genau PHP lernen möchtest?
Leider reichen deine Grundlagen nicht aus: Vor allem rudimentäre
Kenntnisse, welches der Unterschied zwischen Web und einer lokal
ausgeführten Applikation ist, wären nötig. Folgendes wird dir helfen:
http://www.php.net/manual/de/tutorial.php

>>Vielleicht magst du auch du dich auf dieses Niveau begeben?
> Wie soll ich das verstehen???

Dass JavaScript keine Konkurrenz, sondern eine Sprache für einen anderen
Anwendungszweck ist. Dieser Anwendungszweck befindet sich auf der
anderen Seite der Welt. Deine Aufgabe liesse sich auf jener Ebene IMHO
eleganter lösen. Wie du JavaScript verwendest, kannst du bspw. auf
http://de.selfhtml.org/ lesen.

>>Alternativ könntest du ein sogenanntes Affenformular verwenden. Nähere
>>Informationen dazu findest du in der FAQ:
>>27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
>>http://www.php-faq.de/q/q-stil-normalform.html
> Endlich zumindest ein Lösungsansatz. Allerdings steht in meinem letzten
> Post: Ich habe 2 Dropdown-Menüs und beide haben jeweils 1 Button.

Ach, du wolltest also doch eine Fertiglösung?

>>Die Netzwerklast wird aber bei Verwendung dieser Methode unnötig erhöht
>>und je nach Netzwerk-Verbindung die Handhabung der Seite mühsam. Es gibt
>>auch heute noch Leute mit Modem-Verbindungen.
> 1 Shopbesitzer = Admin
> ein paar Programmierer = Admin
> Das ganze ist noch nicht live. Das LAN ist schnell genug. Der Server mit
> dem Webshop auch.

Es gibt doch Kunden, die auf den Webshop zugreiffen? Ist es
ausgeschlossen, dass diese über Modems zugreiffen? Ich dachte, da möchte
man was an die Allgemeinheit verkaufen?

>>Was diese Frage in d.c.l.p.datenbanken zu suchen hat, ist mir
>>unerklärlich. Ebenfalls, weshalb du die Antworten nicht genügend genau
>>nachbearbeitest. Welche Art von Antwort erwartest du?
> Ist nachbearbeiten = verwenden, ausprobieren? Ich wollte nur wissen wie ich
> eine Abfrage mache ob mehr als 8 Elemente im 2 Dropdown-Menü sind. Nict
> mehr und nicht weniger. Ich hätte noch erwähnen sollen, das die Elemente
> die von Dropdown-Menü 1 nach Dropdown-Menü 2 verschoben werden in der
> Datenbank landen.

1. Du erhältst in den NG seltenst eine Fertiglösung. Schon gar nicht mit
einer solchen Fragestellung. Den Job musst du selbst bewerkstelligen.

2. nachbearbeiten = hingehen und davon ausgehen, dass darin DIE Hilfe
steckt, die man sich beim Fragen erhoffte - ohne es zu wissen.

Also deine Hausaufgaben:

a) Mach dich schlau, wie das Web funktioniert. Diese Seite wird dir
helfen: http://de.selfhtml.org/intro/index.htm

b) Unterteile dein Problem in kleine Probleme. Also die
Datenbank-Abfrage ist ein ganz anderes Problem, wie die DropDown-Box zu
beschränken. Und ich würde die beiden Probleme sogar mit anderen
Technologien (eben das eine PHP/SQL und das andere mittels
JavaScript/HTML) lösen.

Und falls du denkst, dass du dafür keine Zeit hast, wirst du wohl zum
Meister gehen müssen und ihm das sagen.

HTH, Johannes

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 11:42:58 von Daniel Simon

Hallo Fabian,

>> Diese Produkte werden aus einer MySQL-Datenbank geholt. Nun habe ich in der
>> Datenbank eine neue Tabelle angelegt. Dort werden alle Produkte
>> eingetragen, die man im Admin-Menü des Webshop von dem Dropdown-Menü 1 in
>> das Dropdown-Menü 2 schiebt.
> Das ist so... okay. Ich hoffe du verschiebst in der Datenbank nichts,
> sondern hast in der neuen Tabelle nur stehen Produkt_ID. Die Startseite
> darf dann einen JOIN machen und Startseiten_Produkte mit der allgemeinen
> Produktabelle verknüpfen.

Nö, ich verschiebe da überhaupt nichts, in der neuen Tabelle stehen
lediglich die product_id der Produkte die auf die Startseite sollen.

Da du die product_id erwähnst: Kennst du dich mit dem Shop aus oder hast du
einfach ein bisschen auf der Seite geschaut?


>> Äh... Das hätte ich doch gerne mal etwas näher erläutert. Wenn ich nicht
>> etwas falsch verstanden habe wurde doch GIMP in PHP programmiert!?
>
> Du hast etwas falsch verstanden. GIMP hat nichts mit PHP zu tun.

Okay, aber man soll zumindest Anwendungen in PHP programmieren können!?

>>>So ist das Internet nun mal aufgebaut. PHP hat damit eigentlich wenig zu
>>>tun, sondern abgekürzt das HTTP-Protokoll und die Web-Infrastruktur.
>>>JavaScript ist eine Sprache, die bei vielen Browsern interpretiert wird
>>>und deshalb oft für solche Zwecke gebraucht wird.
>>
>> Wie man eigentlich mit meinen vorherigen Aussagen erkannt haben sollte: Ich
>> kann nur PHP verwenden.
>
> Du verwendest PHP um HTML-Texte zu erstellen, welche von deinem
> Webserver per HTTP an den Client übertragen werden.

Ja... !?


>>>Vielleicht magst du auch du dich auf dieses Niveau begeben?
>>
>> Wie soll ich das verstehen???
>
> Das auch DU JavaScript nutzen darfst, wenn es sinnvoll ist. Du musst
> natürlich nicht, oft ist es aber sinnvoll.

Ich soll das in PHP machen. Das ist nicht für mich, da kann ich also nicht
machen was ich will. Das Endprodukt soll auch funktionieren, wenn
Javascript deaktiviert ist. Dass Javascript leichter ist kann sein, aber
man muss auch auf die Kompatiblität achten.


>>>Alternativ könntest du ein sogenanntes Affenformular verwenden. Nähere
>>>Informationen dazu findest du in der FAQ:
>>>27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
>>>http://www.php-faq.de/q/q-stil-normalform.html
>>
>> Endlich zumindest ein Lösungsansatz. Allerdings steht in meinem letzten
>> Post: Ich habe 2 Dropdown-Menüs und beide haben jeweils 1 Button.
>
> Und wie verarbeitest du diese Buttons derzeit? Jeder Button dürfte doch
> als definiert sein, oder? Du sendest also die
> Änderung an ein PHP-Skript, welches dann die "Verschiebung" macht. Oder
> nicht?

Ja so mache ich das. Die Änderung könnte praktisch auch über die URL
durchgeführt werden. Daher muss ich wohl noch mal bei Sessions
nachschlagen, da beim Neuladen der Seite sonst ein Fehler kommt...


>>>Was diese Frage in d.c.l.p.datenbanken zu suchen hat, ist mir
>>>unerklärlich. Ebenfalls, weshalb du die Antworten nicht genügend genau
>>>nachbearbeitest. Welche Art von Antwort erwartest du?
>>
>> Ist nachbearbeiten = verwenden, ausprobieren? Ich wollte nur wissen wie ich
>> eine Abfrage mache ob mehr als 8 Elemente im 2 Dropdown-Menü sind. Nict
>> mehr und nicht weniger. Ich hätte noch erwähnen sollen, das die Elemente
>> die von Dropdown-Menü 1 nach Dropdown-Menü 2 verschoben werden in der
>> Datenbank landen.
>
> Was mit deinem Problem _sehr_ wenig zu tun haben dürfte, da du nach dem
> Userinterface fragst und nicht nach der Datenvorhaltung.

Nicht unbedingt. Ich kann eine My-SQL-Tabelle nämlich auf die Anzahl ihrer
Zeilen abfragen (SELECT COUNT(*)). So muss ich in PHP dann nicht mehr die
Größe des Arrays abfragen, sondern nur noch abfragen ob die gelieferte
Anzahl an Elementen >=8 ist.

Durch diese Abfrage hab ich zumindest den Teil meiner Aufgabe gelöst, das
der Button nun wenn die Datenbank mir einen Wert >8 liefert, der Button von
Dropdown-Menü 1 augeblendet wird.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 13:16:15 von Daniel Simon

Hi Johannes,

>> [...] Dinge auswählen kann, die auf der Startseite präsentiert werden
>> sollen. Diese Produkte werden aus einer MySQL-Datenbank geholt. Nun
>> habe ich in der Datenbank eine neue Tabelle angelegt. Dort werden alle
>> Produkte eingetragen, die man im Admin-Menü des Webshop von dem
>> Dropdown-Menü 1 in das Dropdown-Menü 2 schiebt.
>
> Grundsätzlich - und das Auto muss mal wieder herhalten:
> 'Ich möchte gerne meine Weihnachtspakete fein säuberlich verpacken,
> wofür ich gerne Betonkleber und Papier verwenden möchte. Nun fahre ich
> mit dem Auto zu meiner Verwandtschaft, weshalb ich in der Auto-NG frage,
> wie ich den Betonkleber zu verwenden habe.' Per Zufall hat's halt da
> doch ein paar, die auch von Betonkleber ne Ahnung haben, aber die raten,
> dir Klebband zu verwenden. Das scheinst du aber nicht zu mögen, weil du
> wohl viele von Betonkleber schwärmen hörtest.

Wenn du nun aber kein Klebeband sondern nur Betonkleber da hast, der nicht
nur besser ist weil er besser haftet und günstiger ist, würdest du trotzdem
Klebeband benutzen.

Was ich damit sagen will: In dem Webshop ist die (einfache, wenn man es
kann) Erweiterung vorgesehen, was nicht heißt das es unprofessionell, bzw.
für jeden zu verstehen ist. Man hat Funktionen für Datenbankzugriffe, um
die Tabelleninhalte so zuzubereiten, das man sie gleich benutzen kann und
Dateien in denen man den anzuzeigenden Text in den installieren Sprachen
eingibt.


>>>So ist das Internet nun mal aufgebaut. PHP hat damit eigentlich wenig zu
>>>tun, sondern abgekürzt das HTTP-Protokoll und die Web-Infrastruktur.
>>>JavaScript ist eine Sprache, die bei vielen Browsern interpretiert wird
>>>und deshalb oft für solche Zwecke gebraucht wird.
>> Wie man eigentlich mit meinen vorherigen Aussagen erkannt haben sollte: Ich
>> kann nur PHP verwenden.
>
> Weshalb solltest du nur PHP verwenden können? Weil du weder JavaScript,
> HTML, PHP, SQL, etc. verstehst, aber eben genau PHP lernen möchtest?
> Leider reichen deine Grundlagen nicht aus: Vor allem rudimentäre
> Kenntnisse, welches der Unterschied zwischen Web und einer lokal
> ausgeführten Applikation ist, wären nötig. Folgendes wird dir helfen:
> http://www.php.net/manual/de/tutorial.php

Es ist ja nicht so, das ich das alles ganz alleine mache. Das was ich mache
ist ein Teil des Projekts 'Shop überarbeiten'. Nur kann ich nicht ständig
Fragen stellen, sondern versuche das ganze erst mal durch ausprobieren,
bzw. übernehmen von Seiten mit ähnlichen Teilfunktionen zu kopieren. Und
danach schaue ich erst mal, was Google dazu zu sagen hat, wenn ich nicht
weiterkomme.


>>>Vielleicht magst du auch du dich auf dieses Niveau begeben?
>> Wie soll ich das verstehen???
>
> Dass JavaScript keine Konkurrenz, sondern eine Sprache für einen anderen
> Anwendungszweck ist. Dieser Anwendungszweck befindet sich auf der
> anderen Seite der Welt. Deine Aufgabe liesse sich auf jener Ebene IMHO
> eleganter lösen. Wie du JavaScript verwendest, kannst du bspw. auf
> http://de.selfhtml.org/ lesen.

Vielleicht einfacher, aber das eleganter zweifele ich einfach mal an
(zumindest auf den Webshop bezogen), obwohl ich noch nie Javascript benutzt
habe, da der Shop zum Erweitern schon bestimmte Funktionen bereitstellt.

>>>Alternativ könntest du ein sogenanntes Affenformular verwenden. Nähere
>>>Informationen dazu findest du in der FAQ:
>>>27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
>>>http://www.php-faq.de/q/q-stil-normalform.html
>> Endlich zumindest ein Lösungsansatz. Allerdings steht in meinem letzten
>> Post: Ich habe 2 Dropdown-Menüs und beide haben jeweils 1 Button.
>
> Ach, du wolltest also doch eine Fertiglösung?

Wie? Ich hab geschrieben ich HABE, nicht ich WILL! Was ich schon habe
brauche ich nicht noch mal. Oder hast du mich falsch verstanden?


>>>Die Netzwerklast wird aber bei Verwendung dieser Methode unnötig erhöht
>>>und je nach Netzwerk-Verbindung die Handhabung der Seite mühsam. Es gibt
>>>auch heute noch Leute mit Modem-Verbindungen.
>> 1 Shopbesitzer = Admin
>> ein paar Programmierer = Admin
>> Das ganze ist noch nicht live. Das LAN ist schnell genug. Der Server mit
>> dem Webshop auch.
>
> Es gibt doch Kunden, die auf den Webshop zugreiffen? Ist es
> ausgeschlossen, dass diese über Modems zugreiffen? Ich dachte, da möchte
> man was an die Allgemeinheit verkaufen?

Ja, das soll natürlich so sein. Wo ist das Problem?


>>>Was diese Frage in d.c.l.p.datenbanken zu suchen hat, ist mir
>>>unerklärlich. Ebenfalls, weshalb du die Antworten nicht genügend genau
>>>nachbearbeitest. Welche Art von Antwort erwartest du?
>> Ist nachbearbeiten = verwenden, ausprobieren? Ich wollte nur wissen wie ich
>> eine Abfrage mache ob mehr als 8 Elemente im 2 Dropdown-Menü sind. Nict
>> mehr und nicht weniger. Ich hätte noch erwähnen sollen, das die Elemente
>> die von Dropdown-Menü 1 nach Dropdown-Menü 2 verschoben werden in der
>> Datenbank landen.
>
> 1. Du erhältst in den NG seltenst eine Fertiglösung. Schon gar nicht mit
> einer solchen Fragestellung. Den Job musst du selbst bewerkstelligen.

Wo bitte verlange ich denn nach einer Fertiglösung? Ich frage hier in der
NG, weil ich vermute, dass ich hier wohl am wahrscheinlichsten eine für
mich hilfreiche Antwort bekomme.


> 2. nachbearbeiten = hingehen und davon ausgehen, dass darin DIE Hilfe
> steckt, die man sich beim Fragen erhoffte - ohne es zu wissen.

Wenn ich etwas unzureichend erklärt habe, dann kann man das ja noch mal
hinterfragen und zwar so, das ich darauf auch eine halbwegs vernünftige
Antwort geben kann.

Das könnte zum Beispiel in diesem Fall sein:
Was geschieht denn mit den Daten?
Wo bekommst du sie her, was machst du damit, wie speicherst du sie?

Oder man könnte wie Christian von irgendetwas ausgehen, worauf man dann
wieder aufbauen kann, bzw. was ich hinterfragen kann wenn ich es nicht
verstehe.


> a) Mach dich schlau, wie das Web funktioniert. Diese Seite wird dir
> helfen: http://de.selfhtml.org/intro/index.htm

Was sollte ich denn dort nachlesen? Wie sollte mir das bei meinem Problem
weiterhelfen. Deine Aussage hilft mir genauso weiter, als würdest du sagen:
"Frage Google!"


> b) Unterteile dein Problem in kleine Probleme. Also die
> Datenbank-Abfrage ist ein ganz anderes Problem, wie die DropDown-Box zu
> beschränken. Und ich würde die beiden Probleme sogar mit anderen
> Technologien (eben das eine PHP/SQL und das andere mittels
> JavaScript/HTML) lösen.

Natürlich gehört auch ein bisschen HTML dazu, aber das andere mache ich
wohl besser mit PHP.


> Und falls du denkst, dass du dafür keine Zeit hast, wirst du wohl zum
> Meister gehen müssen und ihm das sagen.

Nein, ich habe nicht keine Zeit, ich habe keine Lust! Ich will nicht auf
Javascript setzen, wenn ich es nicht unbedingt muss.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 16:20:44 von Johannes Vogel

Hi Daniel

Daniel Simon wrote:
>>Was mit deinem Problem _sehr_ wenig zu tun haben dürfte, da du nach dem
>>Userinterface fragst und nicht nach der Datenvorhaltung.
> Nicht unbedingt. Ich kann eine My-SQL-Tabelle nämlich auf die Anzahl ihrer
> Zeilen abfragen (SELECT COUNT(*)). So muss ich in PHP dann nicht mehr die
> Größe des Arrays abfragen, sondern nur noch abfragen ob die gelieferte
> Anzahl an Elementen >=8 ist.

Eine solche Abfrage ist langsamer als die Grösse des Arrays auszulesen.

Grüess, Johannes

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 16:37:14 von Johannes Vogel

Hi Daniel

Daniel Simon wrote:
>>Grundsätzlich - und das Auto muss mal wieder herhalten:
>>'Ich möchte gerne meine Weihnachtspakete fein säuberlich verpacken,
>>wofür ich gerne Betonkleber und Papier verwenden möchte. Nun fahre ich
>>mit dem Auto zu meiner Verwandtschaft, weshalb ich in der Auto-NG frage,
>>wie ich den Betonkleber zu verwenden habe.' Per Zufall hat's halt da
>>doch ein paar, die auch von Betonkleber ne Ahnung haben, aber die raten,
>>dir Klebband zu verwenden. Das scheinst du aber nicht zu mögen, weil du
>>wohl viele von Betonkleber schwärmen hörtest.
> Wenn du nun aber kein Klebeband sondern nur Betonkleber da hast, der nicht
> nur besser ist weil er besser haftet und günstiger ist, würdest du trotzdem
> Klebeband benutzen.

Ja, weil Betonkleber nicht auf Papier haftet - also im vorliegenden Fall
eben nicht besser haftet, sondern schlechter - und weil ich kurz in den
Laden um die Ecke gehen und Klebeband kaufen kann. Es ist um ein
Vielfaches günstiger und einfacher zur Handhabe. Zudem sieht das
Ergebnis schöner, simpler und anmächliger aus.

Mein Vergleich funktioniert. :-)

> Was ich damit sagen will: In dem Webshop ist die (einfache, wenn man es
> kann) Erweiterung vorgesehen, was nicht heißt das es unprofessionell, bzw.
> für jeden zu verstehen ist. Man hat Funktionen für Datenbankzugriffe, um
> die Tabelleninhalte so zuzubereiten, das man sie gleich benutzen kann und
> Dateien in denen man den anzuzeigenden Text in den installieren Sprachen
> eingibt.

Das will ich eigentlich alles nicht wissen. Du hast eine Frage gestellt
und die Antwort willst du nicht akzeptieren. Also lass es in Zukunft
bleiben, denn ich vergeude meine Zeit.

>>Weshalb solltest du nur PHP verwenden können? Weil du weder JavaScript,
>>HTML, PHP, SQL, etc. verstehst, aber eben genau PHP lernen möchtest?
>>Leider reichen deine Grundlagen nicht aus: Vor allem rudimentäre
>>Kenntnisse, welches der Unterschied zwischen Web und einer lokal
>>ausgeführten Applikation ist, wären nötig. Folgendes wird dir helfen:
>>http://www.php.net/manual/de/tutorial.php
> Es ist ja nicht so, das ich das alles ganz alleine mache. Das was ich mache
> ist ein Teil des Projekts 'Shop überarbeiten'. Nur kann ich nicht ständig
> Fragen stellen, sondern versuche das ganze erst mal durch ausprobieren,
> bzw. übernehmen von Seiten mit ähnlichen Teilfunktionen zu kopieren. Und
> danach schaue ich erst mal, was Google dazu zu sagen hat, wenn ich nicht
> weiterkomme.

Vielleicht wäre es sinnvoll, sich erst die Grundlagen zu erarbeiten,
bevor du mit probieren loslegst. Diese wären notwendig.

>>Dass JavaScript keine Konkurrenz, sondern eine Sprache für einen anderen
>>Anwendungszweck ist. Dieser Anwendungszweck befindet sich auf der
>>anderen Seite der Welt. Deine Aufgabe liesse sich auf jener Ebene IMHO
>>eleganter lösen. Wie du JavaScript verwendest, kannst du bspw. auf
>>http://de.selfhtml.org/ lesen.
> Vielleicht einfacher, aber das eleganter zweifele ich einfach mal an
> (zumindest auf den Webshop bezogen), obwohl ich noch nie Javascript benutzt
> habe, da der Shop zum Erweitern schon bestimmte Funktionen bereitstellt.

Tja, bezweifle es. Ich habe 10 Jahre Erfahrung mit diesen Technologien.
Und du?

>>>>Alternativ könntest du ein sogenanntes Affenformular verwenden. Nähere
>>>>Informationen dazu findest du in der FAQ:
>>>>27.2. Von HTML zu PHP: Schreibe Formularverarbeitungen in Normalform
>>>>http://www.php-faq.de/q/q-stil-normalform.html
>>>Endlich zumindest ein Lösungsansatz. Allerdings steht in meinem letzten
>>>Post: Ich habe 2 Dropdown-Menüs und beide haben jeweils 1 Button.
>>Ach, du wolltest also doch eine Fertiglösung?
> Wie? Ich hab geschrieben ich HABE, nicht ich WILL! Was ich schon habe
> brauche ich nicht noch mal. Oder hast du mich falsch verstanden?

Du hast eine Standard-Variante erhalten, die du auf deinen spezifischen
Fall portieren musst. Diese Aufgabe nimmt dir niemand ab. Ich sowieso
nicht mehr.

>>>>Die Netzwerklast wird aber bei Verwendung dieser Methode unnötig erhöht
>>>>und je nach Netzwerk-Verbindung die Handhabung der Seite mühsam. Es gibt
>>>>auch heute noch Leute mit Modem-Verbindungen.
>>>1 Shopbesitzer = Admin
>>>ein paar Programmierer = Admin
>>>Das ganze ist noch nicht live. Das LAN ist schnell genug. Der Server mit
>>>dem Webshop auch.
>>Es gibt doch Kunden, die auf den Webshop zugreiffen? Ist es
>>ausgeschlossen, dass diese über Modems zugreiffen? Ich dachte, da möchte
>>man was an die Allgemeinheit verkaufen?
> Ja, das soll natürlich so sein. Wo ist das Problem?

Wer interessiert sich, wie schnell deine Leitung des Servers ist, wenn
auf der anderen Seite der Benutzer mit Analog den Flaschenhals der
Verbindung darstellt? Natürlich jeder, wenn mehrere Benutzer
gleichzeitig darauf zugreiffen. Aber du solltest dir auch den einzelnen
langsamen Kunden nicht vergraulen mit dauernden Reloads.

>>1. Du erhältst in den NG seltenst eine Fertiglösung. Schon gar nicht mit
>>einer solchen Fragestellung. Den Job musst du selbst bewerkstelligen.
> Wo bitte verlange ich denn nach einer Fertiglösung? Ich frage hier in der
> NG, weil ich vermute, dass ich hier wohl am wahrscheinlichsten eine für
> mich hilfreiche Antwort bekomme.

Erkläre 'hilfreich'. Hilfreicher geht's nicht mehr. Wenn du was anderes
beantwortet haben möchtest, beantworte deine Anfragen selbst.

>>2. nachbearbeiten = hingehen und davon ausgehen, dass darin DIE Hilfe
>>steckt, die man sich beim Fragen erhoffte - ohne es zu wissen.
> Wenn ich etwas unzureichend erklärt habe, dann kann man das ja noch mal
> hinterfragen und zwar so, das ich darauf auch eine halbwegs vernünftige
> Antwort geben kann.

Nein, du hast nichts unzureichend erklärt. Du bist nur mit der Antwort
nicht zufrieden, die du erhältst. Ich werde dir keine andere geben.

> Das könnte zum Beispiel in diesem Fall sein:
> Was geschieht denn mit den Daten?
> Wo bekommst du sie her, was machst du damit, wie speicherst du sie?

Ich werde nicht dafür bezahlt, rückzufragen. Du willst was, nicht ich.

> Oder man könnte wie Christian von irgendetwas ausgehen, worauf man dann
> wieder aufbauen kann, bzw. was ich hinterfragen kann wenn ich es nicht
> verstehe.

Genau das habe ich gemacht und ich habe von Anfang an voll ins Schwarze
getroffen.

>>a) Mach dich schlau, wie das Web funktioniert. Diese Seite wird dir
>>helfen: http://de.selfhtml.org/intro/index.htm
> Was sollte ich denn dort nachlesen? Wie sollte mir das bei meinem Problem
> weiterhelfen. Deine Aussage hilft mir genauso weiter, als würdest du sagen:
> "Frage Google!"

Hast du's gelesen?

>>b) Unterteile dein Problem in kleine Probleme. Also die
>>Datenbank-Abfrage ist ein ganz anderes Problem, wie die DropDown-Box zu
>>beschränken. Und ich würde die beiden Probleme sogar mit anderen
>>Technologien (eben das eine PHP/SQL und das andere mittels
>>JavaScript/HTML) lösen.
> Natürlich gehört auch ein bisschen HTML dazu, aber das andere mache ich
> wohl besser mit PHP.

Irrtum. Aber du wirst es besser wissen.

>>Und falls du denkst, dass du dafür keine Zeit hast, wirst du wohl zum
>>Meister gehen müssen und ihm das sagen.
> Nein, ich habe nicht keine Zeit, ich habe keine Lust! Ich will nicht auf
> Javascript setzen, wenn ich es nicht unbedingt muss.

Das ist ein Vorurteil, welches heute nicht mehr in dieser Art zutrifft,
wie es einmal war. Schade, denn verlieren wirst alleine du.

EOD
Johannes

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 23:12:55 von tgl

Daniel Simon schrieb:
>> Dass JavaScript keine Konkurrenz, sondern eine Sprache für einen anderen
>> Anwendungszweck ist. Dieser Anwendungszweck befindet sich auf der
>> anderen Seite der Welt. Deine Aufgabe liesse sich auf jener Ebene IMHO
>> eleganter lösen. Wie du JavaScript verwendest, kannst du bspw. auf
>> http://de.selfhtml.org/ lesen.

> Vielleicht einfacher, aber das eleganter zweifele ich einfach mal an
> (zumindest auf den Webshop bezogen), obwohl ich noch nie Javascript benutzt
> habe, da der Shop zum Erweitern schon bestimmte Funktionen bereitstellt.

Noch mal GANZ einfach:

Beschränkung auf HTML (welches mehr oder weniger komplett über
PHP-Skripte erzeugt wird): JEDE Interaktion dauert solange, bis die
Daten an den Server zurückgeschickt wurden, dieser eine Antwortseite
generiert hat, diese auf dem Client wieder eingelesen wurde und der
Browser die korrekte Darstellung generiert hat.

Kombination mit JavaScript: Einzelne Funktionen werden ohne jeden Umweg
einfach ganz direkt vom Client ausgeführt, was auch bei einer optimalen
Verbindung zum Server nicht langsamer ist als Alternative 1, aber in
praktisch jeder realen Konfiguration zumindest etwas bis hin zu viel
schneller ist.

Und Lernen durch Rumprobieren an Skripten zu ersetzen, deren Qualität du
mangels Wissen nicht beurteilen kannst und bei dem du Mängel nur dann
feststellst, wenn sie bei deinem favorisierten Browser mit seinen
aktuellen Einstellungen auffallen, ist - freundlich ausgedrückt - eine
recht mutige Technik.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 25.11.2005 23:13:42 von tgl

Daniel Simon schrieb:
> Das tun sie. Ich lese erst mal die Tabelle aus der MySQL-Datenbank in das
> Array ein und lasse mir daraus ein eindimensionales Array erzeugen, aus
> denen ich wiederum einzelne Elemente erzeugen lasse.

Und ein Count($Array) ist dann zu kompliziert für dich?

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 09:35:23 von Daniel Simon

Hallo Johannes,

ich weiß nicht, was du noch mehr als eine Entschuldigung möchtest. Ich
hatte auch geschrieben das die von mir durchgeführten Änderungen den
Adminbereich betreffen.

Das *alles* neu geladen werden muss, im Gegensatz zu Javascript habe ich
nicht bedacht. Aber davon abgesehen glaube ich selbst bei Modemnutzern
würde die Seite schnell genug laden, da der Adminbereich nicht gerade mit
Grafiken übersät ist.

Außerdem kann ja überprüfen, ob der Benutzer Javascript deaktiviert hat.
Das hab ich schon bei Google gesehen.

>> Was ich damit sagen will: In dem Webshop ist die (einfache, wenn man es
>> kann) Erweiterung vorgesehen, was nicht heißt das es unprofessionell, bzw.
>> für jeden zu verstehen ist. Man hat Funktionen für Datenbankzugriffe, um
>> die Tabelleninhalte so zuzubereiten, das man sie gleich benutzen kann und
>> Dateien in denen man den anzuzeigenden Text in den installieren Sprachen
>> eingibt.
>
> Das will ich eigentlich alles nicht wissen. Du hast eine Frage gestellt
> und die Antwort willst du nicht akzeptieren. Also lass es in Zukunft
> bleiben, denn ich vergeude meine Zeit.

Ja ich hatte eine Frage gestellt. Diese Frage war: Wie kann ich das mit den
Dropdown-Menüs erreichen. Als Antwort bekam ich von dir bisher:

Nutze Javascript ( *jetzt* weiß ich warum ich es nutzen sollte; worauf du
hinaus willst hättest du mir erklären können)

PHP wird auf dem Server ausgeführt (durch diese Aussage bekam ich den
Eindruck, ich sollte Javascript nutzen, damit der Server nicht so viel zu
tun hat)

Die SQL-Abfrage dauert länger als die Abfrage der Größe des Arrays (das
weiß ich, was ich nicht weiß ist wie ich die Array-Größe abfrage, auch ein
Link würde mir helfen)

Wenn du einen Vorschlag zur Verbesserung machen willst, dann wäre es auch
schön zu erfahren, worin diese Verbesserung besteht.


> Vielleicht wäre es sinnvoll, sich erst die Grundlagen zu erarbeiten,
> bevor du mit probieren loslegst. Diese wären notwendig.

Es wäre sinnvoll. Ob es notwendig ist zeigt sich immer bei dem Erarbeiten
einer Lösung. Ich hätte durch eine nähere Erläuterung des Problems
vielleicht auch Javascript benutzt. Die Analog-Modemgeschwindigkeit kann
ich ja noch mal testen (davon abgesehen, das außer dem HTML-Code das
Restliche doch aus dem Cache geladen wird!?).


>>>Ach, du wolltest also doch eine Fertiglösung?
>> Wie? Ich hab geschrieben ich HABE, nicht ich WILL! Was ich schon habe
>> brauche ich nicht noch mal. Oder hast du mich falsch verstanden?
>
> Du hast eine Standard-Variante erhalten, die du auf deinen spezifischen
> Fall portieren musst. Diese Aufgabe nimmt dir niemand ab. Ich sowieso
> nicht mehr.

Was ich von dir erhalten habe, habe ich aufgezählt. Mit entsprechender
Erklärung hätte es mir auch weitergeholfen.

>>>Es gibt doch Kunden, die auf den Webshop zugreiffen? Ist es
>>>ausgeschlossen, dass diese über Modems zugreiffen? Ich dachte, da möchte
>>>man was an die Allgemeinheit verkaufen?
>> Ja, das soll natürlich so sein. Wo ist das Problem?
>
> Wer interessiert sich, wie schnell deine Leitung des Servers ist, wenn
> auf der anderen Seite der Benutzer mit Analog den Flaschenhals der
> Verbindung darstellt? Natürlich jeder, wenn mehrere Benutzer
> gleichzeitig darauf zugreiffen. Aber du solltest dir auch den einzelnen
> langsamen Kunden nicht vergraulen mit dauernden Reloads.

Du sprichst Kunden (Mehrzahl) an. Der eigentlich 'Kunde' der diese Seite zu
Gesicht bekommt ist der/die Shopbesitzer. Also hat der Flaschenhals nicht
unbedingt eine zu große Bedeutung.


>>>2. nachbearbeiten = hingehen und davon ausgehen, dass darin DIE Hilfe
>>>steckt, die man sich beim Fragen erhoffte - ohne es zu wissen.
>> Wenn ich etwas unzureichend erklärt habe, dann kann man das ja noch mal
>> hinterfragen und zwar so, das ich darauf auch eine halbwegs vernünftige
>> Antwort geben kann.
>
> Nein, du hast nichts unzureichend erklärt. Du bist nur mit der Antwort
> nicht zufrieden, die du erhältst. Ich werde dir keine andere geben.

Ich will keine andere Antwort. Ich will eine Antwort aber nachvollziehen
können. Das fällt als Anfänger halt schwer.


>> Das könnte zum Beispiel in diesem Fall sein:
>> Was geschieht denn mit den Daten?
>> Wo bekommst du sie her, was machst du damit, wie speicherst du sie?
>
> Ich werde nicht dafür bezahlt, rückzufragen. Du willst was, nicht ich.

Wenn du nicht helfen möchtest, warum antwortest du mir dann? Ich habe
geschrieben das ich Anfänger bin. Es kann vorkommen, das ich nicht nur von
der Lösung keine Ahnung habe, sondern vielleicht auch das Problem nicht
vollständig erfasst habe. Rückfragen bzw. Behauptungen helfen dort halt nun
mal mehr als pure Aussagen wie 'Vergiss es. Benutze Javascript!'.


>>>a) Mach dich schlau, wie das Web funktioniert. Diese Seite wird dir
>>>helfen: http://de.selfhtml.org/intro/index.htm
>> Was sollte ich denn dort nachlesen? Wie sollte mir das bei meinem Problem
>> weiterhelfen. Deine Aussage hilft mir genauso weiter, als würdest du sagen:
>> "Frage Google!"
>
> Hast du's gelesen?

Ja! Und nun noch einmal: Wie soll mir *diese* Seite weiterhelfen?

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 09:50:36 von Daniel Simon

Hallo Thomas,

danke nun hab ich verstanden, warum ich Javascript einsetzen sollte.

Schön wäre in dem Fall eine Überprüfung, ob der Nutzer Javascript
ausgeschaltet hat (so das er es nutzen kann) oder ob man auf meine jetzige
Lösung zugreifen muss.

Thomas G. Liesner schrieb:

> Noch mal GANZ einfach:
>
> Beschränkung auf HTML (welches mehr oder weniger komplett über
> PHP-Skripte erzeugt wird): JEDE Interaktion dauert solange, bis die
> Daten an den Server zurückgeschickt wurden, dieser eine Antwortseite
> generiert hat, diese auf dem Client wieder eingelesen wurde und der
> Browser die korrekte Darstellung generiert hat.

Sollte hier der Browsercache nicht helfen?


> Kombination mit JavaScript: Einzelne Funktionen werden ohne jeden Umweg
> einfach ganz direkt vom Client ausgeführt, was auch bei einer optimalen
> Verbindung zum Server nicht langsamer ist als Alternative 1, aber in
> praktisch jeder realen Konfiguration zumindest etwas bis hin zu viel
> schneller ist.

Wenn mehrere Leute auf das Adminmenü zugreifen müssten, dann wäre das
richtig. Die Geschwindigkeit wird wohl da keine zu große Rolle spielen.
Allerdings leistet es einen Beitrag zur Verminderung des Traffics, den der
Kunde bezahlen muss.


> Und Lernen durch Rumprobieren an Skripten zu ersetzen, deren Qualität du
> mangels Wissen nicht beurteilen kannst und bei dem du Mängel nur dann
> feststellst, wenn sie bei deinem favorisierten Browser mit seinen
> aktuellen Einstellungen auffallen, ist - freundlich ausgedrückt - eine
> recht mutige Technik.

Naja, bei PHP dürfte der Browser wohl keine allzu große Rolle spielen.
Vielleicht spielt der Browser aber bei Javascript (oder JScript von MS)
eine Rolle?

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 09:56:00 von Daniel Simon

Hallo Thomas,

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Das tun sie. Ich lese erst mal die Tabelle aus der MySQL-Datenbank in das
>> Array ein und lasse mir daraus ein eindimensionales Array erzeugen, aus
>> denen ich wiederum einzelne Elemente erzeugen lasse.
>
> Und ein Count($Array) ist dann zu kompliziert für dich?

Die Funktionen im Shop sind kommentiert und vordefiniert. Außerdem hat das
MySQL Frontend ebenfalls eine recht gute Doku, weshalb meine Wahl auf die
Datenbank-Abfrage fiel. Aber wenn das so einfach ist...

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 12:58:06 von tgl

Daniel Simon schrieb:
> danke nun hab ich verstanden, warum ich Javascript einsetzen sollte.

Gern geschehen.

> Schön wäre in dem Fall eine Überprüfung, ob der Nutzer Javascript
> ausgeschaltet hat (so das er es nutzen kann) oder ob man auf meine jetzige
> Lösung zugreifen muss.

Dazu gibt es Tricks, aber da müßtest du mal in einer spezifischeren
Gruppe nachfragen, da das mit PHP nichts zu tun hat, sondern mit den
Spezialitäten der diversen HTML-Dialekte.

>> Beschränkung auf HTML (welches mehr oder weniger komplett über
>> PHP-Skripte erzeugt wird): JEDE Interaktion dauert solange, bis die
>> Daten an den Server zurückgeschickt wurden, dieser eine Antwortseite
>> generiert hat, diese auf dem Client wieder eingelesen wurde und der
>> Browser die korrekte Darstellung generiert hat.

> Sollte hier der Browsercache nicht helfen?

Für Grafiken & Co ja, aber die Latenz durch das jeweilige Warten auf
Antwort ist nicht zu unterschätzen.

>> Kombination mit JavaScript: Einzelne Funktionen werden ohne jeden Umweg
>> einfach ganz direkt vom Client ausgeführt, was auch bei einer optimalen
>> Verbindung zum Server nicht langsamer ist als Alternative 1, aber in
>> praktisch jeder realen Konfiguration zumindest etwas bis hin zu viel
>> schneller ist.

> Wenn mehrere Leute auf das Adminmenü zugreifen müssten, dann wäre das
> richtig. Die Geschwindigkeit wird wohl da keine zu große Rolle spielen.
> Allerdings leistet es einen Beitrag zur Verminderung des Traffics, den der
> Kunde bezahlen muss.

Das ist auch ein praktischer Nebeneffekt.

>> Und Lernen durch Rumprobieren an Skripten zu ersetzen, deren Qualität du
>> mangels Wissen nicht beurteilen kannst und bei dem du Mängel nur dann
>> feststellst, wenn sie bei deinem favorisierten Browser mit seinen
>> aktuellen Einstellungen auffallen, ist - freundlich ausgedrückt - eine
>> recht mutige Technik.

> Naja, bei PHP dürfte der Browser wohl keine allzu große Rolle spielen.

Das ja, aber beim Testen des Ergebnisses durchaus, die Toleranz
gegenüber kaputten Seiten ist sehr verschieden, Unterstützung von CSS &
Co ist auch durchaus unterschiedlich ausgeprägt. Ein Test bzgl.
Validität des erzeugten HTMLs sollte man auf jeden Fall auch ab und an
machen.

> Vielleicht spielt der Browser aber bei Javascript (oder JScript von MS)
> eine Rolle?

Sofern man sich auf den Basiswortschatz der alten Netscape-Varianten
beschränkt, sollte das egal sein, solange Javascript überhaupt aktiviert
ist, aber auch da habe ich selber keine größeren Erfahrungen gemacht.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 13:00:32 von tgl

Daniel Simon schrieb:
> Thomas G. Liesner schrieb:
>> Daniel Simon schrieb:
>>> Das tun sie. Ich lese erst mal die Tabelle aus der MySQL-Datenbank in das
>>> Array ein und lasse mir daraus ein eindimensionales Array erzeugen, aus
>>> denen ich wiederum einzelne Elemente erzeugen lasse.

>> Und ein Count($Array) ist dann zu kompliziert für dich?

> Die Funktionen im Shop sind kommentiert und vordefiniert. Außerdem hat das
> MySQL Frontend ebenfalls eine recht gute Doku, weshalb meine Wahl auf die
> Datenbank-Abfrage fiel. Aber wenn das so einfach ist...

Count ist eine Basisfunktion von PHP, die Nutzung irgendwelcher Libra-
ries des Shops sind deutlich umständlicher. Und da du es eh in ein Array
einliest, ist die Prüfung der Anzahl der Arrayelemente für mich die
natürlichste Methode. Du kannst ja auch bei der SQL-Abfrage noch ein
"limit 9" anhängen, da es ja egal ist, ob es 1 oder 100 Elemente zuviel
sind.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 15:00:40 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Die Funktionen im Shop sind kommentiert und vordefiniert. Außerdem hat das
>> MySQL Frontend ebenfalls eine recht gute Doku, weshalb meine Wahl auf die
>> Datenbank-Abfrage fiel. Aber wenn das so einfach ist...
>
> Count ist eine Basisfunktion von PHP, die Nutzung irgendwelcher Libra-
> ries des Shops sind deutlich umständlicher. Und da du es eh in ein Array
> einliest, ist die Prüfung der Anzahl der Arrayelemente für mich die
> natürlichste Methode. Du kannst ja auch bei der SQL-Abfrage noch ein
> "limit 9" anhängen, da es ja egal ist, ob es 1 oder 100 Elemente zuviel
> sind.

Hab ich ausprobiert. Leider beschränkt sich das LIMIT ... auf die Ausgabe
(?). Ich will das 2 Dropdown-Menü (mit Button) aber einblenden, damit der
Shopbesitzer die Produkte wieder rausschmeissen kann, die er nicht auf der
Startseite haben möchte.

Somit kommt nur das in Frage, was das Einfügen in die Tabelle verhindert ob
nun mit einem SQL-Statement oder mit PHP.

Und der PHP-Befehl Count($Array) liefert mir 1 zurück?! Was mache ich
falsch? Was wird eigentlich mit Count genau gezählt?

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 15:29:03 von Niels Braczek

Daniel Simon schrieb:

> Und der PHP-Befehl Count($Array) liefert mir 1 zurück?! Was mache ich
> falsch? Was wird eigentlich mit Count genau gezählt?

Ich gewinne langsam den Eindruck, dass du das Manual noch nicht gefunden
hast: http://www.php.net/manual/en/

Insbesondere zu count(): http://de2.php.net/manual/en/function.count.php

Benutze möglichst die englische Version, da sie vollständiger und
aktueller ist als jede andere.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 15:38:04 von dev-null-use-reply-adress

Thomas G. Liesner schrieb:
> Daniel Simon schrieb:
>> Schön wäre in dem Fall eine Überprüfung, ob der Nutzer Javascript
>> ausgeschaltet hat (so das er es nutzen kann) oder ob man auf meine jetzige
>> Lösung zugreifen muss.
>
> Dazu gibt es Tricks, aber da müßtest du mal in einer spezifischeren

Meiner Meinung nach braucht man sowas bei geeigneter Programmierung selten.
Und in einem Adminbereich, der ja eh nur von bestimmten Leuten benutzt wird,
kann man Javascript durchaus zwingend vorrausetzen, um ohne Verrenkungen
Anwender freundliche Funktionalitäten erstellen zu können.


Gruß
JPM

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 15:55:54 von tgl

Jens Peter Moeller schrieb:
> Thomas G. Liesner schrieb:
>> Daniel Simon schrieb:
>>> Schön wäre in dem Fall eine Überprüfung, ob der Nutzer Javascript
>>> ausgeschaltet hat (so das er es nutzen kann) oder ob man auf meine jetzige
>>> Lösung zugreifen muss.

>> Dazu gibt es Tricks, aber da müßtest du mal in einer spezifischeren

> Meiner Meinung nach braucht man sowas bei geeigneter Programmierung selten.

Was meinst du mit "bei geeigneter Programmierung"?

Ich sehe drei Varianten:
- Javascript zwingend benötigt, sonst funktioniert die Seite nur zum
Teil
- Javascript als Erleichterung, wenn eingeschaltet
- Getrennte Seitenvarianten ggf. mit automatischer Weiche

Und bei Variante 2 oder der Weiche für Variante 3 sind IMHO schon etwas
bessere Kenntnisse nötig, wenn das für den Benutzer transparent ablaufen
soll.

> Und in einem Adminbereich, der ja eh nur von bestimmten Leuten benutzt wird,
> kann man Javascript durchaus zwingend vorrausetzen, um ohne Verrenkungen
> Anwender freundliche Funktionalitäten erstellen zu können.

Ack, meine Antwort ging mehr vom allgemeinen Fall aus.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 16:01:11 von tgl

Daniel Simon schrieb:
> Und der PHP-Befehl Count($Array) liefert mir 1 zurück?!

Bei PHP ist - wie bei C(++/#), Java & Co - Klein/Großschrift relevant.
Falls es immer noch nicht klappt, solltest du den passenden
Codeausschnitt zeigen incl. Laden und Nutzen des Arrays.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 16:18:05 von Daniel Simon

Niels Braczek schrieb:

> Daniel Simon schrieb:
>
>> Und der PHP-Befehl Count($Array) liefert mir 1 zurück?! Was mache ich
>> falsch? Was wird eigentlich mit Count genau gezählt?
>
> Ich gewinne langsam den Eindruck, dass du das Manual noch nicht gefunden
> hast [...]

Hab ich schon. Ich glaube, das ich ein Array eingelesen hab, allerdings
scheint das entweder nicht so zu sein oder ich mache irgendeinen anderen
Fehler.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 17:05:57 von dev-null-use-reply-adress

Daniel Simon schrieb:
> Niels Braczek schrieb:
>> Daniel Simon schrieb:
>>
>>> Und der PHP-Befehl Count($Array) liefert mir 1 zurück?! Was mache ich
>>> falsch? Was wird eigentlich mit Count genau gezählt?
>>
>> Ich gewinne langsam den Eindruck, dass du das Manual noch nicht gefunden
>> hast [...]
>
> Hab ich schon. Ich glaube, das ich ein Array eingelesen hab, allerdings
> scheint das entweder nicht so zu sein oder ich mache irgendeinen anderen
> Fehler.

echo '

'; print_r($array); echo '
';
zeigt Dir erstmal, wie das Array aufgebaut ist.

Möglicherweise ist es mehrdimensional, sodaß Du count()
beispielsweise auf $array[0] o.ä. anwenden müsstest.


Gruß
JPM

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 28.11.2005 19:57:52 von tgl

Jens Peter Moeller schrieb:
> Möglicherweise ist es mehrdimensional, sodaß Du count()
> beispielsweise auf $array[0] o.ä. anwenden müsstest.

Oder count(..., true);

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 29.11.2005 10:44:49 von Daniel Simon

Thomas G. Liesner schrieb:

> Jens Peter Moeller schrieb:
>> Möglicherweise ist es mehrdimensional, sodaß Du count()
>> beispielsweise auf $array[0] o.ä. anwenden müsstest.
>
> Oder count(..., true);
>
> So long,
> Thomas G. Liesner

Abgesehen von der funktionierenden SQL-Abfrage:

Wenn ich das '; echo print_r($rows); echo ''; ?>
ausprobiere mit meinem (mehrdimensionalen?) Array rows bekomme ich das:

Array
(
[rows] => 1
)
1


Wenn ich mit '; echo print_r($rows[rows]); echo '';
?> die Spalte(?) rows abfrage bekomme ich '11'

Mit '; echo count($rows[rows],true); echo ''; ?>
bekomme ich '1'

Aber davon abgesehen frage ich mich warum ich nicht die Datenbank direkt
mit dieser Anfrage bemühen soll, schließlich muss ich die Daten im Array ja
auch irgendwo herbekommen und die bekomme ich aus der Datenbank!?

Was ich mache um ein Array zu bekommen ist:
Ich trage das MySQL-Statement in eine Variable ein, nutze dann eine
Shopfunktion zur Datenbankabfrage, eine weitere Shopfunktion nutze ich um
die so erhaltenen Daten in einem Array zu speichern.

In diesem Array kann ich nun die Spalte(?) rows auswählen und per Echo mir
den im MySQL-Statement enthaltenen Rückgabewert von 'COUNT(*)' ausgeben
lassen.

So mache ich das und weiß nicht was sich verbessern soll, wenn ich die
Größe des Arrays abfrage, bzw. was ich verändern müsste.
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 29.11.2005 11:43:55 von tgl

Daniel Simon schrieb:
> In diesem Array kann ich nun die Spalte(?) rows auswählen und per Echo mir
> den im MySQL-Statement enthaltenen Rückgabewert von 'COUNT(*)' ausgeben
> lassen.

Dann ist das Missverständnis klar!

Count zählt die Anzahl der Elemente und berechnet keine Summe. Du hast
jetzt beide Ansätze zu einem falsch zusammengesetzt: Du machst die
Abfrage nach der Anzahl und den Rückwert behandelst du dann mit dem
Alternativansatz, das Ergebnis ist dann natürlich 1.

Mein Ansatz war anders gemeint: Meiner Erinnerung nach holst du dir
zuerst die Daten selber in ein Array rein, welche dann in die
Auswahllisten kommen. Anstatt dann eine zusätzliche Datenbankabfrage zu
machen, würde ich einfach count() auf das bereits eingelesene Array mit
den Daten anwenden.

Wenn du erst die Anzahl wissen willst und dann nur ggf. die Daten selber
einliest, dann lass SQL die Daten zählen, liest du die Daten sowieso
immer in ein Array ein, dann prüfe die Länge des Arrays statt einem
zusätzlichen DB-Aufruf.

Jetzt verständlicher?

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 29.11.2005 11:50:49 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Und der PHP-Befehl Count($Array) liefert mir 1 zurück?!
>
> Bei PHP ist - wie bei C(++/#), Java & Co - Klein/Großschrift relevant.
> Falls es immer noch nicht klappt, solltest du den passenden
> Codeausschnitt zeigen incl. Laden und Nutzen des Arrays.
>
> So long,
> Thomas G. Liesner

Das mit dem Case Sensitive weiß ich. Ich hab bereits etwas Java und C in
der Schule gelernt. Das mit dem Zeigen des Codes wird, so denke ich nicht
viel bringen, da ich die PHP-Funktionen des Shop benutze (so das man, falls
sich etwas ändert (Datenbankname,-passwort etc.) nur die Include-Dateien
ändern muss).

Was da gemacht wird habe ich unter der MID
<9j82dy6n5wss.163lyfli5e5dg.dlg@40tude.net> geschrieben.
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 29.11.2005 16:25:08 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> In diesem Array kann ich nun die Spalte(?) rows auswählen und per Echo mir
>> den im MySQL-Statement enthaltenen Rückgabewert von 'COUNT(*)' ausgeben
>> lassen.
>
> Dann ist das Missverständnis klar!

Mir leider immer noch nicht ganz. Aber es funktioniert mit
'.print_r($rows[rows],true).''; ?>
Das true steht nun also für den int mode (php.net/count) oder wie!?

Aber vielleicht kann ich ja herausfinden was ich falsch gemacht hatte,
damit ich es beim nächsten Mal weiß.

> Count zählt die Anzahl der Elemente und berechnet keine Summe. Du hast
> jetzt beide Ansätze zu einem falsch zusammengesetzt: Du machst die
> Abfrage nach der Anzahl und den Rückwert behandelst du dann mit dem
> Alternativansatz, das Ergebnis ist dann natürlich 1.

Äh wie...? Ich verstehe nur Bahnhof. Count hört sich für mich nach Zählen
an. Und das mache ich doch? Oder bezieht sich das auf eine Addition von
Spalten und Zeilen...???


> Mein Ansatz war anders gemeint: Meiner Erinnerung nach holst du dir
> zuerst die Daten selber in ein Array rein, welche dann in die
> Auswahllisten kommen. Anstatt dann eine zusätzliche Datenbankabfrage zu
> machen, würde ich einfach count() auf das bereits eingelesene Array mit
> den Daten anwenden.

Ja die hole ich in eine Array. Es gibt eine PHP-Funktion is_array mit der
ich überprüft habe, ob ich wirklich ein Array habe, was der Fall ist. Den
Count kann ich allerdings nur machen, nachdem das Produkt in die Tabelle
für die Produkte der Startseite gewandert ist. Daher muss ich doch immer
die aktuelle Zahl in der Datenbank prüfen, da sie nicht dem Array
hinzugefügt werden, sondern das Array aus den Einträgen generiert wird?


> Wenn du erst die Anzahl wissen willst und dann nur ggf. die Daten selber
> einliest, dann lass SQL die Daten zählen, liest du die Daten sowieso
> immer in ein Array ein, dann prüfe die Länge des Arrays statt einem
> zusätzlichen DB-Aufruf.

Das mache ich auch so. Die Daten müssen nämlich in die Datenbank um
bestehen zu bleiben. Daher brauche ich das Array nur um die Daten im
Dropdown-Menüs auszugeben, nicht umgekehrt um die Datenbankeinträge zu
erzeugen (was wohl auch komplizierter wäre).

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 29.11.2005 16:51:45 von tgl

Daniel Simon schrieb:
> Mir leider immer noch nicht ganz. Aber es funktioniert mit
> '.print_r($rows[rows],true).''; ?>
> Das true steht nun also für den int mode (php.net/count) oder wie!?

count und print_r haben keinen direkten Zusammenhang. Zur Bedeutung des
Parameters siehe PHP-Befehls-Referenz.

>> Count zählt die Anzahl der Elemente und berechnet keine Summe. Du hast
>> jetzt beide Ansätze zu einem falsch zusammengesetzt: Du machst die
>> Abfrage nach der Anzahl und den Rückwert behandelst du dann mit dem
>> Alternativansatz, das Ergebnis ist dann natürlich 1.

> Äh wie...? Ich verstehe nur Bahnhof. Count hört sich für mich nach Zählen
> an. Und das mache ich doch? Oder bezieht sich das auf eine Addition von
> Spalten und Zeilen...???

Wenn du count auf das Ergebnis von "select count(*) ..." anwendest,
bekommst du natürlich 1: EIN Ergebniswert, egal ob der jetzt 0, 1 oder
20 Millionen beträgt.

Wenn du count auf das Ergebnis von "select * from ... where ..."
anwendest, bekommst du als Ergebnis die Anzahl der gefundenen
Datensätze.

>> Mein Ansatz war anders gemeint: Meiner Erinnerung nach holst du dir
>> zuerst die Daten selber in ein Array rein, welche dann in die
>> Auswahllisten kommen. Anstatt dann eine zusätzliche Datenbankabfrage zu
>> machen, würde ich einfach count() auf das bereits eingelesene Array mit
>> den Daten anwenden.

> Ja die hole ich in eine Array. Es gibt eine PHP-Funktion is_array mit der
> ich überprüft habe, ob ich wirklich ein Array habe, was der Fall ist. Den
> Count kann ich allerdings nur machen, nachdem das Produkt in die Tabelle
> für die Produkte der Startseite gewandert ist. Daher muss ich doch immer
> die aktuelle Zahl in der Datenbank prüfen, da sie nicht dem Array
> hinzugefügt werden, sondern das Array aus den Einträgen generiert wird?

Sorry, aber den Ablauf verstehe ich anhand der Beschreibung nicht.

>> Wenn du erst die Anzahl wissen willst und dann nur ggf. die Daten selber
>> einliest, dann lass SQL die Daten zählen, liest du die Daten sowieso
>> immer in ein Array ein, dann prüfe die Länge des Arrays statt einem
>> zusätzlichen DB-Aufruf.

> Das mache ich auch so. Die Daten müssen nämlich in die Datenbank um
> bestehen zu bleiben.

Das ist klar.

> Daher brauche ich das Array nur um die Daten im Dropdown-Menüs auszugeben,

Ja, das war von Anfang an klar. Und dein Problem schien zu sein, daß
bei mehr als x Datensätzen in diesem Array ein Button nicht angezeigt
werden soll. Für dieses Problem ist die triviale Lösung:

if (count($liste) echo " }

> nicht umgekehrt um die Datenbankeinträge zu
> erzeugen (was wohl auch komplizierter wäre).

Und was das mit dem genannten Problem zu tun haben mag, erschliesst sich
mir nicht. Entweder verstehst du mich nicht oder ich verstehe das
Problem nicht korrekt.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 30.11.2005 13:43:47 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Mir leider immer noch nicht ganz. Aber es funktioniert mit
>> '.print_r($rows[rows],true).''; ?>
>> Das true steht nun also für den int mode (php.net/count) oder wie!?
>
> count und print_r haben keinen direkten Zusammenhang. Zur Bedeutung des
> Parameters siehe PHP-Befehls-Referenz.

Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschied zu
Count liegen soll, abgesehen von der Ausgabe. Für was soll count (ich rede
von der PHP-Funktion, nicht von MySQL) denn da sein? Um die Anzahl der
Elemente auszugeben kann ich print_r benutzen, ob ich ein Array habe kann
ich mit is_array prüfen. Sollte count() nicht mehr als einen Bool-Wert
zurückliefern?

In der Refernz steht:
|If var is not an array or an object with implemented Countable interface,
|1 will be returned. There is one exception, if var is NULL, 0 will be
|returned.


>>> Count zählt die Anzahl der Elemente und berechnet keine Summe. Du hast
>>> jetzt beide Ansätze zu einem falsch zusammengesetzt: Du machst die
>>> Abfrage nach der Anzahl und den Rückwert behandelst du dann mit dem
>>> Alternativansatz, das Ergebnis ist dann natürlich 1.
>
>> Äh wie...? Ich verstehe nur Bahnhof. Count hört sich für mich nach Zählen
>> an. Und das mache ich doch? Oder bezieht sich das auf eine Addition von
>> Spalten und Zeilen...???
>
> Wenn du count auf das Ergebnis von "select count(*) ..." anwendest,
> bekommst du natürlich 1: EIN Ergebniswert, egal ob der jetzt 0, 1 oder
> 20 Millionen beträgt.
>
> Wenn du count auf das Ergebnis von "select * from ... where ..."
> anwendest, bekommst du als Ergebnis die Anzahl der gefundenen
> Datensätze.

Die MySQL-Abfrage klappt ja (mit SELECT COUNT(*) ... FROM ... ), allerdings
habe ich keine Ahnung ob mir die PHP-Funktion count() das zurückliefert was
ich haben möchte.


>>> Mein Ansatz war anders gemeint: Meiner Erinnerung nach holst du dir
>>> zuerst die Daten selber in ein Array rein, welche dann in die
>>> Auswahllisten kommen. Anstatt dann eine zusätzliche Datenbankabfrage zu
>>> machen, würde ich einfach count() auf das bereits eingelesene Array mit
>>> den Daten anwenden.
>
>> Ja die hole ich in eine Array. Es gibt eine PHP-Funktion is_array mit der
>> ich überprüft habe, ob ich wirklich ein Array habe, was der Fall ist. Den
>> Count kann ich allerdings nur machen, nachdem das Produkt in die Tabelle
>> für die Produkte der Startseite gewandert ist. Daher muss ich doch immer
>> die aktuelle Zahl in der Datenbank prüfen, da sie nicht dem Array
>> hinzugefügt werden, sondern das Array aus den Einträgen generiert wird?
>
> Sorry, aber den Ablauf verstehe ich anhand der Beschreibung nicht.

Die id's der Produkte, die auf der Startseite angezeigt werden sollen,
wandern bei einem Klick auf den Submit-Button von Menu 1 in eine von mir
angelegte Tabelle. Dann prüfe ich deren Anzahl über eine Abfrage der
Elemente im Array (das speichere ich einfach in einer Variable). Dann kann
ich später die Elemente des Array in das Dropdown-Menü einzeln als Option
einlesen lassen.


>>> Wenn du erst die Anzahl wissen willst und dann nur ggf. die Daten selber
>>> einliest, dann lass SQL die Daten zählen, liest du die Daten sowieso
>>> immer in ein Array ein, dann prüfe die Länge des Arrays statt einem
>>> zusätzlichen DB-Aufruf.
>
>> Das mache ich auch so. Die Daten müssen nämlich in die Datenbank um
>> bestehen zu bleiben.
>
> Das ist klar.
>
>> Daher brauche ich das Array nur um die Daten im Dropdown-Menüs auszugeben,
>
> Ja, das war von Anfang an klar. Und dein Problem schien zu sein, daß
> bei mehr als x Datensätzen in diesem Array ein Button nicht angezeigt
> werden soll. Für dieses Problem ist die triviale Lösung:
>
> if (count($liste) > echo " > }

Falls mir count nicht die Anzahl der Elemente liefert (oder mache ich etwas
falsch?), werde ich wohl print_r benutzen. Wie schon gesagt bekomme ich ja
die richtige Anzahl von Elementen geliefert und frage diese auch mit if ab
ansonsten gebe ich mit else einen Text in rot aus (echo ' color="#ff0000">Es sollen nicht mehr als '.$maxproducts.' Produkte auf der
Startseite angezeigt werden!';)


>> nicht umgekehrt um die Datenbankeinträge zu
>> erzeugen (was wohl auch komplizierter wäre).
>
> Und was das mit dem genannten Problem zu tun haben mag, erschliesst sich
> mir nicht. Entweder verstehst du mich nicht oder ich verstehe das
> Problem nicht korrekt.

Damit wollte ich sagen, das die Reihenfolge 'Überprüfung ob Variable id_add
oder id_delete (Variablen, mit denen ich überprüfe, ob etwas zur Startseite
hinzugefügt/gelöscht werden soll) -> Datenbankanfrage je nach gesetzter
Variable -> Ausgabe in einem Array' ist und nicht 'Variablenüberprüfung ->
Array -> Datenbankeintrag' ist.

Ich glaube auch das wir beide leider erfolgreich aneinander vorbei reden
:-( !?

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 30.11.2005 14:19:53 von Fabian Schladitz

Daniel Simon schrieb:
> Thomas G. Liesner schrieb:
>=20
>=20
>>Daniel Simon schrieb:
>>
>>>Mir leider immer noch nicht ganz. Aber es funktioniert mit
>>>'.print_r($rows[rows],true).''; ?>
>>>Das true steht nun also für den int mode (php.net/count) oder wie!?
>>
>>count und print_r haben keinen direkten Zusammenhang. Zur Bedeutung des=

>>Parameters siehe PHP-Befehls-Referenz.
>=20
>=20
> Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschied=
zu
> Count liegen soll, abgesehen von der Ausgabe. Für was soll count (ich=
rede
> von der PHP-Funktion, nicht von MySQL) denn da sein? Um die Anzahl der
> Elemente auszugeben kann ich print_r benutzen, ob ich ein Array habe ka=
nn
> ich mit is_array prüfen. Sollte count() nicht mehr als einen Bool-Wer=
t
> zurückliefern?
>=20
> In der Refernz steht:
> |If var is not an array or an object with implemented Countable interfa=
ce,
> |1 will be returned. There is one exception, if var is NULL, 0 will be =

> |returned.

Du sollst dir dieses SELECT COUNT(*) sparen!

Mach dein "SELECT foo FROM bar WHERE *". Nutze die tolle Funktion deines =

Shops um das Ergebnis als Array zu erhalten.
Mache ein count($ergebnisarray) und du erhälst die Anzahl Einträge in=
=20
diesem Ergebnisarray.

Dann musst du die Datenbank nicht zwei Mal belasten.

--=20
HTH,
Fabian

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 30.11.2005 15:19:24 von tgl

Daniel Simon schrieb:
> Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschied zu
> Count liegen soll, abgesehen von der Ausgabe.

.... abgesehen von der Ausgabe ...

Wie kurz programmierst du erst, wenn du Ausgabefunktionen und Berech-
nungen für praktisch identisch hälst?

> Um die Anzahl der Elemente auszugeben kann ich print_r benutzen,

Und wie reagierst du dann auf diese Ausgabe?

> ob ich ein Array habe kann ich mit is_array prüfen.

Das ist für dein Problem uninteressant.

> Sollte count() nicht mehr als einen Bool-Wert zurückliefern?

Tut es. Siehe Befehlsreferenz.

> In der Refernz steht:
>| If var is not an array or an object with implemented Countable interface,
>| 1 will be returned. There is one exception, if var is NULL, 0 will be
>| returned.

Und wo steht da was von einem boolschen Wert als Ausgabe?
- var==NULL => return 0
- !is_array(var) and !has_countable_interface(var) => 1
- else => Anzahl der Elemente

Der optionale zweite Parameter wird erst bei mehrdimensionalen Arrays
interessant.

>> Wenn du count auf das Ergebnis von "select count(*) ..." anwendest,
>> bekommst du natürlich 1: EIN Ergebniswert, egal ob der jetzt 0, 1 oder
>> 20 Millionen beträgt.
>> Wenn du count auf das Ergebnis von "select * from ... where ..."
>> anwendest, bekommst du als Ergebnis die Anzahl der gefundenen
>> Datensätze.

> Die MySQL-Abfrage klappt ja (mit SELECT COUNT(*) ... FROM ... ),

Ja, das hat auch niemand bestritten. Der Aufruf ist aber überflüssig,
wenn du eh alle Daten in ein Array packen läßt.

> allerdings habe ich keine Ahnung ob mir die PHP-Funktion count()
> das zurückliefert was ich haben möchte.

Bei korrekter Benutzung schon.

>> Sorry, aber den Ablauf verstehe ich anhand der Beschreibung nicht.

> Die id's der Produkte, die auf der Startseite angezeigt werden sollen,
> wandern bei einem Klick auf den Submit-Button von Menu 1 ...

Das ist für die Aufgabenstellung völlig irrelevant, da PHP bereits
beendet ist, wenn die Seite beim Benutzer angekommen ist.

> ... in eine von mir angelegte Tabelle. Dann prüfe ich deren Anzahl über
> eine Abfrage der Elemente im Array (das speichere ich einfach in
> einer Variable). Dann kann ich später die Elemente des Array in
> das Dropdown-Menü einzeln als Option einlesen lassen.

Wir reden von Web-Seiten und nicht von einem laufenden Anwendungspro-
gramm. Das PHP-Skript erzeugt anhand von Eingabevariablen bestimmte
Ausgaben, es geht also exakt um einen Ablauf für die Darstellung und
nicht um die Interaktion über diverse Seitenaufrufe hinweg.

>> if (count($liste) >> echo " >> }

> Falls mir count nicht die Anzahl der Elemente liefert (oder mache ich etwas
> falsch?), werde ich wohl print_r benutzen.

Und was machst du damit? Was interessiert den Benutzer die Ausgabe der
Anzahl der Elemente eines internen Arrays?

> Wie schon gesagt bekomme ich ja
> die richtige Anzahl von Elementen geliefert und frage diese auch mit if ab

Du redest wieder vom Ergebnis der zweiten SQL-Abfrage?

> Ich glaube auch das wir beide leider erfolgreich aneinander vorbei reden
> :-( !?

Yep.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 09:44:06 von Daniel Simon

Fabian Schladitz schrieb:

> Daniel Simon schrieb:
>> Thomas G. Liesner schrieb:
>>
>>
>>>Daniel Simon schrieb:
>>>
>>>>Mir leider immer noch nicht ganz. Aber es funktioniert mit
>>>>'.print_r($rows[rows],true).''; ?>
>>>>Das true steht nun also für den int mode (php.net/count) oder wie!?
>>>
>>>count und print_r haben keinen direkten Zusammenhang. Zur Bedeutung des
>>>Parameters siehe PHP-Befehls-Referenz.
>>
>>
>> Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschied zu
>> Count liegen soll, abgesehen von der Ausgabe. Für was soll count (ich rede
>> von der PHP-Funktion, nicht von MySQL) denn da sein? Um die Anzahl der
>> Elemente auszugeben kann ich print_r benutzen, ob ich ein Array habe kann
>> ich mit is_array prüfen. Sollte count() nicht mehr als einen Bool-Wert
>> zurückliefern?
>>
>> In der Refernz steht:
>>|If var is not an array or an object with implemented Countable interface,
>>|1 will be returned. There is one exception, if var is NULL, 0 will be
>>|returned.
>
> Du sollst dir dieses SELECT COUNT(*) sparen!
>
> Mach dein "SELECT foo FROM bar WHERE *". Nutze die tolle Funktion deines
> Shops um das Ergebnis als Array zu erhalten.
> Mache ein count($ergebnisarray) und du erhälst die Anzahl Einträge in
> diesem Ergebnisarray.
>
> Dann musst du die Datenbank nicht zwei Mal belasten.

Ich dachte das ich das'SELECT ... FROM ... WHERE ...' mache wäre klar.
Irgendwo muss ich ja such meine Daten für das Array herbekommen. Und das
count($array) nicht das liefert was ich brauche habe ich auch schon
bemängelt.

Ich kann die Anzahl der Elemente in meinem Array mit der im OP genannten
Methode bekommen und muss nur noch das Array anstatt die Datenbank
abfragen, was ich, dank der Hilfe hier, jetzt alleine hinbekommen müsste.
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 09:59:20 von Fabian Schladitz

Daniel Simon schrieb:
> Fabian Schladitz schrieb:
>>
>>Du sollst dir dieses SELECT COUNT(*) sparen!
>>
>>Mach dein "SELECT foo FROM bar WHERE *". Nutze die tolle Funktion deine=
s=20
>>Shops um das Ergebnis als Array zu erhalten.
>>Mache ein count($ergebnisarray) und du erhälst die Anzahl Einträge =
in=20
>>diesem Ergebnisarray.
>>
>>Dann musst du die Datenbank nicht zwei Mal belasten.
>=20
>=20
> Ich dachte das ich das'SELECT ... FROM ... WHERE ...' mache wäre klar=


Ja. Hab ich ja auch nicht bezweifelt, sondern unterstützt.

> Irgendwo muss ich ja such meine Daten für das Array herbekommen. Und =
das
> count($array) nicht das liefert was ich brauche habe ich auch schon
> bemängelt.

Dann verwendest du es einfach falsch. Sorry, dass ich das so hart sagen=20
muss.

Kannst du bitte folgendes liefern:
- Codeausschnitt, wo du ein print_r($deinarray); echo count($deinarray); =

und ein var_dump($deinarray) machst
- die dazugehörigen Ausgaben vollständig per Copy & Paste liefern

> Ich kann die Anzahl der Elemente in meinem Array mit der im OP genannte=
n
> Methode bekommen und muss nur noch das Array anstatt die Datenbank
> abfragen, was ich, dank der Hilfe hier, jetzt alleine hinbekommen müs=
ste.

Du machst eine unnötige Datenbankabfrage. Es mag für jetzt gehen, wen=
n=20
du dir so einen Mist aber angewöhnst wirst du nie guten Code schreiben.=


--=20
HTH,
Fabian

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 11:05:41 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschied zu
>> Count liegen soll, abgesehen von der Ausgabe.
>
> ... abgesehen von der Ausgabe ...
>
> Wie kurz programmierst du erst, wenn du Ausgabefunktionen und Berech-
> nungen für praktisch identisch hälst?

Ich meine von der reinen Verwendung her. Intern ist es natürlich etwas
anderes. Aber print_r liefert mir die Anzahl der Elemente in meinem Array
und count() sollte das auch tun.

Was ich damit sagen wollte ist doch nur, das count($array) scheinbar nicht
das ausgibt was ich haben möchte. Count heißt für mich zählen, allerdings
scheint das nicht getan zu werden, da ich auch bei einer Elementanzahl >1
trotzdem 1 als Ergebnis geliefert bekomme.

Count soll meiner Meinung nach zählen und das kann man als Berechnung
ansehen (... +1 Element, +1 Element...), was es bei mir aber nicht tut.


>> Um die Anzahl der Elemente auszugeben kann ich print_r benutzen,
>
> Und wie reagierst du dann auf diese Ausgabe?

Indem ich dann prüfe ob der Rückgabewert >= meiner Variable $maxproducts
ist.


>> ob ich ein Array habe kann ich mit is_array prüfen.
>
> Das ist für dein Problem uninteressant.

Für die Lösung letztendlich schon, nicht aber für den Lösungsweg.


>> Sollte count() nicht mehr als einen Bool-Wert zurückliefern?
>
> Tut es. Siehe Befehlsreferenz.

....sollte es. Ich bekomme trotz Prüfung ob ich ein Array habe (was der Fall
ist) trotzdem 1. Was laut Referenz, wie ich es verstanden hab, bedeutet:
a) kein zählbares Interface oder b)kein Array (wobei letzteres durch die
Prüfung is_array ausscheidet).

Nun ist also die Frage: Wie sieht denn ein countable Interface aus, bzw.
warum hab ich keins? Wie kann ich es zählbar machen?

>> In der Refernz steht:
>>| If var is not an array or an object with implemented Countable interface,
>>| 1 will be returned. There is one exception, if var is NULL, 0 will be
>>| returned.
>
> Und wo steht da was von einem boolschen Wert als Ausgabe?
> - var==NULL => return 0
> - !is_array(var) and !has_countable_interface(var) => 1
> - else => Anzahl der Elemente
>
> Der optionale zweite Parameter wird erst bei mehrdimensionalen Arrays
> interessant.

Ich verstehe count eigentlich auch so, das es mir zeigen soll wieviele
Elemente in meinem Array sind. Allerdings bekomme ich als Ausgabe leider
nicht den Wert den ich erwarte.

In diesem Aray sollte auch kein anderes Array sein(was ja auch zu dieser
Ausgabe führen könnte), ich hatte den Inhalt mit 'print_r($array)' (im
Array stand allerdings nicht das was ich erwartet habe, nämlich *ein*
Element rows mit dem Wert '1') auch mal ausgegeben. Was da nicht
funktioniert ist mir schleierhaft, print_r($array[rows]) gibt ja 3 Elemente
aus (bei einem Array was laut print_r nur 1 Element enthält?)...

Ich denke wenn ich das verstanden habe bin ich schon einen großen Schritt
weiter. Wenn in dem Array das Element rows ein Array enthält, dann sollten
die Elemente bei print_r($array), wenn ich das Beispiel richtig verstehe
auch ausgegeben werden.


>>> Wenn du count auf das Ergebnis von "select count(*) ..." anwendest,
>>> bekommst du natürlich 1: EIN Ergebniswert, egal ob der jetzt 0, 1 oder
>>> 20 Millionen beträgt.
>>> Wenn du count auf das Ergebnis von "select * from ... where ..."
>>> anwendest, bekommst du als Ergebnis die Anzahl der gefundenen
>>> Datensätze.
>
>> Die MySQL-Abfrage klappt ja (mit SELECT COUNT(*) ... FROM ... ),
>
> Ja, das hat auch niemand bestritten. Der Aufruf ist aber überflüssig,
> wenn du eh alle Daten in ein Array packen läßt.
>
>> allerdings habe ich keine Ahnung ob mir die PHP-Funktion count()
>> das zurückliefert was ich haben möchte.
>
> Bei korrekter Benutzung schon.

Wieder ein Missverständniss... Das die Funktion count() nicht so
funktioniert, wie sie sollte das hatte ich erwähnt. Das ich für die
Anwendung von der PHP-Funktion count(), die Daten in einem Array haben muss
ist mir auch klar.

Damit sollte(!) die Funktion eigentlich auch das gewünschte Ergebniss
zurückgeben.


>>> Sorry, aber den Ablauf verstehe ich anhand der Beschreibung nicht.
>
>> Die id's der Produkte, die auf der Startseite angezeigt werden sollen,
>> wandern bei einem Klick auf den Submit-Button von Menu 1 ...
>
> Das ist für die Aufgabenstellung völlig irrelevant, da PHP bereits
> beendet ist, wenn die Seite beim Benutzer angekommen ist.
>
>> ... in eine von mir angelegte Tabelle. Dann prüfe ich deren Anzahl über
>> eine Abfrage der Elemente im Array (das speichere ich einfach in
>> einer Variable). Dann kann ich später die Elemente des Array in
>> das Dropdown-Menü einzeln als Option einlesen lassen.
>
> Wir reden von Web-Seiten und nicht von einem laufenden Anwendungspro-
> gramm. Das PHP-Skript erzeugt anhand von Eingabevariablen bestimmte
> Ausgaben, es geht also exakt um einen Ablauf für die Darstellung und
> nicht um die Interaktion über diverse Seitenaufrufe hinweg.

Also wie die Produkte dann auf die Startseite gelangen, wenn ich das nun
richtig verstanden habe? Wenn nicht bitte näher erläutern, ich weiß nicht
ob das wirklich mit 'Ablauf für die Darstellung' gemeint ist.

Die Produkte die auf der Startseite angezeigt werden sollen, stehen alle in
einer php-Seite die sich aus der Datenbank die einzelnen Einträge holt,
indem sie die eingetragenen id's in meiner Tabelle mit den id's in der
Tabelle mit den Produkten vergleicht (mit Bild, Beschreibung etc.) die dann
in eine HTML-Tabelle kommen.


>>> if (count($liste) >>> echo " >>> }
>
>> Falls mir count nicht die Anzahl der Elemente liefert (oder mache ich etwas
>> falsch?), werde ich wohl print_r benutzen.
>
> Und was machst du damit? Was interessiert den Benutzer die Ausgabe der
> Anzahl der Elemente eines internen Arrays?

Das mit print_r erhaltene Ergebnis muss ich ja nicht ausgeben. Es ist nur
für di Überprüfung Array <=8 da.


>> Wie schon gesagt bekomme ich ja
>> die richtige Anzahl von Elementen geliefert und frage diese auch mit if ab
>
> Du redest wieder vom Ergebnis der zweiten SQL-Abfrage?

Von der Abfrage mit print_r was ich evtl. einbauen werde, bzw. der
SQL-Abfrage.

>> Ich glaube auch das wir beide leider erfolgreich aneinander vorbei reden
>> :-( !?
>
> Yep.

....und hoffe nun tun wir es nicht mehr...

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 11:53:10 von Frank Schenk

Daniel Simon wrote:
> Hallo NG,
>
> Ich fange gerade mit PHP an und habe folgendes vor:
> Ich habe 2 Dropdown-Menüs mit Submit-Button. Wenn ich den Button von
> Dropdown-Menü eins drücke, dann wandert der ausgewählte Eintrag in das
> zweite Dropdownmenü.
>
> Nun will ich die Anzahl der Einträge im zweiten Dropdown-Menü auf 8
> begrenzen, weiß aber nicht wie (PHP-Abfrage oder mit MySQL-Statement)...
>

[...ganz viel mehr wirres zeug...]

Fassen wir zusammen:

- Daniel Simon hat keine Ahnung von PHP, MySQL und Javascript
- Daniel Simon hat einen Auftrag angenommen, der mit PHP, MySQL und ggf.
mit Javascript zu tun hat
- Daniel Simon weigert sich, irgendwelchen Quellcode zu posten
- Daniel kann nicht mit der PHP Dokumentation umgehen, google scheint
ihm fremd zu sein

Lösung:
- Ein paar der Hunderten von Tutorials durchlesen / nachvollziehen
- Ein Buch für Einsteiger kaufen
- Vorgesetzten / Mit-Azubi um Hilfe fragen

Lösungsansätze für dein Problem:

// $db ist die Instanz eines Database abstraction layers wie z.b. AdoDB
und verweist natürlich auf den entsprechenden Host/DB

$db->query("select count(*) as anz from myTable");
$db->next_record();
$x = $db->f('anz');
if( $x <= 8) {
/* code */
} else {
/* code */
}

oder

$arr_data = [Hash mit Daten]
$x = count($arr_data);
if( $x <= 8) {
/* code */
} else {
/* code */
}


Hartnäckig bist du ja Daniel, nun musst du nur deine Energie noch in die
richtige Richtung lenken.


gruß, Frank

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 12:52:46 von Fabian Schladitz

Daniel Simon schrieb:
> Thomas G. Liesner schrieb:
>=20
>>Daniel Simon schrieb:
>>
>>>Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschie=
d zu
>>>Count liegen soll, abgesehen von der Ausgabe.
>>
>>Wie kurz programmierst du erst, wenn du Ausgabefunktionen und Berech-
>>nungen für praktisch identisch hälst?
>=20
> Ich meine von der reinen Verwendung her. Intern ist es natürlich etwa=
s
> anderes. Aber print_r liefert mir die Anzahl der Elemente in meinem Arr=
ay
> und count() sollte das auch tun.

print_r($deinarray);
Gibt die Struktur und den Inhalt deines Arrays aus und dies sofort auf=20
STDOUT, falls du kein output_buffering verwendest.

$anzahl =3D count($deinarray);
Gibt die Anzahl von Elementen auf oberster Ebene zurück. Es gibt=20
_nichts_ aus, sondern sendet es an die Variable $anzahl.

Es ist ein signifikanter Unterschied zu erkennen, oder?

> Count soll meiner Meinung nach zählen und das kann man als Berechnung=

> ansehen (... +1 Element, +1 Element...), was es bei mir aber nicht tut.=


Versuch bitte folgenden Code zu verstehen und die Ausgaben nachzuvollzieh=
en:


$meinarray =3D array(1,2,3,4,5);
$meinarray =3D array(array(1,2,3,4,5));

echo '

';
print_r($meinarray);

echo '


Anzahl:'.count($meinarray);

$meinarray =3D array(array(1,2,3,4,5));

echo '
';
print_r($meinarray);

echo '


Anzahl:'.count($meinarray);
?>

Array
(
[0] =3D> Array
(
[0] =3D> 1
[1] =3D> 2
[2] =3D> 3
[3] =3D> 4
[4] =3D> 5
)

)



Anzahl:1

Array
(
[0] =3D> Array
(
[0] =3D> 1
[1] =3D> 2
[2] =3D> 3
[3] =3D> 4
[4] =3D> 5
)

)



Anzahl:1

>>>Um die Anzahl der Elemente auszugeben kann ich print_r benutzen,
>>
>>Und wie reagierst du dann auf diese Ausgabe?
>=20
> Indem ich dann prüfe ob der Rückgabewert >=3D meiner Variable $maxp=
roducts
> ist.

Die Referenz sagt, dass print_r nur Boolean zurückgibt. Was zum Henker =

TUST du da??

> Description
> bool print_r ( mixed expression [, bool return] )

> Die Produkte die auf der Startseite angezeigt werden sollen, stehen all=
e in
> einer php-Seite die sich aus der Datenbank die einzelnen Einträge hol=
t,
> indem sie die eingetragenen id's in meiner Tabelle mit den id's in der
> Tabelle mit den Produkten vergleicht (mit Bild, Beschreibung etc.) die =
dann
> in eine HTML-Tabelle kommen.

VERGLEICHT? Du machst keinen JOIN direkt im SQL um an die betreffenende=20
Daten zu kommen, sondern machst ein if()?

> Das mit print_r erhaltene Ergebnis muss ich ja nicht ausgeben. Es ist n=
ur
> für di Überprüfung Array <=3D8 da.

print_r gibt doch aber gleich aus, außer du machst einen Output Buffer =

drumherum... was aber hier Overkill wäre.

--=20
HTH,
Fabian

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 14:39:38 von Daniel Simon

Hallo Frank,

Frank Schenk schrieb:

> [...ganz viel mehr wirres zeug...]

Okay, dann will ich mal dazu Stellung nehmen...


> Fassen wir zusammen:
>
> - Daniel Simon hat keine Ahnung von PHP, MySQL und Javascript

Ich habe nicht gerade viel Ahnung, aber für meine Aufgaben scheint es zu
reichen.

> - Daniel Simon hat einen Auftrag angenommen, der mit PHP, MySQL und ggf.
> mit Javascript zu tun hat

Ja und bekomme nicht nur hier Hilfe...

> - Daniel Simon weigert sich, irgendwelchen Quellcode zu posten

.... den man nicht unbedingt verstehen wird, da ich die Funktionen des
Webshops benutze, da sie dazu da sind. Außerdem ging es mir Anfangs nur um
die Dropdownfelder, dieses Problem wurde gelöst und ich bin gerade dabei
die Umsetzung zu verbessern.

Aber bitte, vielleicht kennst du ja xt-commerce und kannst mit folgendem
Code etwas anfangen (ich weiß das er schlecht lesbar ist):


//wieviele Produkte maximal auf die Startseite dürfen
$maxproducts = 8;

require_once(DIR_FS_INC . 'xtc_db_query.inc.php');

//Datenbank ist durch connect bekannt, Tabelle steht in define-Datei
$wertecount="SELECT COUNT(*) AS rowcount FROM ".TABLE_FEATURED_PRODUCTS;

$werteabfrage = xtc_db_query($wertecount);

$rowcount = xtc_db_fetch_array($werteabfrage);
$rowsize = $rows[rowcount];

if ($rowsize<$maxproducts)
{

//eine Zeile
$featured_Products_Querry = "SELECT pd.products_id, pd.products_name FROM
products_description pd where pd.language_id = "
..$_SESSION['languages_id']." and pd.products_id not in (SELECT products_id
FROM featured_products) and pd.products_name <> '' ORDER BY
pd.products_name";


$result= xtc_db_query($featured_Products_Querry);

echo '';

echo '';
$rowsize = $rows[rowcount];
}
else
echo 'Es sollen nicht mehr als '.$maxproducts.'
Produkte auf der Startseite angezeigt werden!
';

*Und jetzt will ich hören das dich das weiterbringt...*

Der Quellcode ist natürlich nicht vollständig, aber das würde hier den
Rahmen sprengen.


> - Daniel kann nicht mit der PHP Dokumentation umgehen, google scheint
> ihm fremd zu sein

Eine Referenz benutzen zu *können* , setzt auch wohl etwas - ein bisschen
mehr Wissen vorraus, da sie zu kurzen Nachschlagen der Funktionsvielfalt
dient ohne Platz füllende lange Erklärungen.

Und Google? Man sucht dort nach was? Bei meinem Problem kannn mir Google
nicht weiterhelfen, da mein Problem ein spezifisches ist und als Anfänger
kann ich das für mich wichtige leider nicht aus irgendwelchen vielleicht
gerade noch ähnlichen Problemlösungen extrahiereren.


> Lösung:
> - Ein paar der Hunderten von Tutorials durchlesen / nachvollziehen

Die muss man auch erst mal finden. Was ich gefunden habe ist zum Beispiel
das Tutorial auf schattenbaum.net. Das Problem hierbei ist, das ich bei
meinem Problem halt nun mal speziellere Webseiten durchforsten müsste, um
dem Problem näher zu kommen. Dazu fehlt mir leider das Grundwissen, was ich
jetzt praktisch nebenbei vermittelt bekomme.


> - Ein Buch für Einsteiger kaufen

Wenn ich mir für alles in was ich nun erst mal bestenfalls reinschnuppere
(VBA, C, Java, MySQL, PHP...) ein Buch kaufe, dann wäre ich schnell arm.
Leider ist Literatur zu Programmiersprachen nicht gerade billig, auch wenn
Einsteigerbücher günstiger als weiterführende, spezielle Bücher sind.


> - Vorgesetzten / Mit-Azubi um Hilfe fragen

Das tue ich bereits, allerdings kann ich auch nicht gerade jedes Problem
hinterfragen. Manchmal muss ich halt auf andere Quellen zurückgreifen
können.


> Lösungsansätze für dein Problem:
>
> // $db ist die Instanz eines Database abstraction layers wie z.b. AdoDB
> und verweist natürlich auf den entsprechenden Host/DB
>
> $db->query("select count(*) as anz from myTable");
> $db->next_record();
> $x = $db->f('anz');
> if( $x <= 8) {
> /* code */
> } else {
> /* code */
> }

Das ich das bereits mache und nun verbessern will, indem ich das Array auf
seine Größe abfragen, nicht die DB hatte ich bereits geschreiben.


> oder
>
> $arr_data = [Hash mit Daten]
> $x = count($arr_data);
> if( $x <= 8) {
> /* code */
> } else {
> /* code */
> }

von Hash hatte ich schonmal was gehört...?


> Hartnäckig bist du ja Daniel, nun musst du nur deine Energie noch in die
> richtige Richtung lenken.

Muss ich ja wohl sein, wenn ich meine Ausbildung erfolgreich abschließen
möchte...

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 14:50:51 von Daniel Simon

Hallo Fabian,

Fabian Schladitz schrieb:

> Daniel Simon schrieb:

>> Irgendwo muss ich ja such meine Daten für das Array herbekommen. Und das
>> count($array) nicht das liefert was ich brauche habe ich auch schon
>> bemängelt.
>
> Dann verwendest du es einfach falsch. Sorry, dass ich das so hart sagen
> muss.
>
> Kannst du bitte folgendes liefern:
> - Codeausschnitt, wo du ein print_r($deinarray); echo count($deinarray);
> und ein var_dump($deinarray) machst
> - die dazugehörigen Ausgaben vollständig per Copy & Paste liefern

Also noch einmal:
Das Array sollte die Anzahl der in ihm befindlichen Elemente liefern

'.print_r($rows[rows],true).''; ?>
Ausgabe: 3

'; echo print_r($rows); echo ''; ?>
Ausgabe:
Array
(
[rows] => 1
)
1

Soetwas 'echo count($deinarray);' liefert mir '1'.

Und was var_dump betrifft, denke ich das ich nicht alle Funktionen Querfeld
durch probieren sollte, sondern erst wissen will, was sie bewirken, um zu
entscheiden ob eine Funktion "besser" ist als 'print_r....'.


>> Ich kann die Anzahl der Elemente in meinem Array mit der im OP genannten
>> Methode bekommen und muss nur noch das Array anstatt die Datenbank
>> abfragen, was ich, dank der Hilfe hier, jetzt alleine hinbekommen müsste.
>
> Du machst eine unnötige Datenbankabfrage. Es mag für jetzt gehen, wenn
> du dir so einen Mist aber angewöhnst wirst du nie guten Code schreiben.

Wenn du alles gelesen hättest, wäre dir ausgefallen, das ich gerade das
ändern will und mit dem nun hier bekommenen Antworten umsetzen werde.
--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 15:11:22 von Daniel Simon

Fabian Schladitz schrieb:

> Daniel Simon schrieb:
>> Thomas G. Liesner schrieb:
>>
>>>Daniel Simon schrieb:
>>>
>>>>Hab ich mir angesehen. Ich verstehe allerdings nicht wo der Unterschied zu
>>>>Count liegen soll, abgesehen von der Ausgabe.
>>>
>>>Wie kurz programmierst du erst, wenn du Ausgabefunktionen und Berech-
>>>nungen für praktisch identisch hälst?
>>
>> Ich meine von der reinen Verwendung her. Intern ist es natürlich etwas
>> anderes. Aber print_r liefert mir die Anzahl der Elemente in meinem Array
>> und count() sollte das auch tun.
>
> print_r($deinarray);
> Gibt die Struktur und den Inhalt deines Arrays aus und dies sofort auf
> STDOUT, falls du kein output_buffering verwendest.

und gibt auch 3 mit dem von mir genannten Code zurück.

> $anzahl = count($deinarray);
> Gibt die Anzahl von Elementen auf oberster Ebene zurück.
> Es gibt _nichts_ aus, sondern sendet es an die Variable $anzahl.

*Das* wollte ich wissen. Da mein Array aber wohl nach dem Schema
Array[[rows]=3] aufgebaut ist, kann ich ja nur 1 zurückbekommen, wenn ich
count() nutze.

> Es ist ein signifikanter Unterschied zu erkennen, oder?

Nun schon.

>> Count soll meiner Meinung nach zählen und das kann man als Berechnung
>> ansehen (... +1 Element, +1 Element...), was es bei mir aber nicht tut.
>
> Versuch bitte folgenden Code zu verstehen und die Ausgaben nachzuvollziehen:
>
> >
> $meinarray = array(1,2,3,4,5);
> $meinarray = array(array(1,2,3,4,5));
>
> echo '

';
> print_r($meinarray);
>
> echo '


Anzahl:'.count($meinarray);
>
> $meinarray = array(array(1,2,3,4,5));
>
> echo '
';
> print_r($meinarray);
>
> echo '


Anzahl:'.count($meinarray);
> ?>
>
> Array
> (
> [0] => Array
> (
> [0] => 1
> [1] => 2
> [2] => 3
> [3] => 4
> [4] => 5
> )
>
> )
>
>
>
> Anzahl:1
>
> Array
> (
> [0] => Array
> (
> [0] => 1
> [1] => 2
> [2] => 3
> [3] => 4
> [4] => 5
> )
>
> )
>
>
>
> Anzahl:1
>
>>>>Um die Anzahl der Elemente auszugeben kann ich print_r benutzen,
>>>
>>>Und wie reagierst du dann auf diese Ausgabe?
>>
>> Indem ich dann prüfe ob der Rückgabewert >= meiner Variable $maxproducts
>> ist.
>
> Die Referenz sagt, dass print_r nur Boolean zurückgibt. Was zum Henker
> TUST du da??

Ich stehe über der Funktion ;-)!? Wenn das wirklich so ist würde ich sagen
ich habe die Funktion überlistet?

Mal ehrlich: Ich habe wirklich nur den Code, den ich gepostet habe
eingegeben um diese Ausgabe zu bekommen?!


>> Description
>> bool print_r ( mixed expression [, bool return] )
>
>> Die Produkte die auf der Startseite angezeigt werden sollen, stehen alle in
>> einer php-Seite die sich aus der Datenbank die einzelnen Einträge holt,
>> indem sie die eingetragenen id's in meiner Tabelle mit den id's in der
>> Tabelle mit den Produkten vergleicht (mit Bild, Beschreibung etc.) die dann
>> in eine HTML-Tabelle kommen.
>
> VERGLEICHT? Du machst keinen JOIN direkt im SQL um an die betreffenende
> Daten zu kommen, sondern machst ein if()?

Natürlich nutze ich ein MySQL-Statement: SELECT ... from ... WHERE ... not
in (SELECT ... FROM ...)

Sieht zumindest so ähnlich aus.

>
>> Das mit print_r erhaltene Ergebnis muss ich ja nicht ausgeben. Es ist nur
>> für di Überprüfung Array <=8 da.
>
> print_r gibt doch aber gleich aus, außer du machst einen Output Buffer
> drumherum... was aber hier Overkill wäre.

Ist das so? Dann mache ich wohl irgendetwas anders. Denn ich muss ein echo
davorschreiben.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 15:31:22 von Frank Schenk

Hi Daniel,

das schaut doch garnicht so schlecht aus:

Daniel Simon wrote:
>
> if ($rowsize<$maxproducts)

// zuerst das killerkriterium
if($rowsize >= $maxproducts){
echo 'Es sollen nicht mehr als
'.$maxproducts.' Produkte auf der Startseite angezeigt werden!
';

} else {
// query absetzen und drop down ausgeben
$featured_Products_Querry = "SELECT pd.products_id, pd.products_name
...
// etc.
}

HTML in PHP ist übrigens nicht so prickelnd, besonders bei so riesigen
Projekten wie einem CMS. Falls das komplette CMS so aussieht wünsche ich
dir viel Spaß.

> $featured_Products_Querry = "SELECT pd.products_id, pd.products_name FROM
> products_description pd where pd.language_id = "
> .$_SESSION['languages_id']." and pd.products_id not in (SELECT products_id
> FROM featured_products) and pd.products_name <> '' ORDER BY
> pd.products_name";
>
>
> $result= xtc_db_query($featured_Products_Querry);
>
> echo '';
>
> echo '';
> $rowsize = $rows[rowcount];
> }
> else
> echo 'Es sollen nicht mehr als '.$maxproducts.'
> Produkte auf der Startseite angezeigt werden!
';
>
> *Und jetzt will ich hören das dich das weiterbringt...*

08/15 Standard PHP Code mit dem hier alle mehr oder minder täglich
arbeiten. Nicht besonders schön aber wer seinen Lebensunterhalt mit PHP
Programmierung verdient sollte sowas lesen können.

gruß, Frank

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 15:52:55 von Fabian Schladitz

Daniel Simon schrieb:
> Fabian Schladitz schrieb:
>>Daniel Simon schrieb:
>=20
>>>Irgendwo muss ich ja such meine Daten für das Array herbekommen. Und=
das
>>>count($array) nicht das liefert was ich brauche habe ich auch schon
>>>bemängelt.
>>
>>Dann verwendest du es einfach falsch. Sorry, dass ich das so hart sagen=
=20
>>muss.
>>
>>Kannst du bitte folgendes liefern:
>>- Codeausschnitt, wo du ein print_r($deinarray); echo count($deinarray)=
;=20
>>und ein var_dump($deinarray) machst
>>- die dazugehörigen Ausgaben vollständig per Copy & Paste liefern
>=20
>=20
> Also noch einmal:
> Das Array sollte die Anzahl der in ihm befindlichen Elemente liefern
>=20
> '.print_r($rows[rows],true).''; ?>
> Ausgabe: 3

Bezweifle ich. Zumindest sollte das

 auftauchen.

> '; echo print_r($rows); echo ''; ?>
> Ausgabe:
> Array
> (
> [rows] =3D> 1
> )
> 1

Ohne den zweiten Parameter macht print_r() sein echo selbst. Du brauchst =

da nix schreiben. Mach einfach:
echo '
';
print_r($rows);
echo '
';

>=20
> Soetwas 'echo count($deinarray);' liefert mir '1'.

Welches SELECT hast du da jetzt reingepumpt? Was ist das denn für ein A=
rray?

Dieses "rows" ist mir suspekt. Dein CMS scheint nicht einfach ein Array=20
von Ergebnissen zurückzugeben, wie man das vielleicht erwartet.

Wie greifst du auf die Rows zu?

> Und was var_dump betrifft, denke ich das ich nicht alle Funktionen Quer=
feld
> durch probieren sollte, sondern erst wissen will, was sie bewirken, um =
zu
> entscheiden ob eine Funktion "besser" ist als 'print_r....'.

Dann lies das Manual, maaaan!
http://de3.php.net/manual/en/function.var-dump.php

Ich will doch nicht dein System killen... ich versuche dir noch zu helfen=


Bitte Bitte nutze endlich Copy & Paste um die Ausgaben zu kopieren und=20
versuche, was ich dir schreiben.

--=20
HTH,
Fabian

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 15:55:29 von tgl

Daniel Simon schrieb:
> Aber bitte, vielleicht kennst du ja xt-commerce und kannst mit folgendem
> Code etwas anfangen (ich weiß das er schlecht lesbar ist):
[...]

Trivialcode.

Der Knackpunkt hier ist, daß du nicht ein Ergebnisarray bekommst,
sondern die Datensätze einzeln durchgehst und direkt Ausgaben erzeugst.

Umstellungsmöglichkeit: In der while-Schleife ein Array mit den
Datensätzen füllen, dann kannst du count auf dieses Array anwenden.
Falls die Daten in der Schleife nur für diese Liste gebraucht werden,
welche entfällt, wenn zuviele Einträge da sind, kannst du das so machen
(ungetesteter Code), dann entfällt der obere Bereich mit dem count(*)
komplett:

// Einlesen der Daten
$rows = array();
$result= xtc_db_query($featured_Products_Querry);
while(($obj = xtc_db_fetch_array($result))) {
$rows[] = $obj;
// Abrruch, wenn's zu viele werden
if (count($rows)>=$maxproducts) break;
}
// Ausgabe
if (count($rows)<$maxproducts) {
echo '';
...
} else {
... Code falls überschritten ...
}

> *Und jetzt will ich hören das dich das weiterbringt...*

Natürlich.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 16:10:16 von Daniel Simon

Frank Schenk schrieb:

> HTML in PHP ist übrigens nicht so prickelnd, besonders bei so riesigen
> Projekten wie einem CMS. Falls das komplette CMS so aussieht wünsche ich
> dir viel Spaß.

Wenn ich wüsste wie ich das ganze mit PHP mache, dann würde ich
wahrscheinlich auch damit umsetzen. Was ist denn an ein bisschen HTML so
schlimm? Es wurde mir nämlich hier auch geraten nicht vollständig auf PHP
zu setzen.


>> $featured_Products_Querry = "SELECT pd.products_id, pd.products_name FROM
>> products_description pd where pd.language_id = "
>> .$_SESSION['languages_id']." and pd.products_id not in (SELECT products_id
>> FROM featured_products) and pd.products_name <> '' ORDER BY
>> pd.products_name";
>>
>>
>> $result= xtc_db_query($featured_Products_Querry);
>>
>> echo '';
>>
>> echo '';
>> $rowsize = $rows[rowcount];
>> }
>> else
>> echo 'Es sollen nicht mehr als '.$maxproducts.'
>> Produkte auf der Startseite angezeigt werden!
';
>>
>> *Und jetzt will ich hören das dich das weiterbringt...*
>
> 08/15 Standard PHP Code mit dem hier alle mehr oder minder täglich
> arbeiten. Nicht besonders schön aber wer seinen Lebensunterhalt mit PHP
> Programmierung verdient sollte sowas lesen können.

Inahltlich sollte es ja auch mehr oder weniger verständlich sein allerdings
ist die Form hier nicht gerade lesefreundlich.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 01.12.2005 16:28:23 von Niels Braczek

Daniel Simon schrieb:

> $result= xtc_db_query($featured_Products_Querry);
>
> echo '';
>
> echo '';
> $rowsize = $rows[rowcount];
> }
> else
> echo 'Es sollen nicht mehr als '.$maxproducts.'
> Produkte auf der Startseite angezeigt werden!
';
>
> *Und jetzt will ich hören das dich das weiterbringt...*

Nattürlich. Man sieht sofort, dass dein HTML kaputt ist (zwischen
und gehört kein ). Aber das ist nicht dein
aktuelles Problem, sondern ein anderes, das du vielleicht noch gar nicht
bemerkt hast.

Außerdem sieht man, dass dein Error-reporting zu niedrig eingestellt
ist, denn sonnst hättest du mindestens zwei Notices bekommen.
Assoziative Indizes sind Strings und keine Konstanten, daher müssen sie
in Stringbegrenzer eingefasst werden.

Die xtc_*-Funktionen ähneln sehr stark den mysql_*-Funktionen. Das
verleitet mich zu der Annahme, dass es eine Funktion xtc_num_rows()
gibt, die die Anzahl der Datensätze des letzten SELECTs liefert.

$result = xtc_db_query($featured_Products_Query);
$numrows = xtc_num_rows($result);
if ($numrows>8) {
echo 'Es sollen nicht mehr als ',
$maxproducts,
' Produkte auf der Startseite angezeigt werden!
';
} else {
echo '';
if ($numrows<8) {
echo '';
}
}
?>

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 05.12.2005 08:36:33 von Daniel Simon

Fabian Schladitz schrieb:
> Daniel Simon schrieb:
>> Also noch einmal:
>> Das Array sollte die Anzahl der in ihm befindlichen Elemente liefern
>>
>> '.print_r($rows[rows],true).''; ?>
>> Ausgabe: 3
>
> Bezweifle ich. Zumindest sollte das

 auftauchen.

Nö, ich setze das
 zwischen 2 Hochkommas (ohne diese würde ich einen
parse error bekommen) und somit wird das Tag vom Browser als HTML-Code
akzeptiert.

Allerdings gibt es eine andere Ausgabe (auch ohne ausgegebnes
), wenn
ich eine eigene PHP-Seite schreibe. Warum die Ausgabe im Shop anders ist
weiß ich auch nicht.


>> '; echo print_r($rows); echo '
'; ?>
>> Ausgabe:
>> Array
>> (
>> [rows] => 1
>> )
>> 1
>
> Ohne den zweiten Parameter macht print_r() sein echo selbst. Du brauchst
> da nix schreiben. Mach einfach:
> echo '
';
> print_r($rows);
> echo '
';

Es funktioniert! Mit einem echo vor print_r bekomme ich dann nach der
Ausgabe des Arrays noch eine 1 geliefert.


>> Soetwas 'echo count($deinarray);' liefert mir '1'.
>
> Welches SELECT hast du da jetzt reingepumpt? Was ist das denn für ein Array?
>
> Dieses "rows" ist mir suspekt. Dein CMS scheint nicht einfach ein Array
> von Ergebnissen zurückzugeben, wie man das vielleicht erwartet.
>
> Wie greifst du auf die Rows zu?

Bei meiner PHP-Seite bekomme ich mit count und einem selbstdefinierten
Array die richtige Anzahl geliefert, im Shop funktioniert das allerdings
nicht.

Das rows hatte ich zur Unterscheidung von Array und Spalte in der DB in
rowcount umbenannt. rows heißt mein Array und rowcount ist der Eintrag im
Array mit dem Wert 1 (der Wert sollte eigentlich variabel sein).

Das SELECT verwende ich in diesem Fall so:
$Variable = "SELECT COUNT(*) AS rowcount FROM " . TABLE_FEATURED_PRODUCTS;

Also wenn ich das richtig verstanden habe gibt es in PHP keine richtigen
Arrays. Denn richtige Arrays haben einen Index (müssen ihn haben) und zu
diesem gehört/gehören ein oder mehrere Werte (ein- bzw. mehrdimensionales
Array).

Ist das so richtig?


>> Und was var_dump betrifft, denke ich das ich nicht alle Funktionen Querfeld
>> durch probieren sollte, sondern erst wissen will, was sie bewirken, um zu
>> entscheiden ob eine Funktion "besser" ist als 'print_r....'.
>
> Dann lies das Manual, maaaan!
> http://de3.php.net/manual/en/function.var-dump.php
>
> Ich will doch nicht dein System killen... ich versuche dir noch zu helfen.

Das hatte ich auch gar nicht so gemeint. Wenn du mir nicht helfen wolltest,
dann würdest du wahrscheinlich gar nicht mehr antworten. Ich wollte halt
nur eine kurze Erklärung was Funktion xyz anders macht als Funktion abc.

So wie es ausschaut macht var_dump() nichts anderes als print_r, mit der
Ausnahme der Datentypangabe!?

Es ist einfach nur so das ihr zu schnell antwortet und ich mit dem testen
und herumexperimentieren mit euren Antworten nicht mehr nachkomme ;-).


> Bitte Bitte nutze endlich Copy & Paste um die Ausgaben zu kopieren und
> versuche, was ich dir schreiben.

Die lokale Kopie bei mir bin ich gerade am ändern, aber wenn diese wieder
zur Verfügung steht, dann werde ich mal die Ausgaben vom Shop per Copy &
Paste hier einfügen.

--
Gruß Daniel

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 05.12.2005 12:35:45 von tgl

Daniel Simon schrieb:
> Also wenn ich das richtig verstanden habe gibt es in PHP keine richtigen
> Arrays. Denn richtige Arrays haben einen Index (müssen ihn haben) und zu
> diesem gehört/gehören ein oder mehrere Werte (ein- bzw. mehrdimensionales
> Array).
> Ist das so richtig?

Nein. Eigentlich sogar komplett falsch.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Webshop (was: Anzahl der Dpopdownfeld-Element begrenzen)

am 13.12.2005 14:14:46 von Daniel Simon

Nochmal ein Hallo,

So ich habe mal einen neuen Thread erstellt, der alte wurde langsam etwas
unübersichtlich. Ich habe hier mal die Posts gesammelt, bei denen ich
Klärungsbedarf sah, aber vielleicht habe ich ja auch etwas vergessen.

-----Post 1-----

Niels Braczek schrieb:

> Daniel Simon schrieb:
>
>> $result= xtc_db_query($featured_Products_Querry);
>>
>> echo '';
>>
>> echo '';
>> $rowsize = $rows[rowcount];
>> }
>> else
>> echo 'Es sollen nicht mehr als '.$maxproducts.'
>> Produkte auf der Startseite angezeigt werden!
';
>>
>> *Und jetzt will ich hören das dich das weiterbringt...*
>
> Nattürlich. Man sieht sofort, dass dein HTML kaputt ist (zwischen
> und gehört kein ). Aber das ist nicht dein
> aktuelles Problem, sondern ein anderes, das du vielleicht noch gar nicht
> bemerkt hast.

Das ist ein Problem das entsteht, wenn man nur Codeschnipsel postet :-D.
Ich habe ein auch ein -Anfangstag und -Schlusstag zu den
bemängelten freistehenden gesetzt. Das mit der Tabelle
funktioniert auch alles einwandfrei, da hab ich kein Problem mit.

> Außerdem sieht man, dass dein Error-reporting zu niedrig eingestellt
> ist, denn sonnst hättest du mindestens zwei Notices bekommen.
> Assoziative Indizes sind Strings und keine Konstanten, daher müssen sie
> in Stringbegrenzer eingefasst werden.

assoziative Indizies? Strings <-> Stringbegrenzer?
Leider kann ich da nicht folgen. Was ist ein Stringbegrenzer und warum
brauche ich ihn? Was tut dieser?

Heißt das im Umkehrschluss, dass in einem Array in dem die Indizies Integer
sind diese Zahlen alle Konstanten sind?

Auf was wolltest hinaus?

> Die xtc_*-Funktionen ähneln sehr stark den mysql_*-Funktionen. Das
> verleitet mich zu der Annahme, dass es eine Funktion xtc_num_rows()
> gibt, die die Anzahl der Datensätze des letzten SELECTs liefert.

Ich nehme an, die xtc-Funktionen ähneln den MySQL-/PHP-Funktionen wohl
deshalb so stark, damit jemand der sich mit PHP auskennt, nicht noch mit
irgendwelchen Eigenheiten des Shop rumschlagen muss.

Ich kann mir aber eine xtc_num_rows-Funktion im Shop nicht vorstellen, mir
fällt auch kein Einsatzgebiet (außer meins) ein, indem man die Anzahl der
Elemente in einem Array zählen müsste. Aber vielleicht kannst du mir ja
sagen, in welchen Fall man so etwas in einem Webshop einsetzen könnte und
ich kann dann schauen ob der Shop so etwas bietet.


> > $result = xtc_db_query($featured_Products_Query);
> $numrows = xtc_num_rows($result);
> if ($numrows>8) {
> echo 'Es sollen nicht mehr als ',
> $maxproducts,
> ' Produkte auf der Startseite angezeigt werden!
';
> } else {
> echo '';
> if ($numrows<8) {
> echo '';
> }
> }
> ?>

Da die xtc-Funktionen aber letztendlich auch PHP- oder MySQL-Funktionen
sind frage ich mich ob dein Code darauf hinauszielt eine Abfrage mit PHP
oder eine MySQL zu machen?

Momentan nutze ich die von mir geschriebene SQL-Abfrage + Shopfunktion zum
Einlesen von Datenbankeinträgen in ein Array, um das gewünschte Ergebnis
geliefert zu bekommen, die ich ja schon gepostet habe. Ich mache das ganze
in der Reihenfolge:

1.Prüfen (Variablenübermittlung mit GET-Methode) ob ein Wert übergeben wird
und diesen eventuell (wenn Tabelle Startseitenprodukte nicht >8)
hinzufügen oder aus der Tabelle enfernen.
2.Wenn die Tabelle>=8 ist nur noch ein löschen erlauben.
3.Schreiben der Tabellengröße in eine Variable.

$wertecount = "SELECT COUNT(*) AS rowcount FROM ".TABLE_FEATURED_PRODUCTS;

$werteabfrage = xtc_db_query($wertecount);

$rows = xtc_db_fetch_array($werteabfrage);

$rowsize = $rows[rowcount];

-----Post 2-----

Daniel Simon schrieb:

> Fabian Schladitz schrieb:
>>
>> print_r($deinarray);
>> Gibt die Struktur und den Inhalt deines Arrays aus und dies sofort auf
>> STDOUT, falls du kein output_buffering verwendest.
>
> und gibt auch 3 mit dem von mir genannten Code zurück.
>

NUN gibt es mir die Struktur wieder. Was auch immer ich vorher getan habe,
funktioniert nun nicht mehr.

>> Versuch bitte folgenden Code zu verstehen und die Ausgaben nachzuvollziehen:
>>
>> >>
>> $meinarray = array(1,2,3,4,5);
>> $meinarray = array(array(1,2,3,4,5));

Zuerst wird ein Array in die Variable $meinarray geschrieben, dann wird
diese Variable überschrieben. In dem Array der Variable ist nun ein
weiteres Array mit 5 Werten.

>> echo '

';
>> print_r($meinarray);

Die Variable mit Array im Array und den Werten wird ausgegeben.

>> echo '


Anzahl:'.count($meinarray);

Nun wird gezählt wieviele Elemente sich auf oberster Ebene des Array
befinden (1, nämlich das andere Array).

Das hab ich nun wohl verstanden.

>> Die Referenz sagt, dass print_r nur Boolean zurückgibt. Was zum Henker
>> TUST du da??
>
> Ich stehe über der Funktion ;-)!? Wenn das wirklich so ist würde ich sagen
> ich habe die Funktion überlistet?
>
> Mal ehrlich: Ich habe wirklich nur den Code, den ich gepostet habe
> eingegeben um diese Ausgabe zu bekommen?!

print_r gibt wie du schon gesagt hast die Struktur aus und die ist für mich
kein Boolean.

Ich bekomme jetzt was anderes wie vorher und habe es auch nicht geschafft
diesen Fehler zu reproduzieren.

Aber nun sollte ich wissen wie es geht.

>>> Description
>>> bool print_r ( mixed expression [, bool return] )
>>
>>> Die Produkte die auf der Startseite angezeigt werden sollen, stehen alle in
>>> einer php-Seite die sich aus der Datenbank die einzelnen Einträge holt,
>>> indem sie die eingetragenen id's in meiner Tabelle mit den id's in der
>>> Tabelle mit den Produkten vergleicht (mit Bild, Beschreibung etc.) die dann
>>> in eine HTML-Tabelle kommen.
>>
>> VERGLEICHT? Du machst keinen JOIN direkt im SQL um an die betreffenende
>> Daten zu kommen, sondern machst ein if()?
>
> Natürlich nutze ich ein MySQL-Statement: SELECT ... from ... WHERE ... not
> in (SELECT ... FROM ...)
>
> Sieht zumindest so ähnlich aus.

Jetzt wo ich auch weiß was ein join ist kann ich sagen: Nein, ich mache
überhaupt keinen JOIN und ich mache auch kein if (noch nicht).

Ich schreibe die Werte alle in eine neue Tabelle.

Wieso sollte ich einen JOIN machen? Wo oder wie sollte ich die Produkte
speichern die Auf die Startseite sollen?


>>> Das mit print_r erhaltene Ergebnis muss ich ja nicht ausgeben. Es ist nur
>>> für di Überprüfung Array <=8 da.
>>
>> print_r gibt doch aber gleich aus, außer du machst einen Output Buffer
>> drumherum... was aber hier Overkill wäre.
>
> Ist das so? Dann mache ich wohl irgendetwas anders. Denn ich muss ein echo
> davorschreiben.

Was ist ein Output Buffer? Ich lese übrigens die Anzahl der Elemente in das
Array ein, nicht die Elemente an sich. Daher hilft mir ein Count auch nicht
weiter da mein Array so aussieht (print_r):

Array ( [rowcount] => 7 )


-----Post 3-----

Thomas G. Liesner schrieb:

> Der Knackpunkt hier ist, daß du nicht ein Ergebnisarray bekommst,
> sondern die Datensätze einzeln durchgehst und direkt Ausgaben erzeugst.

Ich glaube das tue ich doch, sieht zumindest ähnlich wie dein Code aus.

> Umstellungsmöglichkeit: In der while-Schleife ein Array mit den
> Datensätzen füllen, dann kannst du count auf dieses Array anwenden.
> Falls die Daten in der Schleife nur für diese Liste gebraucht werden,
> welche entfällt, wenn zuviele Einträge da sind, kannst du das so machen
> (ungetesteter Code), dann entfällt der obere Bereich mit dem count(*)
> komplett:
>
> // Einlesen der Daten
> $rows = array();
> $result= xtc_db_query($featured_Products_Querry);
> while(($obj = xtc_db_fetch_array($result))) {
> $rows[] = $obj;

Das Array enthält nun also die Werte aus der Datenbank und liegt
mehrdimensional vor. Ich greife mit $obj[wasauchimmer] auf die Spalte
wasauchimmer zu

> // Abrruch, wenn's zu viele werden
> if (count($rows)>=$maxproducts) break;
> }
> // Ausgabe
> if (count($rows)<$maxproducts) {
> echo '';
> ...
> } else {
> ... Code falls überschritten ...
> }

Falls $maxproducts überschritten ist, wird "'Es sollen nicht mehr als
'.$maxproducts.' Produkte auf der Startseite sein!'" angezeigt.

Wie schon gesagt sieht der Code ähnlich wie meiner (den ich ja auch vorher
gepostet hatte) aus, ist auch ein bisschen kompakter, aber die große
Veränderung sehe ich leider nicht.
--
Gruß Daniel

Re: Webshop

am 13.12.2005 16:10:29 von Frank Schenk

Daniel Simon wrote:
> Nochmal ein Hallo,
>
> So ich habe mal einen neuen Thread erstellt, der alte wurde langsam etwas
> unübersichtlich. Ich habe hier mal die Posts gesammelt, bei denen ich
> Klärungsbedarf sah, aber vielleicht habe ich ja auch etwas vergessen.

Es gibt im Usenet keine Threads (auch wenn dank Message ID und Usenet
Viewern die diese Message ID auswerten und eine Threadartige Darstellung
erlauben). Und ne neue Message ID hast auch nicht.


> Das ist ein Problem das entsteht, wenn man nur Codeschnipsel postet :-D.
> Ich habe ein auch ein -Anfangstag und -Schlusstag zu den
> bemängelten freistehenden gesetzt. Das mit der Tabelle
> funktioniert auch alles einwandfrei, da hab ich kein Problem mit.

Nein, dein HTML ist kaputt.



ist kein valides HTML.

> assoziative Indizies? Strings <-> Stringbegrenzer?
> Leider kann ich da nicht folgen. Was ist ein Stringbegrenzer und warum
> brauche ich ihn? Was tut dieser?

Stell halt dein error_reporting entsprechend ein.

$hsh[xy] -> PHP versucht die Konstante xy zu finden, da es gutmütig ist
und die Konstanze nicht existiert nimmt PHP einfach mal an, daß du zu
doof warst, zwei Anführungszeichen um xy zu setzen. Richtig ist aber
$hsh['xy'] oder auch $hsh["xy"]

> Heißt das im Umkehrschluss, dass in einem Array in dem die Indizies Integer
> sind diese Zahlen alle Konstanten sind?

Siehe Doku zu Konstanten und Arrays.

> Ich nehme an, die xtc-Funktionen ähneln den MySQL-/PHP-Funktionen wohl
> deshalb so stark, damit jemand der sich mit PHP auskennt, nicht noch mit
> irgendwelchen Eigenheiten des Shop rumschlagen muss.

Letzten Endes ist es aber egal da du dich offentsichtlich weder mit PHP
noch mit MySQL noch mit dem Shop auskennst. Du solltest dir ein Buch
kaufen und mit >echo "Hallo Welt"; anfangen. Oder entsprechende
Tutorials lesen. Und recherchieren sowie den Umgang mit Dokumentationen
lernen.

> Ich kann mir aber eine xtc_num_rows-Funktion im Shop nicht vorstellen, mir
> fällt auch kein Einsatzgebiet (außer meins) ein, indem man die Anzahl der
> Elemente in einem Array zählen müsste. Aber vielleicht kannst du mir ja
> sagen, in welchen Fall man so etwas in einem Webshop einsetzen könnte und
> ich kann dann schauen ob der Shop so etwas bietet.

s.o., erinnert an http://www.develnet.org/306.html

> Da die xtc-Funktionen aber letztendlich auch PHP- oder MySQL-Funktionen
> sind frage ich mich ob dein Code darauf hinauszielt eine Abfrage mit PHP
> oder eine MySQL zu machen?

MySQL ist das DBMS, PHP ist die Scriptsprache, die, entsprechend
kompiliert, die MySQL API beinhaltet, die ermöglicht, Abfragen an ein
MySQL DBMS abzusetzen.

> Momentan nutze ich die von mir geschriebene SQL-Abfrage + Shopfunktion zum
> Einlesen von Datenbankeinträgen in ein Array, um das gewünschte Ergebnis
> geliefert zu bekommen, die ich ja schon gepostet habe. Ich mache das ganze
> in der Reihenfolge:
....
> $wertecount = "SELECT COUNT(*) AS rowcount FROM ".TABLE_FEATURED_PRODUCTS;
> $werteabfrage = xtc_db_query($wertecount);
> $rows = xtc_db_fetch_array($werteabfrage);
> $rowsize = $rows[rowcount];

Schaut doch gut aus (bis auf Punkt assoziative Arrays und Konstanten.

>>Fabian Schladitz schrieb:
>>
>>>print_r($deinarray);
>>>Gibt die Struktur und den Inhalt deines Arrays aus und dies sofort auf
>>>STDOUT, falls du kein output_buffering verwendest.
>>
>>und gibt auch 3 mit dem von mir genannten Code zurück.

Du hast nicht verstanden, was print_r() oder var_dump() machen und wozu
sie da sind. Bitte konsultiere das Handbuch.

> NUN gibt es mir die Struktur wieder. Was auch immer ich vorher getan habe,
> funktioniert nun nicht mehr.

Das wundert niemanden mehr und was du vorher auch immer getan hast - es
war nur ein raten.

> Was ist ein Output Buffer?

Ins Handbuch ist vermutlich zuviel verlangt?

> Ich lese übrigens die Anzahl der Elemente in das
> Array ein, nicht die Elemente an sich. Daher hilft mir ein Count auch nicht
> weiter da mein Array so aussieht (print_r):
>
> Array ( [rowcount] => 7 )

Das passt ja nun auch


So, und nun hab ich keine Lust mehr, lerns halt von der Pike auf und
lerne google[tm], handbuch[tm], www.php-faq.de zu benutzen und zu
recherchieren.

gruß, Frank

Re: Webshop

am 13.12.2005 22:40:04 von tgl

Daniel Simon schrieb:
> Thomas G. Liesner schrieb:
>> Der Knackpunkt hier ist, daß du nicht ein Ergebnisarray bekommst,
>> sondern die Datensätze einzeln durchgehst und direkt Ausgaben erzeugst.

> Ich glaube das tue ich doch, sieht zumindest ähnlich wie dein Code aus.

Wenn dir beim Programmieren "Ähnlichkeit" reicht, wirst du noch viele
Probleme kriegen. Aber wenn's klappt, wie du willst, sei froh. Du wirst
hier wohl kaum noch viel Hilfe kriegen bei deiner bisherigen Art.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Webshop

am 14.12.2005 09:41:57 von Daniel Simon

Frank Schenk schrieb:

> Daniel Simon wrote:
>> Nochmal ein Hallo,
>>
>> So ich habe mal einen neuen Thread erstellt, der alte wurde langsam etwas
>> unübersichtlich. Ich habe hier mal die Posts gesammelt, bei denen ich
>> Klärungsbedarf sah, aber vielleicht habe ich ja auch etwas vergessen.
>
> Es gibt im Usenet keine Threads (auch wenn dank Message ID und Usenet
> Viewern die diese Message ID auswerten und eine Threadartige Darstellung
> erlauben). Und ne neue Message ID hast auch nicht.

Ich meinte Post... Aber wieso sollte ich keine neue MID haben?


>> Das ist ein Problem das entsteht, wenn man nur Codeschnipsel postet :-D.
>> Ich habe ein auch ein -Anfangstag und -Schlusstag zu den
>> bemängelten freistehenden gesetzt. Das mit der Tabelle
>> funktioniert auch alles einwandfrei, da hab ich kein Problem mit.
>
> Nein, dein HTML ist kaputt.
>
>
>
> ist kein valides HTML.


Deshalb schreibe ich ja auch zuerst ein Anfangstag und *dann* ein
Schlusstag ! Das ein -Tag Bestandteil einer Tabelle ist weiß ich
auch, ebenso das das ca so aussieht:









>> assoziative Indizies? Strings <-> Stringbegrenzer?
>> Leider kann ich da nicht folgen. Was ist ein Stringbegrenzer und warum
>> brauche ich ihn? Was tut dieser?
>
> Stell halt dein error_reporting entsprechend ein.
>
> $hsh[xy] -> PHP versucht die Konstante xy zu finden, da es gutmütig ist
> und die Konstanze nicht existiert nimmt PHP einfach mal an, daß du zu
> doof warst, zwei Anführungszeichen um xy zu setzen. Richtig ist aber
> $hsh['xy'] oder auch $hsh["xy"]

Okay, hab ich korrigiert.


>> Heißt das im Umkehrschluss, dass in einem Array in dem die Indizies Integer
>> sind diese Zahlen alle Konstanten sind?
>
> Siehe Doku zu Konstanten und Arrays.

Naja, ich nehme es an das es so ist, wegen CASE_UPPER(integer) und
CASE_LOWER(integer).


>> Ich nehme an, die xtc-Funktionen ähneln den MySQL-/PHP-Funktionen wohl
>> deshalb so stark, damit jemand der sich mit PHP auskennt, nicht noch mit
>> irgendwelchen Eigenheiten des Shop rumschlagen muss.
>
> Letzten Endes ist es aber egal da du dich offentsichtlich weder mit PHP
> noch mit MySQL noch mit dem Shop auskennst. Du solltest dir ein Buch
> kaufen und mit >echo "Hallo Welt"; anfangen. Oder entsprechende
> Tutorials lesen. Und recherchieren sowie den Umgang mit Dokumentationen
> lernen.

Wenn ich öfter mit PHP zu tun haben werde, dann werde ich das auch tun.
Vorher muss ich mir halt genügend Tutorials aus dem Internet
zusammensuchen.


>> Ich kann mir aber eine xtc_num_rows-Funktion im Shop nicht vorstellen, mir
>> fällt auch kein Einsatzgebiet (außer meins) ein, indem man die Anzahl der
>> Elemente in einem Array zählen müsste. Aber vielleicht kannst du mir ja
>> sagen, in welchen Fall man so etwas in einem Webshop einsetzen könnte und
>> ich kann dann schauen ob der Shop so etwas bietet.
>
> s.o., erinnert an http://www.develnet.org/306.html

Die Feststellen der Notwendigkeit von solch einer Funktion hat meiner
Meinung nach nicht unbedingt etwas mit der Programmierung zu tun, aber ich
denke ein Programmierer mit mehr Erfahrung käme schneller auf einen
Verwendungszweck für diese Funktion wie ich.


>> Da die xtc-Funktionen aber letztendlich auch PHP- oder MySQL-Funktionen
>> sind frage ich mich ob dein Code darauf hinauszielt eine Abfrage mit PHP
>> oder eine MySQL zu machen?
>
> MySQL ist das DBMS, PHP ist die Scriptsprache, die, entsprechend
> kompiliert, die MySQL API beinhaltet, die ermöglicht, Abfragen an ein
> MySQL DBMS abzusetzen.

Jetzt weiß ich genausoviel wie vorher auch schon. Was ich meinte war, ob
die Datenbank auf die Größe ihrer Elemente abgefragt wird oder ob das Array
(das ich aus Datenbankeinträgen generiert habe) abgefragt wird.


>> Momentan nutze ich die von mir geschriebene SQL-Abfrage + Shopfunktion zum
>> Einlesen von Datenbankeinträgen in ein Array, um das gewünschte Ergebnis
>> geliefert zu bekommen, die ich ja schon gepostet habe. Ich mache das ganze
>> in der Reihenfolge:
> ...
>> $wertecount = "SELECT COUNT(*) AS rowcount FROM ".TABLE_FEATURED_PRODUCTS;
>> $werteabfrage = xtc_db_query($wertecount);
>> $rows = xtc_db_fetch_array($werteabfrage);
>> $rowsize = $rows[rowcount];
>
> Schaut doch gut aus (bis auf Punkt assoziative Arrays und Konstanten.
>
>>>Fabian Schladitz schrieb:
>>>
>>>>print_r($deinarray);
>>>>Gibt die Struktur und den Inhalt deines Arrays aus und dies sofort auf
>>>>STDOUT, falls du kein output_buffering verwendest.
>>>
>>>und gibt auch 3 mit dem von mir genannten Code zurück.
>
> Du hast nicht verstanden, was print_r() oder var_dump() machen und wozu
> sie da sind. Bitte konsultiere das Handbuch.

Ich hatte vorher, aus welchem Grund auch immer, etwas anderes erhalten als
die Funktion eigentlich zurückliefern sollte.

Aber um auf dei Unterschiede von

print_r soll Variableninformationen liefern...

Array
(
[a] => Apfel
[b] => Banane
[c] => Array
(
[0] => x
[1] => y
[2] => z
)
)

und vardump soll die Variable mit Werten und Typeninformationen liefern
(mit
 (wenn ich den Abschlusstag nicht erwähne, meinst du
bestimmt wieder, dass mein HTML ist kaputt ist ;-) oder traust du mir die
Verwendung und Unterscheidung von Anfangs- und Schlusstags nun zu?)
formatiert)

array(3)
{
["a"]=> string(5) "Apfel"
["b"]=> string(6) "Banane"
["c"]=> array(3)
{
[0]=> string(1) "x"
[1]=> string(1) "y"
[2]=> string(1) "z"
}
}

Ich weiß nicht warum du vermutest, das ich es nicht verstanden habe, denn
die Unterschiede sind ja ziemlich offensichtlich.


>> NUN gibt es mir die Struktur wieder. Was auch immer ich vorher getan habe,
>> funktioniert nun nicht mehr.
>
> Das wundert niemanden mehr und was du vorher auch immer getan hast - es
> war nur ein raten.

Copy & Paste = Raten?


>> Ich lese übrigens die Anzahl der Elemente in das
>> Array ein, nicht die Elemente an sich. Daher hilft mir ein Count auch nicht
>> weiter da mein Array so aussieht (print_r):
>>
>> Array ( [rowcount] => 7 )
>
> Das passt ja nun auch
>
> So, und nun hab ich keine Lust mehr, lerns halt von der Pike auf und
> lerne google[tm], handbuch[tm], www.php-faq.de zu benutzen und zu
> recherchieren.

Ja ich werde meinen baldigen Urlaub auch mal dazu nutzen um etwas PHP,
MySQL etc. zu lernen. Dann werde ich hoffentlich zumindest das wissen, was
ich für diese Aufgaben brauche.

Dankeschön nochmal.

--
Gruß Daniel

Re: Webshop

am 14.12.2005 09:49:36 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Thomas G. Liesner schrieb:
>>> Der Knackpunkt hier ist, daß du nicht ein Ergebnisarray bekommst,
>>> sondern die Datensätze einzeln durchgehst und direkt Ausgaben erzeugst.
>
>> Ich glaube das tue ich doch, sieht zumindest ähnlich wie dein Code aus.
>
> Wenn dir beim Programmieren "Ähnlichkeit" reicht, wirst du noch viele
> Probleme kriegen. Aber wenn's klappt, wie du willst, sei froh. Du wirst
> hier wohl kaum noch viel Hilfe kriegen bei deiner bisherigen Art.

Ich glaube ich werde zuerst in meinem Urlaub mal etwas PHP lernen.
Wenn ich dich / euch zu sehr genervt habe dann tut es mir leid, aber ich
danke euch noch mal für eure Geduld mit mir.

--
Gruß Daniel

Re: Webshop

am 14.12.2005 13:52:34 von tgl

Daniel Simon schrieb:
> Ich glaube ich werde zuerst in meinem Urlaub mal etwas PHP lernen.

Dringend zu empfehlen.

> Wenn ich dich / euch zu sehr genervt habe dann tut es mir leid, aber ich
> danke euch noch mal für eure Geduld mit mir.

Kein Problem, niemand muss antworten, ich hatte nur das Gefühl, daß der
Lernerfolg auf deiner Seite sich in recht kleinen Grenzen hielt, und
dafür war der Aufwand eigentlich zu hoch.

So long,
Thomas G. Liesner
--
----------------- Neue Hamster-stable 2.1.0.0 seit 3.10.2005 -----------------
Ich suche eine neue Vollzeitarbeitsstelle als Softwareentwickler (Schwerpunkt
Windows) entweder im weiteren Umkreis von Münster (Westfalen) oder in Heim-
arbeit. Details: http://www.tglsoft.de

Re: Webshop

am 14.12.2005 16:42:21 von Daniel Simon

Thomas G. Liesner schrieb:

> Daniel Simon schrieb:
>> Wenn ich dich / euch zu sehr genervt habe dann tut es mir leid, aber ich
>> danke euch noch mal für eure Geduld mit mir.
>
> Kein Problem, niemand muss antworten, ich hatte nur das Gefühl, daß der
> Lernerfolg auf deiner Seite sich in recht kleinen Grenzen hielt, und
> dafür war der Aufwand eigentlich zu hoch.

Ja ich sollte wirklich erst mal die Grundlagen pauken, damit ich nicht jede
Antwort gleich noch einmal hinterfragen muss, ich sehe ja selbst wie
langsam ich dadurch vorankomme...
--
Gruß Daniel

Re: Webshop

am 16.12.2005 10:01:15 von Daniel Simon

Hallo Frank,

Frank Schenk schrieb:

> Stell halt dein error_reporting entsprechend ein.

Also in der php.ini und php5.ini steht bei mir:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

Dort steht ja auch:
; E_ALL - All errors and warnings (doesn't include E_STRICT)
; E_STRICT - run-time notices, enable to have PHP suggest changes
; to your code which will ensure the best interoperability
; and forward compatibility of your code

Was mache ich also falsch, wenn der Fehler im Code (kein Stringbegrenzer)
bei mir nun nicht angezeigt wird?
--
Gruß Daniel

Re: Webshop

am 16.12.2005 13:01:59 von Fabian Schladitz

Daniel Simon schrieb:
> Frank Schenk schrieb:
>> Stell halt dein error_reporting entsprechend ein.
>=20
> Also in der php.ini und php5.ini steht bei mir:
>=20
> error_reporting =3D E_ALL & ~E_NOTICE & ~E_STRICT
>=20
> Dort steht ja auch: ; E_ALL - All errors and warnings (doesn't=20
> include E_STRICT) ; E_STRICT - run-time notices, enable to have PHP=20
> suggest changes ; to your code which will ensure the best=20
> interoperability ; and forward compatibility of your code
>=20
> Was mache ich also falsch, wenn der Fehler im Code (kein=20
> Stringbegrenzer) bei mir nun nicht angezeigt wird?

[ ] du hast das Manual zum Thema Error Reporting gelesen

Schau mal in http://de.php.net/manual/en/ref.errorfunc.php dort steht
folgendes:

> Note: In PHP 5 a new error level E_STRICT is available. As E_STRICT=20
> is not included within E_ALL you have to explicitly enable this kind=20
> of error level. Enabling E_STRICT during development has some=20
> benefits. STRICT messages will help you to use the latest and=20
> greatest suggested method of coding, for example warn you about using
> deprecated functions.

Du hast das E_STRICT jedoch explizit _ab_geschaltet. Siehe dazu auch:
http://de.php.net/manual/en/ref.errorfunc.php#errorfunc.cons tants

> You can use the bitwise operators to combine these values or mask
> out certain types of errors. Note that only '|', '~', '!', '^' and
> '&' will be understood within php.ini, however, and that no bitwise
> operators will be understood within php3.ini.


Ich hoffe, du weißt jetzt, was du tun musst.

--=20
HTH,
Fabian

Re: Webshop

am 19.12.2005 08:33:50 von Daniel Simon

Hallo Fabian,

Fabian Schladitz schrieb:

> Daniel Simon schrieb:
>>
>> Also in der php.ini und php5.ini steht bei mir:
>>
>> error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
>>
>> Dort steht ja auch:
>> ; E_ALL - All errors and warnings (doesn't include E_STRICT)
>> ; E_STRICT - run-time notices, enable to have PHP suggest changes
>> ; to your code which will ensure the best interoperability
>> ; and forward compatibility of your code
>>
>> Was mache ich also falsch, wenn der Fehler im Code (kein
>> Stringbegrenzer) bei mir nun nicht angezeigt wird?
>
> [ ] du hast das Manual zum Thema Error Reporting gelesen
>
> Schau mal in http://de.php.net/manual/en/ref.errorfunc.php dort steht
> folgendes:
>
>> Note: In PHP 5 a new error level E_STRICT is available. As E_STRICT
>> is not included within E_ALL you have to explicitly enable this kind
>> of error level. Enabling E_STRICT during development has some
>> benefits. STRICT messages will help you to use the latest and
>> greatest suggested method of coding, for example warn you about using
>> deprecated functions.
>
> Du hast das E_STRICT jedoch explizit _ab_geschaltet. Siehe dazu auch:
> http://de.php.net/manual/en/ref.errorfunc.php#errorfunc.cons tants

Ja mit ~. Allerdings funktioniert es auch ohne Tilde nicht. Sollte dann
doch eigentlich funktionieren?!

>> You can use the bitwise operators to combine these values or mask
>> out certain types of errors. Note that only '|', '~', '!', '^' and
>> '&' will be understood within php.ini, however, and that no bitwise
>> operators will be understood within php3.ini.
>
> Ich hoffe, du weißt jetzt, was du tun musst.

Um E_ALL und E_STRICT verwenden zu können müsste ich doch folgendes
schreiben können:
error_reporting = E_ALL & E_NOTICE & E_STRICT

--
Gruß Daniel

Re: Webshop

am 19.12.2005 15:18:45 von Niels Braczek

Daniel Simon schrieb:

> Um E_ALL und E_STRICT verwenden zu können müsste ich doch folgendes
> schreiben können:
> error_reporting = E_ALL & E_NOTICE & E_STRICT

E_ALL | E_STRICT
Siehe Manual -> Bitoperatoren

MfG
Niels


--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
`----------------------------------------------------------- -----´

Re: Anzahl der Dpopdownfeld-Element begrenzen

am 07.02.2006 11:12:42 von Andreas Heck

Servus Daniel!

Am 01.12.2005 schrieb Daniel Simon:

>> HTML in PHP ist übrigens nicht so prickelnd, besonders bei so riesigen
>> Projekten wie einem CMS. Falls das komplette CMS so aussieht wünsche ich
>> dir viel Spaß.
>
> Wenn ich wüsste wie ich das ganze mit PHP mache, dann würde ich
> wahrscheinlich auch damit umsetzen. Was ist denn an ein bisschen HTML so
> schlimm? Es wurde mir nämlich hier auch geraten nicht vollständig auf PHP
> zu setzen.

Da hast Du den Frank ein wenig falsch verstanden. Er hat schlicht den
Willen (was ihm hoch anzurechnen ist), einem Anfänger (was wir alle mal
waren) wichtige Tips mit auf den Weg zu geben.
Und einer der unzähligen wichtigen Ratschläge ist es, in großen Projekten
(was ein CMS in aller Regel ist) die reine Logik (PHP) von der Ausgabe
(HTML) zu trennen.
Da gibt es viele Wege, z. B. kann man es sich mit einem Template-System
einfach machen. Oder man hat eine Funktion/Klasse, die einem eine
HTML-Seite zusammenbastelt und mit (von PHP) übergeben Werten befüllt. Oder
oder oder.

Nun ist das ja nicht Dein CMS, da kannste nix für.
Schön ist es aber tatsächlich nicht, Logik- und Ausgabenseite so zu
vermischen.
Das Thema bezeichnet man mit dem herrlichen Ausdruck "Multi-Tier-
Architektur"[1] oder auch kurz N-Tier, ist das nicht herrlich? :-)

Mit Deiner Aussage, es wurde Dir geraten, nicht vollständig auf PHP zu
setzen, kann ich wenig anfangen. Wer hat Dir das geraten und warum?

Generell, ich wiederhole mich, solltest Du die Logik oder sagen wir, die
später anzuzeigenden Daten, mit PHP zusammentragen (z. B. Datenbankabfrage
-Ergebnisse), um sie später mit HTML anzuzeigen.
Wenn man in einer Datei Logik und Ausgabe mixt, führt das über kurz oder
lang (direkt proportional zum Umfang des Projekts) zu erheblichen
Problemen.

Grüße.

[1] http://de.wikipedia.org/wiki/N-tier

--
Andreas Heck http://www.derheckser.de
Kunst ist schön. Macht aber viel Arbeit. (Karl Valentin)