Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Scriptfehler - WO?

Code:                   In Zwischenablage kopieren (nur IE)
1">

dieses Script soll eine Zahl aus eienr Datenbank auslesen, im Script um eins erhöhen und danach die erhöhte Zahl in die Datenbank schreiben. Das Schreiben in die Datenbank geht leider nicht :( Weis da jemand hilfe? Datenbankauswahl funktioniert, aber ich glaube irgendwas hab ich falsch gemacht...
Die Datenbank anwahl und so geht, die Struktur sieht wie folgt aus, wo es reingeschrieen werden soll (siehe auch das auslesen ;))

datenbank: genesisiv (geht)
datensatz: wp_visits
struktur: "name", "visits"

Datensatz in struktur: 1ner, name: visits, visits: 0

Danke schinmal für hilfe!
Hier gehts zum Orginal Eintrag "Scriptfehler - WO?" im Forum

Antworten

Code:                   In Zwischenablage kopieren (nur IE)
2">

benütze error_reporting(E_ALL);
und

[doc]mysql_error[/doc]

Da ist ein ganzer Sack voll Fehler drin.


2.

ich find den fehler trotzdem nit sorry :( ich weis ich bin ein noob...

ich bin halt anfänger :( könnt ihr mir die insert into anweisung bitte bitt korrigieren? ich sitze da jetzt schon eeeeeewig dran... danke danke schonmal für jede hilfe!

Jonathan


3.

was heißt denn trotzdem nit ?

Was hast denn probiert ? wie lauten die Fehlermeldungen ?

Jede Wette, daß Du weder error_reporting noch mysql_error eingebaut hast.

Ein klein wenig Eigeninitiative ...


4.

errorreporting all geht nit und das mysql error versteh ich überhaupt nit ^^ sorry aber ich habe nichtvor für die ausgabe eienr fehlermeldung mir ein ganzes tutorial durchzulesen ;) jetzt nit bös gemeint!

Bitte helft mir kurz ich weis das is dreist was ich hier mache aber helft mir bitte trotzdem ;) habt auch was gut! DAAANke :)


5.

Dies ist ein Forum um php zu lernen und nicht um fertige Lösungen abzustauben.


6.

ich wills ja lernen aber wenn ich den fehler nicht finde, weis ich auch nichtmehr weiter... P.S. ich habs schon mit Tutorials probiert, ich will hier keine fertigen lösungen abstauben aber gerade könnte ich gut eine gebrauchen... Sorry echt aber ich sitze jetzt schon einen tag an diesem fucking counter und hab langsam die fresse voll von der scheiße... heeeelft mir doch bitte kurz mit dem script und das wäre furchtbar lieb! Ich hab bereits selber initiative ergirifen nur leider ohne erfolg! BIIIIIIITE! BITTE BITT ich bin am verzweifeln... ich weis ich bin ein noob und sollte mir tutorials durchlesen, aber die ham mir bei DEM problem auchnit geholfen. Danke schonmal!


7.

also schreib error_reporting(E_ALL); an den Anfang des Scripts und
echo mysql_error(); nach den mysql_query($sql); und poste die Fehlermeldungen.

Wenn Du das nicht hinkriegst dann laß es doch.

Ich würd es nicht machen wenn ich

Zitat:
die fresse voll von der scheiße
hätte.


8.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE (name like 'visits') VALUES ('4')' at line 13

super, ich hab nix draus gelernt :( aber wenigstens hab ich die fehlermeldung hinbekommen xD ^^

ich versteh zwar generell den insert into befehl aber in meinem fall versteh ich ihn nicht. Kann jemand bitte das Script ergänzen oder sagen was ich machen soll?? Danke...


9.

bei INSERT gibt es kein WHERE -

Gib mal einen Datensatz mit phpmyadmin ein und schau Dir die sql-Synatx an.

http://tut.php-q.net/mysql-insert.html


10.

Bereits probiert, funktioniert auch nicht ganz... Ichh aebe mal probiert, den Wert auf zwei zu erhöhen, habe mir dann den PHP-Code anzeigen lassen und die "3", auf die ich es ja erhöht hatte, mit der Variablen $write (siehe script) ersetzt. Ich muss jetzt weg, könntet ihr mir bitte das Script korrigieren und es hier reinstellen? und jetzt bitte nit die standardantwort, ich wäre euch echt dankbar wenn ihr das machen könntet... dafür weis ichs dann fürs leben ;) daaaanke wenn ihr mir helft! Wäre echt lieb... und sorry das ich ausgeflippt bin nur das script macht mir echt zu schaffen... daaanke...


11.

Zitat:
Ich muss jetzt weg, könntet ihr mir bitte das Script korrigieren und es hier reinstellen?
na, somit hätte sich das auch geklärt


12.

