MySQL Update und PHP
Michael W.
- php
0 Horst0 Michael W.0 horst0 Michael W.0 horst0 Michael W.0 horst
Hallo,
ich bin jetzt miit dem Thema Datenbanken schon relativ sehr weit, allerdings weiss ich nicht wie ich inhalte ändern oder gar hinzufügen kann. mir wurde bis jetzt nur der begriff 'update' genannt, aber selbst auf php.net/update konnte ich keinen nützlichen beispiel-code finden.
bis jetzt habe ich nur folgendes auf die beine stellen können:
<?php
$table = 'test'; // define table-name for connection
include("i_dbconnect.php");
$query = "UPDATE $table SET a1='k'";
include("i_makearray.php"); // creats an array '$db_array'
echo join (' ', $db_array[0]);
print "<br>";
echo join (' ', $db_array[1]);
print "<br>";
echo join (' ', $db_array[2]);
print "<br>";
mysql_close($link);
?>
es soll ohne jegliche benutzer eingabe erstmal testweise ein feld a1 oder b3 oder sonstwas auf das geändert werden was im script steht.
1. bin ich der meinung: 'da fehlt doch noch was bei #update'
2. wie heisst mein feldname eigentlich: hab ich den selber deklariert? oder gibt es verschiedene standarts?
hier nochn screenshot von meiner datenbank-admin-oberfläche
<img src="http://www.michaelwoelk.de/db/db-admin.jpg" border="0" alt="">
MfG
Michael W.
Hallo
- bin ich der meinung: 'da fehlt doch noch was bei #update'
der update hat nix mit PHP zu tun, schau mal lieber hier:
http://www.mysql.de/documentation/mysql/bychapter/manual.de_Reference.html#UPDATE
UPDATE tabelle SET spalten_name1=ausdruck1 WHERE where_definition
- wie heisst mein feldname eigentlich: hab ich den selber deklariert? oder gibt es verschiedene standarts?
Was verstehst Du unter Feldname? Das Feld hat eigentlich keinen Namen.
Du kannst Spaltennamen angeben (in Deinem Fall a b c d e)
Falls Du also die 95 in a ändern möchtest:
UPDATE $table SET a='k' where a=95 AND b = 96;
Gruss vom Horst
hä?
<?php
$table = 'test'; // define table-name for connection
include("i_dbconnect.php");
$query = "UPDATE $table SET a='k' where a=95 AND b=96";
//hier muss doch bestimmt noch was hin!?!
include("i_makearray.php"); //creats an array '$db_array'
echo join (' ', $db_array[0]);
print "<br>";
echo join (' ', $db_array[1]);
print "<br>";
echo join (' ', $db_array[2]);
print "<br>";
echo join (' ', $db_array[3]);
mysql_close($link);
?>
da fehlt doch noch was, oder nicht?
MfG
Michael W.
Hi
update
$query = "UPDATE $table SET a='k' where a=95 AND b=96";
//hier muss doch bestimmt noch was hin!?!
was sollte hier fehlen?
Du kannst (so weit ich weiss) keine Felder direkt ansteuern.
So werden jetzt alle Felder der Spalte a auf k gesetzt in denen
in a der Wert 95 und in Spalte b der 96 steht.
Gruss
Horst
update
$query = "UPDATE $table SET a='k' where a=95 AND b=96";
//hier muss doch bestimmt noch was hin!?!was sollte hier fehlen?
Du kannst (so weit ich weiss) keine Felder direkt ansteuern.
So werden jetzt alle Felder der Spalte a auf k gesetzt in denen
in a der Wert 95 und in Spalte b der 96 steht.
es tut sich aber garnix - es bleibt alles so wie es ist.
$query ist ja auch nur ne variable. die wird doch nirgends aufgerufen durch einen befehl! von daher dachte ich das unter $query = "..." noch ein befehl folgenden würde wo $query aufgerufen wird.
wie gesagt es tut sich auch so nix. wo ist denn der hase begraben?
MfG
Michael W.
... *grumpf* ........
tja, das Problem mit den Bäumen und dem Wald...
mysql_query("update blalba") or die ("Fehler");
http://www.php.net/manual/de/function.mysql-query.php
horst
Hi,
... *grumpf* ........
tja, das Problem mit den Bäumen und dem Wald...mysql_query("update blalba") or die ("Fehler");
http://www.php.net/manual/de/function.mysql-query.phphorst
Danke!
aber was ist jetzt wenn inerhalb der spalte a oder b oder... ein wert 2mal vorhanden ist - dann ändert er beide und das finde ich voll dumm. angenommen das sind jetzt daten von user. vom alter zb und der user möchte sein alter (das ist ja jetzt nur ein beispiel) ändern, weil er geb. hatte und alle die dann genauso alt waren wie er sind dann auch ei jahr älter, obwohl sie noch garnicht geb. hatten ;-) komisches beispiel, ich weiss!
wie kann ich das verhindern?
MfG
Michael W.
Also......
entweder Du gehst über mehrere Spalten:
where name= 'horst' AND alter = 24 AND wohnort='wiesbaden'
oder, was man eher macht, man gibt den zeilen eindeutige Nummern.
Die Tabelle würde dann so aussehen:
PrimaryKey |Name |Ort |Alter
1 |Horst |Wi |24
2 |Horst |Wi |30
Die Spalte PrimaryKey muss(!!!) UNIQUE (also eindeutig) sein.
Mit autoincrement oder so kann man dies lösen, weiss grad nicht wie
das bei MySql heisst..
Gruss
Horst