
Werbung
FAQ
Immer wieder auftretende Fragen und Problem:
Wie erstelle ich eine PHP-Datei?
Du öffnest einen Texteditor und schreibst deinen PHP-Code hinein. Das ganze speicherst du dann mit der Endung .php ab.
Ich übergebe meine Variablen genauso, wie du es beschreibst. Warum bekomme ich sie dennoch nicht angezeigt?
Vermutlich sind auf deinem Server die Sicherheitseinstellungen von PHP aktiv. Bei älteren PHP-Versionen brauchst du dadurch, um Zugriff auf die Variablen zu bekommen $HTTP_GET_VARS["Variablenname"] bzw. $HTTP_POST_VARS["Variablenname"] - je nachdem, ob die Variablen via Post oder via Get übertragen wurden. Bei aktuellen PHP-Versionen reichen die Kurzformen $_GET["Variablenname"] bzw. $_POST["Variablenname"].
Wie kann ich Dezimalzahlen verwenden?
PHP verwendet bei Dezimalzahlen anstatt dem Dezimalkomma einen Dezimalpunkt. Du musst also anstatt 3,5 3.5 verwenden. Wenn du die Ausgabe der Zahlen mit Komma haben möchtest, kann dir die Funktion number_format hilfreich sein - das solltest du aber nur verwenden, wenn du mit den Zahlen nicht mehr rechnen möchtest, da es Zahlen in Text umwandelt. Nährere Infos dazu findest du unter www.php.net.
Wie kann ich PHP dazu bringen, gerade und ungerade Zahlen voneinander zu unterscheiden?
Es gibt eine ganz einfache Methode, um zu prüfen, ob eine Zahl gerade oder ungerade ist. Dabei machen wir uns die Tatsache, dass eine gerade Zahl bei einer Division durch 2 immer 0 Rest hat, zunutze.
Den Restwert einer Division erhält man in PHP mit dem Operator % - also so, wie man zum addieren das + verwendet oder für eine Division den /. Das sieht dann so aus:
$restwert = 4 % 2; Dabei wird 4 durch 2 dividiert und das Ergebnis ist in diesem Fall 0, da ja 0 Rest bleibt. Würde man die selbe Rechnung mit 5 % 2 ausführen, wäre das Ergebnis 1, weil 5/2 = 2, 1 Rest.
Man erhält also nicht das Ergebnis der Division, sondern lediglich den Restwert - das kann am Anfang etwas verwirrend sein.
Wenn wir jetzt wissen wollen, ob die in der Variable $pruefzahl gespeicherte Zahl gerade ist, benötigen wir einfach nur folgendes:
$restwert = $pruefzahl % 2; Ist der Restwert 0, handelt es sich um eine gerade Zahl, ist er etwas anderes, handelt es sich um eine ungerade Zahl.
Das kann dann noch mit if-Abfragen oder ähnlichem kombiniert werden.
Wie kann ich in PHP die Schriftart oder -farbe ändern, ein Hintergrundbild einrichten etc.?
Gar nicht. PHP hat absolut keine Einfluss auf die Formatierung der ausgegebenen Daten, es liefert immer nur reinen Text. Zum Formatieren brauchst du auf jeden Fall HTML oder CSS!
Ich bekomme einen parse_error in Zeile xy angezeigt, aber da ist ganz sicher kein Fehler!
Wenn sich der Fehler bei einem parse_error partout nicht finden lässt, kann es manchmal hilfreich sein, die Zeilen darüber ebenfalls genau zu betrachten. Fehlt zB eine Anführungszeichen oder ein Semikolon, kann es durchaus passieren, dass dieser Fehler erst Zeilen weiter unten wirklich ins Gewicht fällt bzw. PHP auffällt.
Daher also ruhig großräumiger nach einem Fehler suchen, wenn eine Suche in der angegebenen Fehlerzeile nichts bringt.
Bei mktime klappt plötzlich etwas nicht - was ist da los?
Vermutlich hast du irgendwo in den Werten eine führende Null verwendet. Diese werden von PHP in diesem Fall falsch interpretiert, also bitte nie mktime(0,0,0,04,12,2007) verwenden, sondern mktime(0,0,0,4,12,2007).
Ich brauche das Osterdatum. Wie berechne ich das?
Wie es berechnet wird kann ich dir auch nicht sagen, aber PHP hat eine nette Funktion dafür:
$ostern = easter_date(2000);
In der Klammer wird das gewünschte Jahr angegeben, der Rückgabewert ist ein timestamp, der noch mit date formatiert werden kann.
Mehr Informationen, sowie Hintergründe findet sich (wie immer) auf php.net. Dort gibt es auch weitere Kalenderfunktionen, die vielleicht nicht gerade häufig gebraucht werden, aber dennoch einen Blick wert sind.
Mein INSERT funktioniert einfach nicht. Was ist da los?
MySQL ist beim Insert ziemlich kleinlich. Ein falscher Spaltenname (nicht vorhanden oder falsch geschrieben) oder auch zuviele oder zuwenig Werte, die übergeben werden bringen MySQL dazu, gar nichts einzutragen. Wenn dein Insert also nicht klappt, schau am besten zuerst alles durch, ob du dich vielleicht irgendwo vertippt hast (vergleiche die Spaltennamen zur Sicherheit auch noch einmal mit denen in der Datenbank - auch wenn du dir dort sicher bist, dass sie so heißen, wie du sie genannt hast!) und schaue dann, ob du die gleiche Anzahl an Werten übergibst, wie du Spalten angegeben hast, vielleicht fügst du ja einen Wert doppelt ein oder Ähnliches.
Wie kann ich mehrere Werte auf einmal in die Datenbank einfügen?
Voraussetzung dafür ist, dass die selben Felder gefüllt werden sollen. Die Werte für jeden Datensatz werden ganz normal in Klammern angeführt, die Datensätze per Komma getrennt.
INSERT INTO tabellenname (feldname1, feldname2) VALUES ('abc', 'def'), ('ghi', 'jkl'), ('mno', 'pqr')
Kann ich beim Suchen auch Platzhalter verwenden?
Klar. Während die meisten Suchfunktionen einen Stern als Platzhalter für unbekannte Teile verwenden - also zB Daten* für alles, was mit "Daten" beginnt - ist der Platzhalter in MySQL das Prozentzeichen. Möchte man also zB nach allen Einträgen in einem Feld suchen, die den Begriff "tier" enhalten (von Haustier bis Tierheim ;-)), dann schaut das die Abfrage so aus:
SELECT * FROM tabelle WHERE spaltenname LIKE '%tier%'
Soll das gewünscht Ergebnis "tier" lediglich am Anfang haben (also Tiergarten, Tierfreund etc., aber nicht Faultier oder Arbeitstier), verwendet man das Prozentzeichen lediglich am Ende:
SELECT * FROM tabelle WHERE spaltenname LIKE 'tier%'
Das selbe funktioniert natürlich auch, wenn man es nur am Anfang anwendet. Dann sind die Ergebnisse eben Elterntier, Fabeltier, Stofftier etc., aber eben nicht Tierarzt oder Tierliebe.
Kann ich meine Tabelle kopieren? Oder umbenennen?
phpMyAdmin bietet komfortable Möglichkeiten um Tabellen (mit und ohne Daten) zu kopieren.
Dafür wählt man zunächst die gewünschte Tabelle aus (entweder in der linken Menüleiste anklicken oder in der Tabellenübersicht auf Eigenschaften gehen) und geht danach auf Operationen (in der oberen Menüleiste).
Neben der Möglichkeit, die Tabelle umzubenennen, oder sie, so wie sie ist, zu verschieben, kann man dort auch Tabellen kopieren.
Dafür wählt man die Datenbank aus, in die die Tabelle kommen soll und legt dann einen Tabellennamen fest. Anschließend kann man noch wählen, ob man nur die Struktur, Struktur und Daten oder nur Daten (nur sinnvoll, wenn eine Tabelle mit den gleichen Feldern bereits besteht) kopieren möchte.
Achtung: Wenn man die Struktur einer Tabelle kopieren möchte und eine Tabelle gleichen Namens ist bereits vorhanden, muss man zusätzlich einen Haken bei Drop Table setzen, damit sie vor dem Anlegen (der neuen, kopierten Tabelle) gelöscht wird.
Ich möchte PHP und HTML in einer Datei verwenden. Geht das denn?
PHP und HTML lassen sich wunderbar miteinander kombinieren und absolut problemlos in der selben Datei anwenden. Man sollte dabei allerdings bedenken, dass die Datei unbedingt die Endung .php haben muss (sonst funktioniert der PHP-Code einfach nicht) und das man HTML-Teile entweder außerhalb des PHP-Codes (also erst nach einem ?>) schreiben sollte (danach bitte nicht vergessen, PHP wieder einzuleiten, wenn man es verwenden mag) oder man sämtlichen HTML-Code mit echo ausgeben muss und dann an die Maskierung von Anführungszeichen denken muss.
Ich schreibe HTML meistens außerhalb von "PHP-Gebieten", außer es ist nur kurzer Text etc.
Ich möchte PHP lernen, kannst du es mir erklären?
Diese Seite dient als Erklärung. Ich helfe gerne bei der Lösung von spezifischen Problemen weiter, aber wenn du eine persönliche/extra Erklärung haben möchtest, dann nur gegen Bezahlung.
Kannst du mir mal eben xyz programmieren? Für dich ist das doch sicher ein Klacks!
"Mal eben" kann auch ich nichts aus dem Hut zaubern. Außerdem ist auch meine Zeit begrenzt und wenn ich jemandem einen "Gefallen" tue, dann sollte ich den davor auch kennen. Gegen Bezahlung kann man aber auf jeden Fall darüber reden.
Warum ist xyz bei dir nicht erklärt? Warum erweiterst du nicht um xyz? Wie wäre es, wenn du auch noch xyz erklären würdest?
Das kann verschiedene Gründe haben: Entweder, ich habe selbst noch nichts damit gemacht, oder ich hatte bisher keine Zeit, es zu erklären. Vielleicht fehlt mir auch einfach die Lust dazu, oder ich erachte etwas nicht für sinnvoll. In jedem Fall kann es sein, dass ich (irgendwann) eine Erklärung dazu schreibe, aber ich lasse mich weder auf einen Termin ein, noch garantiere ich dafür.
Warum erklärst du xyz so und nicht anders? Warum machst du das so und nicht anders?
Tja, entweder, weil ich es auf diese Art gelernt habe und keine andere kenne oder weil ich meine Art angenehmer finde als eine andere. Und auch wenn du etwas für super sinnvoll und toll hältst kann es sein, dass ich es nicht mag. Und hier wird nun mal so erklärt, wie ICH es bevorzuge.
Machst du das freiwillig/gratis/als Hobby?
Ja, mache ich. Daher freue ich mich natürlich auch immer über ein Danke. Ganz besonders, wenn es nicht nur deswegen kommt, weil man eine Frage gleich anhängt.
Ich hab von einem Kumpel/aus einem Forum/von einer Seite ein Script bekommen, aber es rennt nicht. Kannst du mir das mal eben anpassen/mir sagen, wo der Fehler liegt?
Bei einfachen/kurzen Scripts kann es durchaus sein, dass ich das tatsächlich mache, in den meisten Fällen werde ich dich aber bitten, deinen Kumpel/das Forum/den Seitenbetreiber/den Scriptprogrammierer zu fragen, oder es selbst auszuprobieren.
Hallo Claudia, ich hoffe es ist okay, wenn ich "du" sage...
Ja, sicher. Ich duze ja auch die Leser der PHP-Seite und habe daher absolut nichts dagegen einzuwenden, ebenfalls gedutzt zu werden. Wenn mich aber jemand mit Sie anredet, ist das genauso in Ordnung und ich werde in meiner Antwort ebenfalls das Sie verwenden. |