 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Fragen stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
28.03.2002, 21:39
|
#31
|
|
Registered User
Registriert seit: Dec 2001
Ort: Berlin
|
hm ich hör für heute auf, war aber witzig ich mach morgen wieder mit ihr werdet ja heut nich alles machn  hoff ich :gg: also gutes gelingen und viel spass
cya
ToXiCaL
|
|
|
28.03.2002, 21:43
|
#32
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
Zitat:
Original geschrieben von Toxical
hm ich hör für heute auf, war aber witzig ich mach morgen wieder mit ihr werdet ja heut nich alles machn hoff ich :gg: also gutes gelingen und viel spass
cya
ToXiCaL
|
kannst ja morgen weiterlesen 
Ich mach jetzt auf jeden Fall noch weiter, falls schmobi noch will. jetzt wirds ja endlich interessant!
|
|
|
28.03.2002, 21:50
|
#33
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
Fragen
Ich hab da mal zwei Fragen:
- Woher weiß denn MySQL jetzt, dass die "adressen" aus der Datenbank "test" gemeint sind?
- Wann muss man eigentlich immer ein '@' vor den mysql-Anweisungen schreiben? Beispiel: @mysql_connect <=> mysql_select_db
Oder ist das egal?
|
|
|
28.03.2002, 21:57
|
#34
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
War ein kleiner Tippfehler, es muss natürlich heissen:
PHP-Code:
mysql_select_db("test");
Das "@" unterdrückt Fehlermeldungen, so kann man z.B. hiermit eigene Meldungen ausgeben, ohne dass man den Besucher mit denen von PHP erschreckt:
PHP-Code:
@mysql_connect() or die("Konnte keine Verbindung aufnehmen");
__________________
Give up yourself into the moment — The time is now.
|
|
|
28.03.2002, 22:00
|
#35
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Step 3
Datensätze lesen
Als nächstes lernen wir die Funktion mysql_query() kenne, welche SQL-Abfragen ausführen kann. Sie erwartet mindestens die SQL-Klausel ( SELECT * FROM adressen etc.) und optinonal den Verbindungshandler. Letzterer ist dann nötig, wenn mehrere Verbindungen geöffnet sind. Das Script sieht jetzt also so aus (der SQL-Teil steht in einer Variablen, damit es übersichtlicher ist):
PHP-Code:
<?
$verbindung = mysql_connect("localhost","root",""); // Diese Daten koennen natürlich auch aus Variablen gelesen werden
mysql_select_db("adressen");
$abfrage = "SELECT * FROM adressen";
mysql_query($abfrage, $verbindung);
mysql_close($verbindung);
?>
WEnn wir dieses Script nun ausführen passiert immer noch nichts, denn es wurde lediglich ein Pointer auf die entsprechenden Datensätze gesetzt. Diese müssen wir nun in einer Schleife auslesen, wobei die einzelnen Felder einer jeden Zeile in einem Array zur Verfügung stehen. Innerhalb derselbigen geben wir jeden Datensatz per print() aus:
PHP-Code:
<?
$verbindung = mysql_connect("localhost","root",""); // Diese Daten koennen natuerlich auch aus Variablen gelesen werden
mysql_select_db("test");
$abfrage = "SELECT * FROM adressen";
$ergebnis = mysql_query($abfrage, $verbindung);
while ($zeile = mysql_fetch_array($ergebnis)){
print("$zeile[nachname],$zeile[vorname],$zeile[plz] $zeile[ort],$zeile[telefon]<br>");
}
mysql_close($verbindung);
?>
Das SCript wirkt jetzt schon sehr komplex, gibt es da irgendwelche Unklarheiten?
__________________
Give up yourself into the moment — The time is now.
|
|
|
28.03.2002, 22:07
|
#36
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
ok, habs verstanden.
zu meiner Frage nochmal:
kann man immer ein '@' davorschreiben, auch wenn kein die() danach kommt?
|
|
|
28.03.2002, 22:14
|
#37
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
doch nicht...
Kannst du mir mal schnell die Schleife erklären:
PHP-Code:
while ($zeile = mysql_fetch_array($ergebnis)){
print("$zeile[nachname],$zeile[vorname],$zeile[plz] $zeile[ort],$zeile[telefon]<br>");
}
Vor allem was "mysql_fetch_array" und $zeile[*] bedeutet.
|
|
|
28.03.2002, 22:15
|
#38
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Ja, dann passiert im schlimmsten Falle gar nichts.
Du kannst eine Überprüfung bzgl. erfolgreicher Verbindung etc. natürlich auch so realisieren:
PHP-Code:
$verbindung = @mysql_connect();
if(! $verbindung){
print("Fehler!");
}
__________________
Give up yourself into the moment — The time is now.
|
|
|
28.03.2002, 22:24
|
#39
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Re: doch nicht...
Zitat:
Original geschrieben von Levis
Kannst du mir mal schnell die Schleife erklären:
PHP-Code:
while ($zeile = mysql_fetch_array($ergebnis)){
print("$zeile[nachname],$zeile[vorname],$zeile[plz] $zeile[ort],$zeile[telefon]<br>");
}
Vor allem was "mysql_fetch_array" und $zeile[*] bedeutet.
|
Das ist ganz einfach:
Die Daten werden zeilenweise eingelesen (-> Tabelle). Die Funktion mysql_fetch_array() zerlegt innerhalb der Schleife jeden Datensatz in ein Array. Die einzelnen Felder stehen Dir somit als $array[index] zur Verfügung.
__________________
Give up yourself into the moment — The time is now.
|
|
|
28.03.2002, 22:27
|
#40
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
jetzt
Zitat:
Original geschrieben von schmobi
Das ist ganz einfach:
|
Stimmt. 
Jetzt hab ichs verstanden. Danke!
|
|
|
28.03.2002, 22:54
|
#41
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Im momentanen Output fehlt natürlich noch die Strasse (sorry, war etwas verpeilt), aber diesen Fehler zu beheben, sollte ja kein Problem sein, oder? 
__________________
Give up yourself into the moment — The time is now.
|
|
|
29.03.2002, 00:37
|
#42
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
no problem
Zitat:
Original geschrieben von schmobi
Im momentanen Output fehlt natürlich noch die Strasse (sorry, war etwas verpeilt), aber diesen Fehler zu beheben, sollte ja kein Problem sein, oder?
|
Kein Problem!
In 10 Stunden gehts weiter *freu* 
|
|
|
29.03.2002, 02:23
|
#43
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
Und nun sind es nur noch 8 1/2 Stunden  .
Jetzt geh ich aber mal ins Bett, sonst bin ich morgen nicht fit genug
Gute Nacht!
|
|
|
29.03.2002, 11:06
|
#44
|
|
TP-Greis
Registriert seit: Jun 2001
Ort: Bonn-Altstadt
|
Morgähn!
Step 3
Neue Datensätze anlegen
Damit wir gleich wie die Verrückten unsere Datenbank abfragen können, sollten wir noch einige Datensätze hinzufügen. Das geht entsprechend einfach, da in PHP bekanntlich alle Werte aus Formular-Feldern unter ihrem HTML-Namen innerhalb des verarbeitenden Scripts als Variablen zur Verfügung stehen.
Code:
HTML: <input type="text" name="eingabefeld1">
PHP: $eingabefeld1
Das Eingabefeld ist also schnell gebaut, wir benötigen nur die Felder für Vorname, Nachname, Strasse, PLZ, Ort und Telefon. Da das Script sich selber aufruft, benötigen wir noch ein verstecktes Feld namen " action", in dem wir dem Script sagen können, was es tun soll:
Code:
<form action="<?php $PHP_SELF ?>">
Vorname: <input type="text" name="vorname"><br>
Nachname: <input type="text" name="nachname"><br>
Strasse: <input type="text" name="strasse"><br>
PLZ: <input type="text" name="plz"><br>
Ort: <input type="text" name="ort"><br>
Telefon: <input type="text" name="telefon"><br>
<input type="hidden" name="action" value="neu">
<input type="submit" value="Speichern">
</form>
In der Konstanten " $PHP_SELF" ist immer der Pfad zum Script gespeichert, wir müssen uns also keine langen URL merken. Am Anfang des Script fragen wir jetzt ab, ob die Variable " $action" existiert und welchen Wert sie hat:
PHP-Code:
if($action == "neu"){
// Anweisungen
}
Wenn dem so ist, führen wir eine SQL-Query aus und lassen uns über das Speichern informieren:
PHP-Code:
$abfrage = "INSERT INTO adressen (vorname,nachname,strasse,plz,ort,telefon) VALUES ('$vorname', '$nachname','$strasse','$plz','$ort','$telefon')";
mysql_query($abfrage, $verbindung);
print("Neuen Datensatz gespeichert!<br>")
Die SQL-Anweisung ist sehr einfach aufgebaut (kein LIMIT etc.) und sollte jedem verständlich sein. Hier noch mal der schematische Aufbau:
PHP-Code:
INSERT INTO [Datenbank] ([diese Felder]) VALUES ([diese Werte])
Die einzufügenden Werte stammen direkt aus dem Formular und tragen die gleichen Bezeichnungen, wie die entsprechenden Felder in unserer Datenbank. Das ist natürlich nicht zwingend, aber erhöht die Übersichtlichkeit. Unser Script sieht nun also so aus:
PHP-Code:
<html>
<head>
<title>Workshop</title>
</head>
<body>
<p>
<?
$verbindung = mysql_connect("localhost","root",""); // Diese Daten koennen natuerlich auch aus Variablen gelesen werden
mysql_select_db("test");
if($action == "neu"){
$abfrage = "INSERT INTO adressen (vorname,nachname,strasse,plz,ort,telefon) VALUES ('$vorname', '$nachname','$strasse','$plz','$ort','$telefon')";
mysql_query($abfrage, $verbindung);
print("Neuen Datensatz gespeichert!<br>");
}
$abfrage = "SELECT * FROM adressen";
$ergebnis = mysql_query($abfrage, $verbindung);
while ($zeile = mysql_fetch_array($ergebnis)){
print("$zeile[nachname],$zeile[vorname],$zeile[plz] $zeile[ort],$zeile[telefon]<br>");
}
mysql_close($verbindung);
?>
</p>
<p>
<b>Neue Adresse eintragen</b>
<form action="<?php $PHP_SELF ?>">
Vorname: <input type="text" name="vorname"><br>
Nachname: <input type="text" name="nachname"><br>
Strasse: <input type="text" name="strasse"><br>
PLZ: <input type="text" name="plz"><br>
Ort: <input type="text" name="ort"><br>
Telefon: <input type="text" name="telefon"><br>
<input type="hidden" name="action" value="neu">
<input type="submit" value="Speichern">
</form>
</p>
</body>
</html>
__________________
Give up yourself into the moment — The time is now.
|
|
|
29.03.2002, 11:31
|
#45
|
|
TP-Moderator
Registriert seit: Jul 2001
Ort: Regensburg / Landshut
|
norgään
guten morgen,
jetzt muss ich mir das erst einmal alles durchlesen... 
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchs | | |