• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Problem im php-Script

Hallo Albu,

dankeschön! Hatte auch gesucht, aber zu wenig Ehrgeiz gehabt über zwei Suchbegriffe und die ersten drei Treffer hinaus zu schauen.

Gut, das wäre schonmal geklärt. Dann vielleicht noch eines. Rufst du beim Ausgeben auch renderChart() für alle drei Objekte auf (@harlekin)?

Grüsse
jeko
 
renderChart() wird für alle 3 ausgeführt.
Wenn ich statt " $FC->addChartData($row[0]); " zum Beispiel: "$FC->addChartData("34"); eingebe und das mit allen Zeilen machen würde, funktioniert es.
Dann bekomme ich 15 Balken die z.b. "34" hoch sind.
Ich habe NUR den geposteten Teil verändert, daher kann das Problem wohl nur in dem Bereich liegen.

P.S.ja, ist mein Geburtsjahr
 
dann liegt es wohl daran dass es keine $row[5] gibt. Zeig uns deine Datenbank (wie bereits mehrmals erwähnt) und deine SQL-Anfrage (wie bereits mehrmals erwähnt) und schau dir mal an was eigentlich in $row jeweils drin steht

zb mittels var_dump($row); in der while-Schleife
 
Sehe ich das richtig, das $row[5] die 5te Zeile meiner Tabelle ist?

$abfrage = "SELECT "Name der Spalte FROM "Name der Tabelle" "; <---Was bitte schön sollen
in diesem Bereich genaue Angaben?
 
Zuletzt bearbeitet:
Sehe ich das richtig, das $row[5] die 5te Zeile meiner Tabelle ist?
Diese Annahme ist falsch. Spalte Nr. 6 wäre eher richtig.

$abfrage = "SELECT "Name der Spalte FROM "Name der Tabelle" "; <---Was bitte schön sollen
in diesem Bereich genaue Angaben?
Man würde z.B. sehen, dass Du gar nicht n-Spalten sondern nur eine Spalte abfragst. Damit hätte sich die ganze Diskussion wesentlich verkürzen lassen.
 
Ja, sorry. row5= Feld 6 da bei 0 beginnt.

Aber es kann nicht nur eine Spalte ausgelesen werden,da ja die ersten 5 ausgelesen und auch dar gestellt werden.
 
Aber es kann nicht nur eine Spalte ausgelesen werden,da ja die ersten 5 ausgelesen und auch dar gestellt werden.
Deswegen: Liefere endlich Fakten und keine weiteren Annahmen.

Wenn Du nur eine Spalte in Deiner Abfrage hast, dann kommt auch nur ein Wert zurück, nämlich $row[0], mehr nicht.

Entweder arbeitest Du jetzt mit, oder wir können den Thread zumachen, weil ein Weiterkommen so nicht abzusehen ist.
 
Nochmal !!! Die ersten 5 Spalten werden ausgelesen und dar gestellt. Also sind es mehr als 5 Spalten. Es sind auch verschiedene Werte in allen Spalten vorhanden. Also verstehe ich nicht, was es mit der Datenbank zu tun haben soll.
Außerdem werden die gleichen Daten noch in einer anderen Liste ausgelesen und verarbeitet. Also KANN es nicht mit der Datenbank zusammen hängen.

Wenn du mit der Angabe "$abfrage = "SELECT "Name der Spalte FROM "Name der Tabelle" "; nichts anfangen kannst dann kann ich es nicht ändern. Ich als Laie kann genug damit anfangen. Das sind generelle Angaben die in einem ganz normalen php-Script stehen, wenn du dir mal eines runter lädst instalierst.
Lösch meinen Account und den Thread oder mach ihn zu. Ich denke ich bin hier falsch.
 
Vielleicht versuchts du es probeweise einfach mal mit
PHP:
SELECT * FROM tbl_xyz

Funktioniert dann deine Ausgabe?
 
Nochmal !!! Die ersten 5 Spalten werden ausgelesen und dar gestellt. Also sind es mehr als 5 Spalten. Es sind auch verschiedene Werte in allen Spalten vorhanden. Also verstehe ich nicht, was es mit der Datenbank zu tun haben soll.
Außerdem werden die gleichen Daten noch in einer anderen Liste ausgelesen und verarbeitet. Also KANN es nicht mit der Datenbank zusammen hängen.
Diese Behauptung weigerst Du Dich nun schon seit einiger Zeit mit Fakten zu belegen.