echt thx... ich will wirklich nicht stressen, ich weis ich tue es... sorry... aber ich brauche das script und komme alleine nicht weiter. ich habe mich bereits echt be,üht... mag dran liegen dass ich echt minderbemittelt bin aber ich verstehe es halt einfach nicht wo der fehler liegt! bitte korrigiert mir einmal das script, ich schaffe das nit selber! Bitte bitte ich weis nicht was ich noch sagen muss damit mir da einer hilft... sorry ich bin jetzt weg, bis heute abend!

P.S.: Jetzt habt ihr was ihr wollt, lass euch den ganzen Nachmittag inRuhe ;)


13.

Zitat:
fucking counter
Zitat:
die fresse voll von der scheiße
Welch wunderbare Ausdrucksweise. Da kannst du froh sein, dass noch niemand diesen Thread geschlossen hat.

Du solltest mal überlegen ob du wirklich einen Datensatz einfügen (insert) oder einen Datensatz akualisieren (update) möchtest.

Und höre mit dem Betteln nach einer fertigen Lösung auf!
Zitat:
ich weis nicht was ich noch sagen muss damit mir da einer hilft
Dir wurde schon geholfen! Anscheinend fehlen die aber die erforderlichen Grundlagen, aber das kannst du ja ändern:

http://www.php.net/manual/de
http://www.php-faq.de
http://www.php-einfach.de
http://www.schattenbaum.net/php/ (leider etwas veraltet)
http://www.galileocomputing.de/openbook/php4 (leider etwas veraltet)
http://tut.php-q.net/index.html
http://dev.mysql.com/doc/mysql/de/index.html
http://ffm.junetz.de/members/reeg/DSP/
http://www.phptutorials.de
http://www.dynamic-webpages.de/05.tutorials.php

*** Nobody ***


14.

Danke :) das mit dem update wars, weil ich habe jetzt furchtbar viele Datensätze neu angelegt... Das Proinzip hab ich ja verstanden, nur irgendwie bin ich da hängen geblieben. Die Ausdrucksweise liegt daran mich hat derr Counter irgendwie voll ferit gemacht weisls deprimierend is einen Tag lang nit weiter zu kommen, tut mir echt leid... ma sehen ich probiers nochmal mit update... danke!


15.

Also folgenden Code hatte ich schon:

Code:                   In Zwischenablage kopieren (nur IE)
3">

aber dort ging das mit der variable $write nicht... ich hatte es wiefolgt probiert:


Code:                   In Zwischenablage kopieren (nur IE)
4">

doch dies hatte nicht funktioniert... was mach ich falsch?


16.

Was sagt
[doc]mysql_error[/doc]
Standard-Antwort:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.

*** Nobody ***


17.

gemacht und keine fehlermeldung erhalten... script funktioniert trotzdem nicht...


18.

Zeige dein aktuelles Script

*** Nobody ***


19.

Code:                   In Zwischenablage kopieren (nur IE)
5">

Soweit hab ichs jetzt... Funktioniert alles prächtig bis auf das Update des Datenbankwertes... das errorreporting un so hab ich ma drin gelassen...

EDIT: Ich weis das Array ist bei nur einem Wwert überflüssig aber war zu faul mein altes Script das ich noch aufm PC rumfliegen hatte zu ändern... sorry


20.

Sag' mal, willst du mich hier verärgern?

Standard-Antwort:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. [color="red"]An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL); [/color]
4. [color="red"]An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht). [/color]
5. [color="red"]Schritt 4 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen[/color]
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.

