Michael W.: MySQL Update und PHP

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

DB-Connection

$table = 'test'; // define table-name for connection
include("i_dbconnect.php");

update

$query = "UPDATE $table SET a1='k'";

Make Array

include("i_makearray.php"); // creats an array '$db_array'

HTML // get table as HTML

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.

  1. Hallo

    1. 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

    1. 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

    1. hä?

      <?php

      DB-Connection

      $table = 'test'; // define table-name for connection
      include("i_dbconnect.php");

      update

      $query = "UPDATE $table SET a='k' where a=95 AND b=96";
      //hier muss doch bestimmt noch was hin!?!

      Make Array

      include("i_makearray.php"); //creats an array '$db_array'

      HTML

      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.

      1. 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

        1. 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.

          1. ... *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

            1. 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.php

              horst

              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.

              1. 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