Wenn du mit der Angabe "$abfrage = "SELECT "Name der Spalte FROM "Name der Tabelle" "; nichts anfangen kannst dann kann ich es nicht ändern. Ich als Laie kann genug damit anfangen. Das sind generelle Angaben die in einem ganz normalen php-Script stehen, wenn du dir mal eines runter lädst instalierst.
Das genannte Statement ist kein gültiges SQL Statement, es ist noch nichtmal eine gültige PHP Anweisung.

Weiterhin:
"Name der Spalte" ist Einzahl -> Schlussfolgerung: Du hast den Unterschied zwischen Spalten und Zeilen nicht verstanden.

Außerdem finde ich es merkwürdig, dass statistische Daten in einer einzigen Zeile gespeichert werden. Das kann zwar an Deinem Datenbankdesign liegen, aber das ist ja "geheim".

Ich denke ich bin hier falsch.
In einem Forum für Wahrsager, Astrologen oder Quizfreunde findest Du vielleicht Leute, die Deine vagen Aussagen und Annahmen besser deuten können.
Programmieren dagegen ist eine exakte Wissenschaft.
 
Nochmal !!! Die ersten 5 Spalten werden ausgelesen und dar gestellt. Also sind es mehr als 5 Spalten.
Wie kommst du auf diese Behauptung? In deinem ersten Post ist von 3 Blöcken die Rede. Und du würdest uns und vor allem dir weiter helfen, wenn du dir mal die Ergenisse der Abfrage ausgeben liessest. Dann können wir weiter reden, aber es bringt nichts, wenn du einerseits sagst es läuft etwas falsch, aber trotzdem müßte doch alles richtig sein. Wie willst du denn so einen Fehler finden?

Also verstehe ich nicht, was es mit der Datenbank zu tun haben soll.
Außerdem werden die gleichen Daten noch in einer anderen Liste ausgelesen und verarbeitet. Also KANN es nicht mit der Datenbank zusammen hängen.
Das sind Informationen, von denenn ich hier zum ersten Mal lese. Wenn du das mal einfach vernüftig beschreiben könntest, anstatt hier nur rumzumeckern, wäre es auch möglich (gewesen) dir zu helfen.

Wenn du mit der Angabe "$abfrage = "SELECT "Name der Spalte FROM "Name der Tabelle" "; nichts anfangen kannst dann kann ich es nicht ändern. Ich als Laie kann genug damit anfangen. Das sind generelle Angaben die in einem ganz normalen php-Script stehen, wenn du dir mal eines runter lädst instalierst.
Sicher nicht. Aber es spielt auch keine Rolle. Was in Teufels Namen hält dich davon ab uns zu sagen, wieviele Spalten die Tabelle hat und wie ein Beispielergebnis der Abfrage aussieht?

Ausserdem, wenn da wirklich der Name der Spalte steht, dann kann die Abfrage nicht funktionieren, da du nur eine Spalte ermittelst und du aber fünf Ergebnise erwartest, also muss die Abfrage, zumindest so wie du sie uns schilderst, falsch sein!

Das ist die Erkenntniss, die man aus dem von dir bisher gezeigten und gesagten gewinnt. Und die einzige Lösung, die sich daraus erschliesst ist, mache die Abfrage so:
PHP:
'SELECT * FROM tabelle'
Dann kriegst du alle Spalten.

Lösch meinen Account und den Thread oder mach ihn zu. Ich denke ich bin hier falsch.
tut mir leid, aber damit erklärst du dich selbst zum Vollidiot
 
Albu, wenn du nicht lesen kannst, dann musst du andere nicht auf ihre Fehler hin weisen. Im meinem ersten Post rede ich ganz klar und deutlich von 3 Blöcken.
Außerdem bin ich gerne ein Vollidiot und sms-geschädigt.

" 'SELECT * FROM tabelle' " liest alle Daten aus und kann daher nicht richtig sein.
" $abfrage = "SELECT xxxx FROM yyy"; " läuft in anderen Scripten wunderbar, ist also wohl doch eine PHP Anweisung.

Ich habe schon mehrfach Abfragen aus einer Datenbank programiert und wenn ich sage, es liegt nicht an der Datenbank kann man mir das glauben.

