mysql Datenbank mit phpmyadmin

also:

1.) für jeden Eintrag in die DB brauchst Du einen "INSERT INTO..."-Befehl.
Anstatt mit der Variable kannst Du auch einfach schreiben: mysql_query("INSERT INTO.....",$db_connect); und zwar für jedes Produkt einen solchen Befehl !!!

2.) MySQL-Verbindungen werden beim Beenden des Scripts automatisch wieder geschlossn. Du musst diese also im Normalfall nicht explizit wieder beenden.

3.) zum Auslesen nimmst Du mysql_query("SELECT * FROM pf_produkte")
Genaueres zum SELECT-Befehl gibts in dem MySQL-Handbuch (Link im Thread weiter oben)

4.) blöde Fragen gibts net ;) und lästig sind nur Leute, die nix selbst probieren, sondern nur sagen "ich kann das net, mach ma bitte", aber zu denen zählst Du ja net ;)
Ansonsten ist dieses Board ja für Fragen da! Ich bin genauso froh, wenn jemand meine Fragen beantwortet.

5.) wie weiter oben schonmal beschrieben gibt es meistens mehrere Lösungen für ein Problem, und Lösungen die funktionieren sind im allgemeinen auch richtig. (was nicht immer heißt, das es net auch besser oder einfacher geht)
Wenn ich mir heute meine ersten Scripte anschaue (die teilweise sogar noch im Einsatz sind) denke ich auch jedesmal "mann, haste das kompliziert gemacht". Man lernt eben mit der Zeit immer mehr, und immer bessere Möglichkeiten. Jeder entwickelt im Laufe der Zeit so seinen eigenen "Programmierstil", weil jeder eben für sich entscheidet, welche der Möglichkeiten am einfachsten, besten, effektivsten ist.
Vor allem eines: keine Angst haben, denn "kaputtmachen" kannst Du im Allgemeinen nix. Einfach mal probieren, und wenns eben net geht den Fehler suchen. Dabei lernt man das Meiste ;)

Ach ja: Immer schön drauf achten, daß Scripte "lesbar" bleiben. :)

Gruß
Dunsti

-----edit-----

$db_connect="mysql_connect('xxxx','xxxx','xxxx')"; ist übrigens falsch !!!

$db_connect=mysql_connect('xxxx','xxxx','xxxx'); ohne die "" ist richtig.

-----edit-----
 
So nochmals hi :) vielen dank dass es dir nichts aus macht dass ich soviel frage, aber ich denke immer bevor ich etwas falsches vermute/lerne frag ich doch lieber welche die es wissen :)

ALso mal wieder ein zwei frage *g*

PHP:
$db=@mysql_connect(server,name,pass) or die (mysql_error())

einmal warum muss da das @ vor dem mysql_connect stehen und was bedeutet der befehl mysql_error() und stimmt der syntax ? :)

2. ist es richtig dass der mysql_query Befehl es möglich macht das danach z.B. INSERT INTO BEfehle folgen könnten ?
->
PHP:
mysql_query(INSERT INTO pf_produkte(name,beschreibung,preis) VALUES (?,?,?);

das wirkt auf mich irgendwie falsch, aber ich hab irgendwie noch kein feeling für programmier sprachen :)

3.was ist eine session ?

4.wie kann ich der MYSQL Tabelle sagen dass sie bei einem neuen eintrag die ID spalte (mit auto_increcment) umd einen erhöhen soll... oder macht sie das von alleine ?

5.ist es mäglich dass ich bei INSERT INTO pf_produkte(hier Variabeln reinsetzen könnte die mit einem Form script verbunden sind, dass ich so alles online eingeben könnte ?)

und kannst du wenn ich irgendwo syntax oder andere Fehler gemacht habe sie verbessern :) nicht dass ich alles voll falsch beginn und gar nicht meine fehler finden kann.

nochmals VIELEN DANK !

.... noch eine nachträglich eingereichte Frage :) : was ist hier dran falsch er sagt immer undefined function line 8 oder so


<?php
$db=@mysql_connect('db.protagonist.f2s.com','?','?') or die(mysql_error());

mysql_query("INSERT INTO pf_produkte(name,beschreibung,preis) VALUES (?,?,?)");

echo "<html>\n<body>\n";
$result=@mysql_query("SELECT * FROM pf_produkte");
print_result_table($result);
echo "</body>\n</html>\n";

?>
 
Zuletzt bearbeitet:
1-2 Fragen ???????????????????? ;)

macht nix, frag nur :)

1.) das @ vor einem Befehl unterdrückt Fehlerausgaben
1a) der Befehl mysql_error() enthält immer den zuletzt aufgetretenen MySQL-Fehler ... mysql_errno() die zugehörige Fehlernummer
1b) die Syntax ist fast korrekt: ganz am Ende noch ein ;

