PHP und MySQL

cd_brenner

Aktives Mitglied
Hi Leidln! Hab mir jetzt amal a bissl PHP und MYSQL Grundwissen angeeignet. (Schattenbaum, werd das kennt, hab mir die Site ausgedruckt und Schritt für Schritt durchgenommen)
Jetzt hab ich einige Fragen zu My SQL:
Ich will sowas ähnliches wie ein kleines CMS machen, wo registrierte benutzer einen Kalender erweitern können. Das heisst ich muss alles von einem Formular in eine Variable schreiben.

2) Jetzt hab ich angenommen 2 Datensätze in meiner Tabelle und jemand will einen neuen dazuschreiben. Es funktioniert gut, dass der neue Datensatz in die Datenbank eingetragen wird, aber wie kann ich ihn mit der PHP Datei abfragen. Es müsste dann ja automatisch eine neue Abfrage gestartet werden, und manuell will ich das nicht machen.

3) Wenn ich meine Daten (Datum, Uhrzeit und Beschreibung) die in der DB stehen ausgeben will krieg ich immer eine unübersichtliche Schlange
Ich würde gerne 1 Kästchen Abfragen, das in einer Varieable speichern und dann im PHP Code verwenden. Mein Code für die Abfrage:
QUOTE $abfrage= "SELECT * FROM termine";

$ergebins=mysql_query($abfrage);

while($row=mysql_fetch_object($ergebins))
{
echo $row->datum;
}
 
Hallo!

Du solltest den Ergebnisstring so auslesen:

while ($row=mysql_fetch_array($ergebnis))
{
echo ("$row[feldnamedatum] - $row[feldname2tesFeld]...");
}

Dann bekommst Du ein mehrdimensionales Array $row geliefert, dass Du nach den einzelnen Feldinhalten ausgeben kannst.

Die Abfrage SELECT * FROM ist tötlich! Lese nur die Felder aus, die Du brauchst: SELECT datum, uhrzeit FROM. Wenn Du mal ein paar mehr Datenbanken hast, zieht Dir das die Performance sonst runter.

Um nur den jeweiligen Tag auszulesen solltest Du ein WHERE auf das Datum in die Anfrage einsetzen. Also:

SELECT datum, beschreibung FROM termine WHERE datum = 'Dein Wunschdatum'.

Das Array liefert dann auch nur die passenden Einträge.

Grüße

Sascha
 
Danke für deine tolle Antwort, muss sowiso sagen, dass ihr alle echt super seit!
Ihr alle könnt einem wirklich gut weiterhelfen!!!!!

Angenommen in meiner Datenbank stehen 3 Datensätzt (3xDatum, 3xUhrzeit und 3xBeschreibung). Jetzt müsste ich ja noch den neuen Datensatz abfregen und in den Code einbauen. Wenn ich mir die Formulardaten zuschicke und dann eintrage würde ich mir leichter tun.
Das heisst, es muss der neue Datensatz automatisch abgefragt werden und in den PHP Code eingebunden werden. Wie kann ich sowas machen??

Wahrscheinlich ist das ganze umständlich formuliert, aber ich bin in PHP ein totaler Neuling.

Vielen Dank, Markus
 
Eine Frage: Was bringt sich das wenn ich das Datum erst wieder bei "Dein Wunschdatum" reinschreiben muss.

Ich will ja den wert der in der ersten zeile in der zweiten Spalte steht im Code verwenden, wenn ich im Code schreibe, dass ich das Datum 20.10.1990 will, bringt sich das für mich nichts, weil dann kann ichs ja gleich in einen normalen HTML Code schreiben.

Um Hilfe bittend, Markus
 
Hallo!

Du hast Recht, so ganz verstehe ich nicht was du jetzt willst, aber:


Wenn Du einen einzelnen Tag abfragen willst, dann ist es sinnvoll das "WHERE Datum =" zu benutzen. Z.B. innerhalb eines Kalenders.

Den neuen Datensatz kannst Du doch gleich in die Datenbank schreiben (INSERT INTO).

Wenn Du eine Sicherheit haben willst, dass kein Besucher Blödsinn eingibt, kannst Du ja noch ein Datenfeld anhägen und dieses mit einem Flag versehen. Über diesen Flag regelst Du dann das Freischalten der Beiträge. Z.b. 1 = kontrolliert und wird angezeigt - 0 = noch nicht kontrolliert.

Sonst poste doch mal Deinen relevanten Quellcode. Dann bekommst Du bestimmt auch mehr Hilfe.

CU

Sascha

 
Die Daten schreiben mir die Benutzer rein, es geht da um ein CMS für eine Jugendraumseite.
Der Raumchef würde dann in einen passwortgeschützten bereich einsteigen und dort via Formular die Datenbank mit Datum Uhrzeit und Beschreibung füttern.
In der Kalenderseite ist jetzt eine Tabelle mit genau 3 Spalten. Alle Daten aus der Datenbank werden dort eingetragen bzw PHP macht das.

Wenn jetzt ein neuer Kalendereintrag über das Formular dazukommt, muss ja die Tabelle auf der Kalenderseite um 1 Zeile (mit 3 Spalten) vergrösert werden.