Nichts sehe ich davon, aber wirklich absolut nichts! :(

*** Nobody ***


21.

das solltest Du bei jeder Abfrage einbauen: echo mysql_error();

bzw.

Code:                   In Zwischenablage kopieren (nur IE)
6">

schreib Deine zweite sql-Query in den if-Zweig.

Du willst ja nur updaten wenn die erste Abfrage auch einen Datensatz liefert.


22.

das error_reporting hatte ich bereits habe ich aber wieder raus gemacht... gab mir keinen fehler aus. Die überreste von mysql error reporting sind ja noch drin die hab ich vergessen rauszumachen, aber die haben mir auch keinen fehler ausgegeben... was das ausgeben von variablen angeht: habe ich bereits gemacht, als ich insert into hatte... da hatte ich es gescahfft einen neuen datensatz anzulegen mit dem inhalt eins höher als der wert des ausgangsdatensatzes... da ich seitdem nichtsmehr an den rechenoperationen verändert habe, stimmt alles dort und ich habe somit die schritte befolgt. Nein, ich will dich nicht verärgen, bin nur schon längst fertig! Und hätte ich den Fehler gefunden oder wäre es mir möglich gewesen ihn so zu finden würdest du hier diesen Thread nicht finden. Anderen vorschlag zum lösen des problemes?!


23.

hast Du #021 auch gelesen ?


24.

ups ne da war ich gerade selber am schreiben sorry... der lange gilt nobody, und zu dir: ja hab ich doch, nach dem script... alle anderen abfragen sin ja richtig gewesen weil ich bekomme den aktuellen counterstand ausgegeben... oder meintest du das anders?


25.

Zitat:
Soweit hab ichs jetzt... Funktioniert alles prächtig bis auf das Update des Datenbankwertes... das errorreporting un so hab ich ma drin gelassen...

Sag mal bin ich denn blind? du hast die ausgabe von mysql Fehler drin, aber keiner error_reporting...


EDIT: Hat sich alles überschnitten hier.. sry..


26.

:( Die Frage ist doch, ob $sql korrekt aussieht. Wenn ja, stimmt mit der Bedingung etwas nicht! :(

*** Nobody ***


27.

Zitat:
bei jeder Abfrage einbauen
Zitat:
schreib Deine zweite sql-Query in den if-Zweig.

Du willst ja nur updaten wenn die erste Abfrage auch einen Datensatz liefert.



28.

ja wie gesagt error reporting hatte ich schpn wieder raus gemacht ;) hatte es aber davor im gleichen Script und da hats dann halt keinen fehler ausgegeben...

Der Fehler muss irgendwo in der Update anweisung liegen, da ja alles klappt... ich habe mir die bvariable "$write" ausgeben lassen, und der Wert lag immer eins über dem Datenbank-Originalwert...

Das mit deem zweitem sql querry erledigt sich hier, da ja der datensatz zwangsläufig existiert... im grunde kann ich mir da die ganze if anweisung sparen aber das mach ich später... is ja erstmal egal


29.

Und warum nimmst du beim Update nicht die gleiche Bedingung wie beim Select?

*** Nobody ***


30.

dann kopier doch die Abfrage in phpmyadmin und schau nach ob sie so stimmt ...


31.

Zitat:
Bernd456 postete
dann kopier doch die Abfrage in phpmyadmin und schau nach ob sie so stimmt ...
Geht doch nicht, da es kein echo $sql; gibt. ;)

*** Nobody ***


32.

Danke nobody, es geht :) ... Ich hatte es so gemacht wie Bernd es gesagt hatte... also einfach mal in mysql den wert verändert, dann den PHP-Code ausgeben lassen und an der stelle wo die zahl stand dann die Variable eingesetzt... Ich hätte es so einfach haben können... Naja, jetzt siehts so aus:
Code:                   In Zwischenablage kopieren (nur IE)
7">

Danke an alle die mir gheholfen haben, ich hätte s alleine wirklich nicht hinbekommen... DAAnke :)


33.

so, habe nun für den Counter eine session id hinzugefüt, um zu vermeiden das bei jedem reload der counterstand erhöht wird:


Code:                   In Zwischenablage kopieren (nur IE)
8">

Soweit so gut, ich glaube es funktioniert... Nun habe ich eine Frage: Wie lange ist eine Session ID gültig, bis sie verfällt? 10 minuten? 15? und gibt es eine möglichkeit, die Gültigkeitsdauer zu verändern? Achso, sollten fehler im oben stehendem Code sein, sagt bitte bescheid...


34.

session_start(); gaaanz nach oben.

erhöhe den Zähler nur wenn

Code:                   In Zwischenablage kopieren (nur IE)
9">

und nach dem UPDATE (beim ersten Aufruf der Seite) setzt Du
Code:                   In Zwischenablage kopieren (nur IE)
10">




35.

Ich bekomme aus irgendeinem Grund bei folgendem Script diesen Fehler:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/export/www/hosting/genesisiv/BLOG/wp-content/themes/WP-Binary-Blue-v140/header.php:155) in /usr/export/www/hosting/genesisiv/BLOG/wp-content/themes/WP-Binary-Blue-v140/blocks/block_counter.html on line 34

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/export/www/hosting/genesisiv/BLOG/wp-content/themes/WP-Binary-Blue-v140/header.php:155) in /usr/export/www/hosting/genesisiv/BLOG/wp-content/themes/WP-Binary-Blue-v140/blocks/block_counter.html on line 34
33

Script:
Code:                   In Zwischenablage kopieren (nur IE)
11">

EDIT: Ja, ich kann lesen, habe schon probiert den Fehler zu beheben.


36.

Zitat:
Mefisto postete
Ja, ich kann lesen
Daran zweifele ich langsam!
Zitat:
Bernd456 postete
session_start(); gaaanz nach oben.
*** Nobody ***


37.