2.) SQL-Befehle müssen immer in " "
also: mysql_query("INSERT ......");

3.) mit Sessions kannst Du bestimmte Werte in einer Variablen speichern. Diese Variable verliert aber NICHT ihren Wert, wenn ein Script zu ende ist. (ist recht komplex, deswegen schau doch mal in ein PHP-Buch, um genauere Info's zu bekommen)

4.) sobald eine Spalte "auto_increment" hat wird der Wert darin automatisch hochgezählt. Du musst (kannst) dieses Feld nicht selbst schreiben.

5.) ja, da können auch Werte aus einem Formular rein: "INSERT INTO tabelle (dbfeld1,dbfeld2) VALUES ($formfeld1, $formfeld2)"
Die INPUT-Felder müssten in dem Fall heißen NAME="formfeld1" bzw. NAME="formfeld2" die Felder in der Tabelle "dbfeld1" bzw. "dbfeld2"

5a) bis jetzt hab ich doch alle Syntaxfehler beschrieben, oder ?

6.) in Zeile 8 steht print_result_table(...), was aber keine PHP-Funktion ist. Also sucht der PHP-Interpreter nach einem function print_result_table(), was er nicht findet, und deswegen diese Meldung ausgibt.
Stattdessen muss da folgendes hin:
$result=mysql_fetch_array(mysql_query("SELECT * FROM pf_produkte"));
echo $result[Feldname];

alles klar ? ;)

Gruß
Dunsti
 
Jo ich glaub ich hab das alles kappiert nur das mit

PHP:
$result=mysql_fetch_array(mysql_query("SELECT * FROM pf_produkte")); 
echo $result[Feldname];

noch nit ganz, weil [Feldname] ..was ist das ist das ein mysql befehl oder ist das ein array das versteh ich nicht ganz :)
 
das ist ein Array. ;)

mit dem Befehl $row=mysql_fetch_row(...) bekommst Du ein numerisches Array, also steht der Inhalt des ersten Feldes (oder auch der ersten Spalte) in $row[0], der des zweiten Feldes in $row[1], usw.

bei $row=mysql_fetch_array(...) ist es hingegen ein assoziatives Array. Hier stehen zwischen den eckigen Klammern [ und ] die Feldnamen.
Also, wenn Du eine MySQL-Tabelle mit den Feldern name, beschreibung und preis hast heißen die Variablen $row[name], $row[beschreibung] und $row[preis]

alles klar ?

Gruß
Dunsti
 
PHP:
<?php while ($daten=mysql_fetch_array($result)) { ?>

<tr>
<td><?php echo $daten[id]; ?></td>
<td><?php echo $daten[name]; ?></td>
<td><?php echo $daten[beschreibung]; ?></td>
<td><?php echo $daten[preis]; ?></td>
</tr>

<?php } ?>

was ist daran falsch ? wenn ich das ausführe zeigt er mir nichts an (ich hab das irgendwo in einem tut gesehen)
ich hab vorher mit diesem hier

PHP:
$sql="INSERT INTO pf_produkte('name','beschreibung','preis') 
VALUES
('$name','$beschreibung','$preis')";

$result=mysql_query($sql,$db);

eingeführt -zu all den sachen müsste man sich noch die restlichen HTML tags und php variabeln vorstellen, das wär hier aber zu viel geworden :)

Vielen Dank !!!!!!!
 
Das Codeschnipsel oben ist schon richtig so.
Wenn du aber diese Abfrage durchführst:
PHP:
$sql="INSERT INTO pf_produkte('name','beschreibung','preis') 
VALUES
('$name','$beschreibung','$preis')";

$result=mysql_query($sql,$db);
dann fügst du nur was ein. Du bekommst keine Ansammlung von Daten zurück.
Um etwas aus der Tabelle auszulesen müsste das so aussehen:
PHP:
$sql="SELECT * FROM pf_produkte WHERE ID = 15";

$result=mysql_query($sql,$db);
Diese Abfrage gibt dir einen Datensatz zurück. Nämlich den mit der ID 15!
Verstanden?
Sonst frag ruhig.
 
kann ich auch an stelle von

PHP:
$sql="SELECT * FROM pf_produkte WHERE ID = 15";

$result=mysql_query($sql,$db);

das schreiben :

PHP:
$result=mysql_query("SELECT * FROM pf_produkte",$db);



und was bedeutet dieses WHERE ID = 15 , bezieht sich das auf mysql_fetch_row ?
Danke ! :)
 
ja, kannst Du auch schreiben.

das Where filtert das Ergebnis auf die Datensätze, wo in der Spalte ID der Wert 15 steht.

Gruß
Dunsti
 
Zurück