So, nun dürft ich mich noch mal alle beleidigen und dann bitte schließen oder löschen. Es besteht kein Interesse mehr von euch Hilfe zu bekommen.
 
Im meinem ersten Post rede ich ganz klar und deutlich von 3 Blöcken.
was willst du damit sagen?

Außerdem bin ich gerne ein Vollidiot und sms-geschädigt.
von mir aus

" 'SELECT * FROM tabelle' " liest alle Daten aus und kann daher nicht richtig sein.
aber erst recht nicht falsch, es sei denn, du willst spalten überspringen/umordnen/berechnen

" $abfrage = "SELECT xxxx FROM yyy"; " läuft in anderen Scripten wunderbar, ist also wohl doch eine PHP Anweisung.
liefert dir aber, wenn xxxx nicht gerade "spalte1, spalte2, ..., spalte11" ist, nur eine spalte. auf die kannst du dann nicht mit $row[1], $row[2], ... zugreifen, weil $row[1] heißt hier "spalte2".
und ja, es ist eine PHP anweisung. die zuweisung eines strings an die variable $abfrage

Ich habe schon mehrfach Abfragen aus einer Datenbank programiert und wenn ich sage, es liegt nicht an der Datenbank kann man mir das glauben.
dann ist abgesehen von der fehlenden geschweiften klammer ja alles OK.
 
Zuletzt bearbeitet:
Albu, wenn du nicht lesen kannst, dann musst du andere nicht auf ihre Fehler hin weisen. Im meinem ersten Post rede ich ganz klar und deutlich von 3 Blöcken.
Wie Du jetzt von Spalten und Zeilen auf Blöcke kommst, weiß ich nicht.

Mir ist sehr wohl bewußt, dass Du insgesamt drei Grafiken mit Statistiken ausgeben willst. Ich habe es bereits in Deiner Seite gesehen.
Und gerade deshalb ist es mehr als verwunderlich, dass Du alle Daten aus einer einzigen Zeile lesen willst.

" 'SELECT * FROM tabelle' " liest alle Daten aus und kann daher nicht richtig sein.
" $abfrage = "SELECT xxxx FROM yyy"; " läuft in anderen Scripten wunderbar, ist also wohl doch eine PHP Anweisung.
Dies: "$abfrage = "SELECT "Name der Spalte FROM "Name der Tabelle" "; ist aber keine gültige Anweisung, weder PHP noch SQL. Diese Stelle hatte ich zitiert und nicht Dein ursprüngliches Statement.
Es ist ziemlich lächerlich wie geheim Deine Tabelle angeblich ist.
Wenn Du nur ein halbwegs vernünftiges SQL Statement gebracht hättest, dann hätte keiner was gesagt, und man hätte Deinen Denkfehler vermutlich erkennen können oder wäre mit der Fehlersuche zumindest soweit, dass man das sicher ausschließen kann.

Ich habe schon mehrfach Abfragen aus einer Datenbank programiert und wenn ich sage, es liegt nicht an der Datenbank kann man mir das glauben.
Bislang glaubt Dir das aber keiner, weil keiner gesehen hat, dass Du es kannst und beherrschst.


Ein Mann kommt in eine Autowerkstatt. Fragt der Meister: "Wie kann ich Ihnen helfen?" "Mein Auto klappert beim Fahren immer so." "Zeigen Sie mal das Auto, wo steht es denn?" "Och, das steht bei mir in der Garage, aber ich habe Ihnen mal meine Seifenkiste mitgebracht, die ist so ähnlich - vier Räder, Lenker, usw. das Übliche halt, Sie wissen ja wie Autos aussehen - Wann kann ich es abholen?"
 
xxx ist bei mir der Name der Spalte. Hatte ich etwas weiter oben schon gepostet.
Sieh mal bitte den ersten Post von mir. Bis zu den grünen Zeilen geht alles wunderbar. Ab den roten Zeilen bekomme ich keine Werte mehr. Es stehen aber noch Werte in der Tabelle. Da ich die Daten aber noch für eine andere Liste ausgebe, kann es nicht an der Tabelle liegen. Da weiterhin die ersten 5 Daten ($row[0]-$row[4]) korrekt rüber kommen, kann es auch nicht an der Abfrage liegen.

" 'SELECT * FROM tabelle' " liest alle Daten aus und kann daher IN MEINEM FALL nicht richtig sein. So hatte ich das gemeint.