In jedes kästechen der Tabelle würde dann 1 Information komm (z.B Datum)
Der aufbau der Spalten ist immer: Datum>Uhrzeit>Beschreibung.

Verstanden??

Danke Markus
 
.. noch nicht ganz verstanden, aber interpretiere das mal so:

Es geht Dir darum, dass die gerade eingegebenen Daten entweder dem Nutzer, oder dem Admin angezeigt werden, oder?

Wenn die Daten über ein Formular eingegeben werden, dann ruft dieses, beim Absenden, die Seite doch neu auf. Solange der INSERT vor dem SELECT steht bekommst Du über die while-Schleife alle Daten (incl. neuem Termin) wieder aus der DB.

Greetz


Sascha
 
Es soll gehau so gehen wie in diesem Forum:
Ich nehme an dass mein beitrag in einer MySQL Datenbank gespeichert wird.
Er wird dann aber gleich unten in in meiner POST angezeigt.
Das heisst es muss hier einfach eine neues Kästchen erzeugt werden wo meine nachricht angezeigt wird.
Genau so solls in meine Kalender auch gehen. Jedesmahl wenn ein neuer Eintrag in der MySQL eingetragen wird, soll meine Tabelle um eine Zeile erweitert werden, und dort der neue Datensatz angezeigt werden.

GLG Markus
 
Ich glaub ich, ich formuliere da falsch.
Was ich will ist:
Forumar ausfüllen > in DB eintragen > Daten auslesen und anzeigen.

Jedes mal wenn daten dazukommen, sollen die Daten in einer Tabelle ausgegeben werden. Kommt ein Datensatz dazu oder weg muss ja logischerweise die Tabelle die ausgegeben wird gröser oder kleiner werden.

Meine Frage:
Wie kann ich mit PHP die Ausgabetabelle, im Bezug auf die Datenbank, vergrösern oder verkleinern.

Wenn was dazukommt müsste dann dieser HTML Code ausgegen werden:

<tr>
<td>Datum*</td>
<td>Uhrzeit*</td>
<td>Beschreibung*</td>
</tr>

*jeweils immer mit dem Neuen Datensatz.

GLG Markus, Danke!
 
QUOTE (Sascha Preisegger @ Do 11.8.2005, 6:10) Wenn die Daten über ein Formular eingegeben werden, dann ruft dieses, beim Absenden, die Seite doch neu auf. Solange der INSERT vor dem SELECT steht bekommst Du über die while-Schleife alle Daten (incl. neuem Termin) wieder aus der DB.

Hallo!

Hatte ich schon erklärt:

1. Jemand füllt das Formular aus
2. Er sendet es ab (im einleitenden Form-TAG steht dann die action="ausführende Seite")
3. Ausführende Seite wird aufgerufen

Wenn Du nun in die Tabellen-Übersichtsseite Dein Formular einbaust und als action = "<?PHP echo $PHP_SELF; ?>" definierst, dann ruft das Formular sich selbst auf.

Nun prüfst Du über den submit-Button (Existenz des Submit-Namens [type="submit" name="submit"]), ob das Formular bereits abgesendet wurde:

if ($submit)
{
... der ganze INSERT Krams
}

JETZT die Schleife für die Ausgabe öffnen:

SELECT datum, beschreibung FROM ...

while ($row = mysql_fetch_array($ergebnis))
{
echo "(<tr><td>$row[datum]</td><td>$row[beschreibung]</td></tr>)";
}

Du mußt die Ausgabeseite neu laden, dann werden auch alle Daten angezeigt.

Jetzt verstanden?


Gruß

Sascha
 
cd_brenners ausgabe code:
CODE
$abfrage= "SELECT * FROM termine";

$ergebins=mysql_query($abfrage);

while($row=mysql_fetch_object($ergebins))
{
echo $row->datum;
}



sascha, warum sollte er die abfrage mit 'mysql_fetch_array' machen?
die funktion mysql_fetch_object liefert das gleiche ergebnis, nur das die daten nicht in einem Array gespeichert werden sondern in einem Objekt mit Eigenschaften welches mit dem 'gefetchen' $row 'kooperiert'.


MFG
 
QUOTE (sh1t0R @ Fr 12.8.2005, 15:43) sascha, warum sollte er die abfrage mit 'mysql_fetch_array' machen?
die funktion mysql_fetch_object liefert das gleiche ergebnis, nur das die daten nicht in einem Array gespeichert werden sondern in einem Objekt mit Eigenschaften welches mit dem 'gefetchen' $row 'kooperiert'.


.. weil er dann die einzelnen Feldinhalte in einer Tabelle einfacher ausgeben kann. Außerdem kann man das Array hinterher noch nach Belieben modifizieren und sortiert (wenn man es nicht schon im SELECT getan hat).

Meine persönliche Meinung - ist eine elegantere und vielseitigere Lösung.

GFM - MFG

Sascha
 
du kannst auch ohne probleme die objekte an variablen zuweisen:
$topic = $row->topic;

ich persoehnlich schaffe nicht mit dem aber nur damits gesagt ist :x
verwende mysql_fetch_assoc: liefert ein assoziatives array zurueck.
 
Zurück
Oben