Ups den Teil den hatte ich übersehen, tut mir echt leid! Weis nit hatte ihn irgendwie überlesen... ok ich teste.. geht nicht :(

Kann es daran liegen, dass ich die Seite um die es geht noch in eine andere einbinde und das session_start dadurch dann ja nichtmehr ganz oben steht?


38.

Zitat:
Mefisto postete
Kann es daran liegen, dass ich die Seite um die es geht noch in eine andere einbinde und das session_start dadurch dann ja nichtmehr ganz oben steht?
Die Wahrscheinlichkeit liegt bei 100%

*** Nobody ***


39.

ok ^^ gibt es eine möglichkeit, diesen Fehler zu umgehen ohne die Datei, in die ich es letztendlich einbinde zu editieren? oder das system irgednswie anders zu realisieren? also nicht mit session ids?


40.

Was spricht dagegen, session_start in die erste Datei zu packen? Man könnte mit Output-Buffering arbeiten, aber davon rate ich ab.

*** Nobody ***


41.

das problem liegt darin, ich benutze das ganze in nem wordpress blog mit template... wer da die richtige index findet die letztendlich in keine andere datei mehr eingebunden wird, bekommt nen euro ^^

das sieht ungefähr so aus:

block_counter.html ---include---> sidebar.php ---include---> header.php ---include---> index.php ---include---> ../../template.php ---include---> index.php

Sowas mein ich deswegen is das nit so schön... weil wenn ich anfange, daran was zu verändern verliere ich beim nächsten wordpress update völlig den überblick... außer dem output buffering gibt es keine möglichkeit?? Wäre echt schade wenn es jetzt daran scheitern würde... mit mysql bei jeder ip einen eintrag mit "zeit" dazu anlegen und dann bei jedem laden der seite die Strukttur auf die IP überprüfen... Wenn sie existiert, dann die Zeit auslesen und überprüfen, ob es schon zehn minuten her ist, wenn sie nicht existiert, neu anlegen, zusammen mit der aktuellen zeit... aber da das das traffic ja hochtreiben würde...


42.

Zitat:
außer dem output buffering gibt es keine möglichkeit??
Nein.

*** Nobody ***


43.

Fehler behoben, war einfacher als ich dachte: hab session start jetzt einfach in die ganz ganz ganz index.php probeweise eingefügt. Es hat funktioniert, habe mir ma, im Fall das die Session gesetzt ist, einen Text ausgeben lassen, und: Beim ersten mal nicht, ist ja klar, beim reload dann wurde er angezeigt. und wird auch weiterhin angezeigt. Also funktioniert super.

Jetzt habe ich allerdings immernoch die Frage: Wie ist es möglich, die länge, wann eine sessionid automatisch verfällt, zu beeinflussen? ist ja normalerweise eine halbe stunde ohne aktion, das habe ich zumindest nach googlen gefunden. Wie ist das editierbar? Es stand da zwar das es möglich ist aber nicht wie :(

Danke schonmal!

~Mefisto~


44.

das eine session_start(); bringt auch Dich nicht um.

Das wirst Du und wordpress verkraften.
Zitat:
Jetzt habe ich allerdings immernoch die Frage:
http://www.googleistdeinfreund.de/


45.

ne es ging darum dass ich ja beim update alle dateien wieder neu bearbeiten muss...deshalb änder ich lieber so wenig wie möglich am code... anosnten muss ich ne liste führen mit allen sachen, die ich editieren muss, wenn ich ein updategamcht habe ^^

Zitat:
http://www.googleistdeinfreund.de/
Google hilft mir auch nicht :( wie heist das? gültigkeit? ka, man kann nur googlen wenn man wirklich wes wonach und da ich mich vorher noch nie mit der gültigkeitsdauer (??) von Sessionids beschäftigt habe, konnte ich auch nicht vernünftig googlen. Kann mir jemand nen Link geben? Danke ;)


46.

achso, im übrigem mal mein fertigews script:

Code:                   In Zwischenablage kopieren (nur IE)
12">




47.

Guckst du: http://de2.php.net/manual/de/ref.session.php

*** Nobody ***


48.

oh danke problem gelöst :) was sagst ihr zum script? is das so ok oder noch irgendwas falsch was ich übersehen habe??


49.

Du solltest dir unbedingt einen ordentlicheren Stil aneignen, denn bei längeren Programmen wird es sonst schwer. Beispiel:
Code:                   In Zwischenablage kopieren (nur IE)
13">

Außerdem solltest du immer auf fehlerhafte MySQL-Anweisungen prüfen.

*** Nobody ***


50.

Ok mach ich in Zukunft :) aber ich sehe gerade nicht so hunderprozentig, hab ich einen fehler in er mysql anweisung gemacht? ich sehe keinen unterschied ^^ oder meintest du das generell?


51.

Zitat:
oder meintest du das generell
Ja, denn es macht ja in den meisten Fällen keinen Sinn, das Script weiterlaufen zu lassen, wenn ein Select in die Hose gegangen ist.

*** Nobody ***


Hier gehts zum Orginal Eintrag "Scriptfehler - WO?" im Forum
 
phpforum.de | Impressum