Ist mir durchaus bewusst, aber ich sehe mich einfach nicht in der Pflicht, produktionsreifen Code zu liefern.
Ich denke, sowas sollte man jemandem nicht vorkauen, sondern wenn überhaupt gleich mit erklären.
Hallo,ich bin ein absoluter PHP-Anfänger,und möchte ein Formular erstellen,dass die Ergebnisse auf eine andere Seite überträgt und anzeigt.
Das funktioniert aber nicht,sooft ich das auch umändere.
Das Formular in HTML:
Das PHP-Script,wo es ausgelesen wird:
Ich habe irgendwie das Gefühl,dass was fehlt...
Ist es überhaupt möglich,die Daten in einem reinen HTML-Dokument (ohne irgendwelche PHP-Zeilen) zu erhalten?
Das seltsamste ist eigentlich,dass der größte Teil eigentlich aus einer anderen Seite rüberkopiert wurde und trotzdem im dem Zieldokument nix steht!(Ich benutze Firefox 2.0.0.14)
Natürlich ist
in der dataget.php.Aber wenn ich ja mir die dataget.php ansehe,steht da nichts!
Zur Verarbeitung:Ich habe die Form action auf ="Abc.html" umbenannt,die Seite,wo die die Formulardaten eingebe,damit sie sich selbst wieder aufruft.Und unter dem Formular-Code habe ich die eingegeben,damit er sie ausgibt.Aber das funktioniert auch nicht.Oder wie soll man das machen?
Also so:
Noch ein Tipp: Zum Testen fand ich es am Anfang immer sehr praktisch, die Methode auf "get" statt auf "post" zu stellen (und natürlich dementsprechend in der PHP-Datei $_GET zu verwenden), da man dann die übergebenen Daten gleich in der URL sieht. Und auch selber leicht Sachen einspeisen kann, indem man einfach (als Beispiel den jetzigen Fall) ".../dataget.php?benutzername=blabla" in die Adressleiste eingibt.
Und wie mitaki schon gesagt hat, wenn du sagst, dass da "nichts steht", schau auf jeden Fall auch in den Seitenquelltext, um zwischen "der Server gibt nichts aus" und "der Browser zeigt nichts an" zu unterscheiden.
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich?
Wie kann ich das Verhindern oder Optimieren?
...
Sofern du den Kategorienamen nicht per phpmyAdmin veränderst, sondern mit einem Script, sehe ich da keine Probleme.
$update0 = mysql_query("UPDATE kategorien Set kategorie_name='456'"); $update = mysql_query("UPDATE tabelle Set kategorie='456' WHERE kategorie = '123'");
Also ich habe 2 Tabellen, eine für Kategorien und eine für Spiele.
Wenn ich jetzt einen neuen Eintrag in die Tabelle Spiele mache wird eine Kategorie auch gleich mit eingetragen und zwar die die aus der Tabelle Kategorie ausgewählt wurde. Wenn ich jetzt aber ein Kategorie Name änder, wird er aber nicht in der Tabelle Spiele geändert, das heißt wenn ich jetzt alle Einträge aus der Tabelle Spiele mit der Kategorie "123" Anzeigen lassen will aber vorher den Kategorie Namen in z.b. "456" geändert habe kann mir ja nichts mehr angezeigt werden.
Verständlich?
Wie kann ich das Verhindern oder Optimieren?
...
Sorry, aber wie grauenhaft schlechter Stil ist das denn bitte?
Du legst gefälligst in der Tabelle für die Kategorien eine Spalte ID (die meinetwegen auch anders heißen kann) an, die eine einzigartige und unveränderliche Nummer enthält (also einfach PRIMARY KEY auto_increment in PMA setzen) und referenzierst diese Nummer in der Tabelle der Spiele statt des Namens. Problem solved, so musst du den Namen eh erst abfragen und er wird nur einmal gespeichert.
Neben der Lösung deines Problems spart es Speicherplatz in der Tabelle und erhöht die Performance (da du vermutlich den Namen nicht zum Key gemacht hast), auch wenn du erst noch den Namen abfragen musst. Geht sogar mit nur einem Query:
SELECT g.*, c.name AS category_name FROM games AS g LEFT JOIN categories AS c ON (g.category = c.id)
(und bitte kommt mir jetzt nicht mit "ne ganze Zeile zu selecten ist schlechter Stil", das ist nur Beispielcode! )
Ich habe eine DATE Spalte. Wie kann ich alle Einträge von z.B. 5 Tagen abfragen, mit nem gewissen Offset, der Offset ist eine Anzahl Tage nicht eine Anzahl Einträge?
Die Anzahl der Daten(pl. von Datum) kann ich ja über
$sql = "SELECT COUNT( DISTINCT `date` ) as `anz` FROM table;";
abfragen.
Hab gedacht mit einer Group By Selektion, dann bekomm ich ja 5 Einträge, müsste dann aber eine zweite Anfrage durchführen. Get das nun auch eleganter?
Hm, je nachdem, was du genau willst. Mit der jetzigen Methode würdest du ja, wenn ich's recht verstehe, die Einträge von den letzten fünf Tagen mit existierenden Einträgen bekommen, also z.B. die Einträge der letzten sechs Tage, falls für einen der letzten fünf keine Einträge vorhanden sind.
Aber falls das nicht gewünscht ist, würde ich's wahrscheinlich mit TO_DAYS() oder UNIX_TIMESTAMP() machen, und auf eine Differenz kleiner 5 (bzw. kleiner 5 * 24 * 60 * 60) filtern. Also:
SELECT * FROM `table` WHERE TO_DAYS(`date`) - TO_DAYS(NOW()) < 5
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
Hm, je nachdem, was du genau willst. Mit der jetzigen Methode würdest du ja, wenn ich's recht verstehe, die Einträge von den letzten fünf Tagen mit existierenden Einträgen bekommen, also z.B. die Einträge der letzten sechs Tage, falls für einen der letzten fünf keine Einträge vorhanden sind.
...
Ja das will ich, nur jetzt noch mit einem Offset, also die 5 Tage vor den aktuellen 5 Tagen. Nur könnten da z.B.... sagen wir mal es ist der 12. Tag, der 8. und der 4. sind ohne Eintrag, jetzt will ich z.B. 12-7 herausfiltern können, aber auch auf einer anderen Seite 6-1.
SELECT * FROM `table` WHERE TO_DAYS(NOW()) - TO_DAYS(`date`) - 5 < 5 AND TO_DAYS(NOW()) - TO_DAYS(`date`) - 5 > 0
...
Nein, das beachtet ja nicht, ob es keine Einträge zu einem Datum hat, wie drunken monkey gesagt hat, will ich, falls 2 leer sind, 7 Tage anzeigen lassen.
Ja das will ich, nur jetzt noch mit einem Offset, also die 5 Tage vor den aktuellen 5 Tagen. Nur könnten da z.B.... sagen wir mal es ist der 12. Tag, der 8. und der 4. sind ohne Eintrag, jetzt will ich z.B. 12-7 herausfiltern können, aber auch auf einer anderen Seite 6-1.
...
In dem Fall würde ich wohl einfach die zwei Abfragen verwenden. Wahrscheinlich ging's auch mit komplizierten geschachtelten Abfragen, aber sich darüber den Kopf zu zerbrechen ist es wohl nicht wert, und ob's performanter oder klarer wäre ist auch sehr stark die Frage. <__<
--
A human is a system for converting dust billions of years ago into dust billions of years from now via a roundabout process which involves checking email a lot.
So wäre es eigentlich gut gelöst. Ist JS aktiviert wird das linkziel per "return false" außer Kraft gesetzt und die JS Instruktionen werden befolgt.
Ist JS deaktiviert wird der User zum Linkziel geleitet.
Das Problem an der Sache ist nur, dass die Javascript Eventhandler, soweit ich weiß, nicht mehr mit dem aktuellen HTML konform sind.
Welche andere Lösungsmöglichket gibt es denn hier?
Btw. Wie lassen sich den generell die recht nützlichen Eventhandler ersetzen? (OnFocus, OnBlur z.B.) ?
So wäre es eigentlich gut gelöst. Ist JS aktiviert wird das linkziel per "return false" außer Kraft gesetzt und die JS Instruktionen werden befolgt.
Ist JS deaktiviert wird der User zum Linkziel geleitet.
Das Problem an der Sache ist nur, dass die Javascript Eventhandler, soweit ich weiß, nicht mehr mit dem aktuellen HTML konform sind.
Welche andere Lösungsmöglichket gibt es denn hier?
Btw. Wie lassen sich den generell die recht nützlichen Eventhandler ersetzen? (OnFocus, OnBlur z.B.) ?
...
Da liegst du falsch. Die Event-Handler sind sogar in XHTML 1.1 noch konform, wenn man sie komplett klein schreibt. Wenn der Validator also bei onClick meckert, nenn ihn onclick und alle sind glücklich.
Außerdem könnte man sie notfalls durch reines Javascript ersetzen: document.getElementById('link').onclick = handler_function;
Da liegst du falsch. Die Event-Handler sind sogar in XHTML 1.1 noch konform, wenn man sie komplett klein schreibt. Wenn der Validator also bei onClick meckert, nenn ihn onclick und alle sind glücklich.
Außerdem könnte man sie notfalls durch reines Javascript ersetzen: document.getElementById('link').onclick = handler_function;
...
Nagut, hab ich mich wohl getäuscht
Danke jedenfalls =)