sinnvoll programmiert?
Fabian Graßl
- php
0 beinaendi0 Fabian Graßl0 Tom0 beinaendi0 Christian Kruse0 Tom0 Christian Kruse0 Tom
0 hitch
Hallo!
Ich schreibe gerade ein Programm in php. Nun bin ich mir an einer stelle im Programmtext nicht sicher, ob es sinnvoll, bzw elegant ist, den programmcode so zu formulieren... obwohl es funktioniert:
if(! $dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle")){
die("Datenbankzugriffsfehler!");
}
$anzRows = mysql_fetch_row($dbQuCont);
$anzRows = $anzRows[0];
Ich wollte euch um eure Meinung dazu bitten.
Gruß, Fabian
Hallo
if(! $dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle")){
die("Datenbankzugriffsfehler!");
Müsste doch OR die heissen oder!?
Mit freundlichen Grüsse,
beinaendi
Müsste doch OR die heissen oder!?
Was müsste OR heissen?
Eigentlich waren mit meiner Frage eher die beiden letzten Programzeilen gemeint...
Gruß, Fabian
Hello,
if(! $dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle")){
die("Datenbankzugriffsfehler!");
Müsste doch OR die heissen oder!?
Nein. Aber dass Du das nicht überblickst liegt an diesem idiotischen PEAR-Standard. Schreib es mal so:
if(! $dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle"))
{
die("Datenbankzugriffsfehler!");
}
Dann siehst du erstens, dass die schließende geschweifte Klammer fehlt und dass der Block der Bedingung nur ausgeführt wird, wenn das Query kein Ergebnis gab.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo
Nein. Aber dass Du das nicht überblickst liegt an diesem idiotischen PEAR-Standard. Schreib es mal so:
Dann kenne ich diesen idiotischen PEAR Standard wohl nicht.
Man lernt nie aus, danke!
Mit freundlichen Grüsse,
beinaendi
Hello,
Dann kenne ich diesen idiotischen PEAR Standard wohl nicht.
Man lernt nie aus, danke!
Manche Konventionen sind nicht praktisch. Im übrigen ist es allerdings empfehlenswert, sich den PEAR-Standard anzuschauen. Nur diese Klammerkonvention ist eben idotisch.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo
Manche Konventionen sind nicht praktisch. Im übrigen ist es allerdings empfehlenswert, sich den PEAR-Standard anzuschauen. Nur diese Klammerkonvention ist eben idotisch.
Ja, könnte ich mal machen, aber habe momentan andere Sorgen (Diplomarbeit usw.). Und Webdesign ist nur ein ganz kleiner Ausschnitt aus dem breiten Spektrum der Informatik und es gäbe noch so viele empfehlenswerte Dinge zum ansehen. Aber das Leben ist ja noch lange! ;-)
Mit freundlichen Grüsse,
beinaendi
Hallo,
Ja, könnte ich mal machen, aber habe momentan andere Sorgen (Diplomarbeit usw.). Und Webdesign ist nur ein ganz kleiner Ausschnitt aus dem breiten Spektrum der Informatik
Habe ich was verpasst? Was ist an Web_design_ denn Informatik? (Abgesehen von der Integration von Inhalt und Design...)
Dass das Schreiben serverseitiger Datenverarbeitungsalgorithmen Informatik ist, unterschreibe ich ja, sogar Javascript würde ich als Informatik akzeptieren wollen, aber _Design_ nun wirklich nicht. Ein Steinmetz ist ja auch kein Maurer, sondern Künstler, zumindest meistens.
Grüße aus Barsinghausen,
Fabian
Hello,
Ein Steinmetz ist ja auch kein Maurer, sondern Künstler, zumindest meistens.
Ein Steinmetz ist Handwerker. Ein Bildhauer ist Künstler. Wenn Du jetzt also als Steinmetz arbeiten würdest, wäre das Scharzarbeit, auch wenn Du brav Deine Steuern bezahlst (habe allerdings die Lockerung dieser Regelung nicht verfolgt, vieleicht waren die Steinmetze dabei)
In Deutschland haben wir nämlich fast generelles Arbeitsverbot. Du darfst keine Arbeit machen, für die Du keinen Zettel von einem Großkopferten hast.
Liebe Grüße aus http://www.braunschweig.de
Tom
hi,
[...] wäre das Scharzarbeit
der mann, der für unseren mediednkanzler die tollen konzepte für "mehr arbeit für alle" entwickelt, schreibt sich ohne "sc" vorne, und ausserdem mit "tz" - hartz.
oder reden wir gerade aneinander vorbei? :-)
gruss,
wahsaga
Hello,
[...] wäre das Scharzarbeit
der mann, der für unseren mediednkanzler die tollen konzepte für "mehr arbeit für alle" entwickelt, schreibt sich ohne "sc" vorne, und ausserdem mit "tz" - hartz.
oder reden wir gerade aneinander vorbei? :-)
Nö, ich glaube, wir verstehen uns da schon. Aber die Union hat das in 16 Jahren auch nicht besser gemacht. Die Pfründe der Besitzenden wurden in der Zeit zu Lasten der (gerne) Fleissigen immer besser abgesichert. Der Obergau kam mit der Rückübereignung ehemaliger (Groß-)Güter und der Verramschung und Zerschlagung von durchaus funktionstüchtigen aber lobbylosen Betrieben durch die "Treuhand". Wem die da genau die Treue gehalten haben, werden wir nie erfahren.
Die Einschränkungen bei der Arbeitsausübung müssen weiter abgeschafft werden. Nur bei Berufen, die tatsächlich eine Gefahr für die öffentliche Sicherheit bedeuten könnten, wenn sie von "Ungelernten" ausgeführt werden, ist eine Einschränkung sinnvoll. Und sinnlose Gesetze, die nur machtansprüche sichern helfen, müssen weg.
Aber was können wir als Bürger tun, um qualifizierte nicht vom Egoismus des Einzelnen gesteuerte Kritik zu üben? Hilft da ein Forum wie dieses, nur zum Thema "was uns Bürger stört"? Threads die nur mosern, müssten dann natürlich eine niedrige Priorität bekommen (nicht löschen) und solche, die Denkansätze geben, sollten verfolgt und gepflegt werden.
Wieviel Serverleistung benötigt man wohl dafür? Oder würde das sowieso keiner besuchen, weil wir alle zu fett geworden sind?
Dieses Deutschland (und damit wohl die ganze EU) retten wir nur mit Intelligenz und Fleiß, nicht mit mit Macht und "Totschlag"[1]
[1] Wenn nicht aktiv etwas gegen die Insolvenzquote getan wird, gibt es bals keinen Mittelstand mehr. Die Verbände verfolgen aber im Allgemeinen nur die Interessen der Großen, nicht der finanzschwachen Kleinen mit guten Ideen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
if(! $dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle"))
{
die("Datenbankzugriffsfehler!");
}Dann siehst du erstens, dass die schließende geschweifte Klammer fehlt und dass der Block der
Bedingung nur ausgeführt wird, wenn das Query kein Ergebnis gab.
Beides falsch.
Grüße,
CK
Hello,
Beides falsch.
- War die geschweifte Klammer beim OP durchaus vorhanden.
Ja, wo du es sagst. War falsch quoted worden.
- Wie kommst du auf den Trichter?
ckruse@sunshine:~ $ php -r 'if(!$a=1) { die("hey!\n"); }'
ckruse@sunshine:~ $ php -r 'if(!$a=0) { die("hey!\n"); }'
hey!
ckruse@sunshine:~ $
2. versteh ich nicht. Dein Versuch zeigt doch genau das, was ich gesagt habe. Oder habe ich jetzt den Gag nicht verstanden?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo Tom,
- Wie kommst du auf den Trichter?
ckruse@sunshine:~ $ php -r 'if(!$a=1) { die("hey!\n"); }'
ckruse@sunshine:~ $ php -r 'if(!$a=0) { die("hey!\n"); }'
hey!
ckruse@sunshine:~ $
- versteh ich nicht. Dein Versuch zeigt doch genau das, was ich gesagt habe. Oder habe ich
jetzt den Gag nicht verstanden?
Im Gegenteil. Leeres Resultset gibt keinen false value zurück. False value gibts nur bei
Fehlern. Und das if() ist nur dann erfüllt, wenn ein false value zurück gegeben wird.
Grüße,
CK
Hello,
Im Gegenteil. Leeres Resultset gibt keinen false value zurück. False value gibts nur bei
Fehlern. Und das if() ist nur dann erfüllt, wenn ein false value zurück gegeben wird.
Ok, falsch ausgedrückt:
...wenn das Query ausgeführt werden konnte. Ob dann was drinsteht hat damit natürlich nichts zu tun. Aber hier ging es um den Datenbank-Zugriffsfehler und nicht um "wieviele Records?"
Ich würde diese "alles in einer Zeile Schreibweise" sowieso nicht empfehlen. Das lässt sich immer schwerer lesen, als ausführliche Statements.
Liebe Grüße aus http://www.braunschweig.de
Tom
if(! $dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle")){
die("Datenbankzugriffsfehler!");
Müsste doch OR die heissen oder!?
$dbQuCont = mysql_query("SELECT COUNT(*) FROM irgendeine_tabelle") OR die("Datenbankzugriffsfehler!");
Allerdings sollte man das "die" besser rausnehmen und eine aussagekräftigere Fehlermeldung ausgeben.
hi,
Allerdings sollte man das "die" besser rausnehmen
warum? das script zu beenden, wenn der datenbankzugriff nicht geklappt hat, kann durchaus sinnvoll sein (klar, schliessen bereits geöffneter HTML-tags sollte man nicht vergessen.
und eine aussagekräftigere Fehlermeldung ausgeben.
während des debuggings - ja.
im produktiven einsatz - nicht unbedingt. eine fehlermeldung á la mysql_error() ausgeben zu lassen, gibt u.U. mehr informationen über die datenbankstruktur etc. aus, als der nutzer wissen muss/soll/darf.
gruss,
wahsaga
Allerdings sollte man das "die" besser rausnehmen
warum? das script zu beenden, wenn der datenbankzugriff nicht geklappt hat, kann durchaus sinnvoll sein (klar, schliessen bereits geöffneter HTML-tags sollte man nicht vergessen.
Wenn ein Programm einen Fehler produziert wird ja auch nicht sofort das ganze OS abgeschaltet ...
und eine aussagekräftigere Fehlermeldung ausgeben.
während des debuggings - ja.
im produktiven einsatz - nicht unbedingt. eine fehlermeldung á la mysql_error() ausgeben zu lassen, gibt u.U. mehr informationen über die datenbankstruktur etc. aus, als der nutzer wissen muss/soll/darf.
Beim Debugging sind wir uns ja schon einig :)
Im öffentlichen Einsatz sollte dem User aber klar gemacht werden, daß er keinen Fehler gemacht hat und desweiteren eine Möglichkeit angeboten werden weiter zu arbeiten. Eine Unterscheidung der Fehlermeldung bei einem möglichen Status "admin" wäre hier die beste Lösung.
---
Die ist keine Signatur.
hi,
Wenn ein Programm einen Fehler produziert wird ja auch nicht sofort das ganze OS abgeschaltet ...
das die() wird ja auch nicht den webserver runterfahren :-)
Beim Debugging sind wir uns ja schon einig :)
Im öffentlichen Einsatz sollte dem User aber klar gemacht werden, daß er keinen Fehler gemacht hat
das geht m.E. aus "datenbankzugriffsfehler" aber schon eindeutig genug hervor.
_mehr_ muss der user an dieser stelle wirklich nicht wissen, zumindest nichts, was ihm nähere aufschlüsse über die DB geben könnte (denn nicht jeder user ist ein "lieber" user).
klar, was den text und damit aussagekraft der fehlermeldung angeht, ist natürlich noch spielraum vorhanden.
und desweiteren eine Möglichkeit angeboten werden weiter zu arbeiten.
wenn der fehler z.b. beim speichern von daten auftritt, wie genau stellst du dir da das weiterarbeiten vor?
und beim auslesen hilft wohl auch wenig - wenn im script der wurm ist, dann hilft wohl nur das weitersurfen auf einer anderen seite, bzw. aufruf der selben seite nach einiger wartezeit, wenn der DB-server kurzzeitig nicht verfügbar war.
Die ist keine Signatur.
stimmt, die(s) wäre nur dann eine signatur, wenn du ein - weniger verwendest ;-)
gruss,
wahsaga
das geht m.E. aus "datenbankzugriffsfehler" aber schon eindeutig genug hervor.
_mehr_ muss der user an dieser stelle wirklich nicht wissen, zumindest nichts, was ihm nähere aufschlüsse über die DB geben könnte (denn nicht jeder user ist ein "lieber" user).
klar, was den text und damit aussagekraft der fehlermeldung angeht, ist natürlich noch spielraum vorhanden.
Darum ging es mir ja auch. Eine Ausgabe des fehlerverursachenden Querys wäre natürlich nicht richtig für den gemeinen User. Ein einfaches "datenbankzugriffsfehler" ist aber weder beim testen noch beim Einsatz schön.
wenn der fehler z.b. beim speichern von daten auftritt, wie genau stellst du dir da das weiterarbeiten vor?
Wenn man alle möglichen Bugs bis auf ein temporäres Versagen des DB-Servers ausschließen kann, so wäre es hier sinnvoll eine Fehlermeldung auszugeben und das Form wieder mit den Post-Daten zu füllen. So kann man dem User die Möglichkeit geben, es "nochmal zu versuchen".
und beim auslesen hilft wohl auch wenig - wenn im script der wurm ist, dann hilft wohl nur das weitersurfen auf einer anderen seite, bzw. aufruf der selben seite nach einiger wartezeit, wenn der DB-server kurzzeitig nicht verfügbar war.
Es muß aber die Möglichkeit gegeben werden, weitersurfen zu können. Wenn das "die ()" einsetzt, bevor z.B. die Navigation an den Client geschickt wurde, sitzt der User erstmal auf dem Trockenen.
Die ist keine Signatur.
stimmt, die(s) wäre nur dann eine signatur, wenn du ein - weniger verwendest ;-)
stimmt :(