Die Klammer habe ich ausprobiert und hat leider nichts bewirkt.

Albu, warum lässt du mich nicht einfach in Ruhe? Ich glaube nicht, das ich dir was beweisen muss. Und nein, meine Datenbank ist nicht geheim hat aber mit dem Problem genau so wenig zu tun wie meine Kontonummer. In deinen Statements kann ich bisher nichts aber auch absolut nichts finden was dem Problem dienen würde. Ach ja, Klasse Spruch mit der Werkstatt, lange für gegoogelt?
Warum muss ich meinen Anhänger mitbringen wenn mein Auto nicht fährt?
 
xxx ist bei mir der Name der Spalte. Hatte ich etwas weiter oben schon gepostet.
Das ist aber in deinem Fall falsch im Gegensatz zu:

" 'SELECT * FROM tabelle' " liest alle Daten aus und kann daher IN MEINEM FALL nicht richtig sein. So hatte ich das gemeint.

Denn ich denke dann würde es funktionieren.

Warum?

Weil wenn du $row[0-n] hernehmen willst, musst du auch, wie auch Hesst dir schon schrieb, mehr als eine Spalte auslesen.

Demnach müsste deine Abfrage schon:
Code:
SELECT a,b,c,d FROM yyyyy
heißen.

Nur dann kannst du
Code:
$row[0]
$row[1]
$row[2]
$row[3]
anwenden.
Andernfalls steht dir nur $row[0] zur Verfügung.

Das
Code:
SELECT * FROM ...
war als Test gedacht ob es dann funktioniert. Manchmal muss man schon ein bissl rumprobieren um seinen Fehler zu finden :mad:

Glaub jeder hier im Forum hat besseres zu tun, als Threadöffner niederzumachen und zu ärgern. Wenn wir hier was schrieben wollen wir helfen!
 
xxx ist bei mir der Name der Spalte. Hatte ich etwas weiter oben schon gepostet.
Dein Skript
Code:
while($row = mysql_fetch_row($ergebnis))
$FC->addChartData($row[0]);
füllt somit genau die erste Chart mit allen Zeilen Deiner Datenbanktabelle.
Alle anderen Anweisungen werden erst _nach_ Abarbeiten Deiner while-Schleife ausgeführt. Und da dort nix Gescheites drinstehen kann, weil $row immer nur ein Element enthält, bekommst Du auch nur Schrott, bzw. nix raus.
Deine falsche Beobachtung, dass in den Zeilen mit $row[1-4] korrekte Daten eingetragen werden kommt daher, dass die Schleife bereits 5 Werte mit $row[0] ausgelesen und eingetragen hat. Die Werte werden nämlich nur in Dein Chart hinten angehängt. Ob die von $row[0] oder $row[1] kommen ist denen egal.
Wer also Dein Chart füllt ist _einzig_ die oben (in diesem Post) genannte Anweisung.
Mit Klammern verschlimmert sich das Bild soweit, dass die angeblich richtigen Daten nun breiter gestreut und durcheinander auf die einzelnen Charts verteilt werden, eventuell bricht PHP aber auch wegen eines RangeCheck Fehlers ab und Du bekommst nur einen einzelnen Balken im ersten Chart.

Wenn Du also endlich mal Deine Sturheit ablegen würdest und mal nachdenken würdest und die genannten Punkte, Tipps, Anregungen und Ideen nachvollziehen und umsetzen würdest, dann wäre Dein Problem schon längst gelöst.

Du solltest Dir anschauen, wie While-Schleifen funktionieren, was ein Anweisungsblock ist, und warum er hier eventuell eine Rolle spielt und desweiteren solltest Du endlich den Unterschied zwischen Zeile und Spalte begreifen. Als Merkhilfe wäre vielleicht die Umbenennung von $row zu $dings denkbar, dann kommst Du nicht mehr auf die Idee, mittels $row[x] auf die x.te Zeile zugreifen zu wollen.

In deinen Statements kann ich bisher nichts aber auch absolut nichts finden was dem Problem dienen würde.
Du musst die lesen, wo Albu drüber steht. ;)

Ach ja, Klasse Spruch mit der Werkstatt, lange für gegoogelt?
Warum muss ich meinen Anhänger mitbringen wenn mein Auto nicht fährt?
Nix gegoogelt selbst ausgedacht.
 
Zuletzt bearbeitet:
Zurück
Oben