berni: bereich eintragen in db tabell mysql

hi@all:

ich hab da noch ein problem mit mysql.

also: ich hab eine tabelle, die ist für ein cms, jede ID soll anderen 'inhalt' (2 spalten in tabelle: 'id' und 'inhalt') haben.

dazu sollte ich aber die IDs befüllen, bitte wie mache ich das konkret.

derzeit hab ich eine create_entry_log2.php.

die schaut so aus:

<?$id = $_GET['id'];
$inhalt = $_POST['inhalt'];
if ($submit="Subscribe")
{
 $query="
UPDATE
   hp
SET
   inhalt  = '$inhalt'
WHERE
   id      = '$id'
";
mysql_query($query) OR die ("<hr>".mysql_error()."<hr>".$query."<hr>");

?>

... aber: die soll nur den 'inhalt' ändern, bitte wie muss die datei aussehen, wenn ich z.B.: IDs von 1-299 eintragen will?

liebe grüße
berni

  1. Hallo Berni,

    Ueblicherweise setzt man numerische ID's auf auto-increment, beim Inhalt gehe ich mal ganz blauäugig von Mediumtext aus.

    Deine Tabelle muesste demnach so aussehen

    CREATE TABLE test (
      id smallint(3) unsigned zerofill NOT NULL auto_increment,
      inhalt mediumtext,
      PRIMARY KEY  (id),
      UNIQUE KEY id (id),
      KEY id\_2 (id)
    ) TYPE=MyISAM

    Jetzt wird bei jedem neuen Eintrag in 'inhalt' die ID um 1 hochgezaehlt.

    <?$id = $_GET['id'];

    Shorttags sin keine gute Ideen besser waere
    <?php
    $id = $_GET['id'];

    UPDATE hp SET inhalt  = '$inhalt' WHERE id = '$id'
    ... aber: die soll nur den 'inhalt' ändern,

    Genau das tut sie auch

    wie muss die datei aussehen, wenn ich z.B.: IDs von 1-299 eintragen will?

    INSERT INTO hp (inhalt) VALUES ('foo')
    zaehlt, wie schon erwaehnt, die ID automatisch mit.

    Willst Du hingegen _nur_ IDs eintragen und keine Inhalte, kannst Du zb. eine for Schleife machen, die bei jedem Durchlauf eine neue Zeile eintraegt.
    for ($i = 0; $i < 300; $i++)
    {
      mysql_query('INSERT INTO hp (id) VALUES ($i)');
    }

    Dieter

    1. Hallo Berni,

      Ueblicherweise setzt man numerische ID's auf auto-increment, beim Inhalt gehe ich mal ganz blauäugig von Mediumtext aus.

      Deine Tabelle muesste demnach so aussehen

      CREATE TABLE test (
        id smallint(3) unsigned zerofill NOT NULL auto_increment,
        inhalt mediumtext,
        PRIMARY KEY  (id),
        UNIQUE KEY id (id),
        KEY id\_2 (id)
      ) TYPE=MyISAM

      Jetzt wird bei jedem neuen Eintrag in 'inhalt' die ID um 1 hochgezaehlt.

      <?$id = $_GET['id'];
      Shorttags sin keine gute Ideen besser waere
      <?php
      $id = $_GET['id'];

      UPDATE hp SET inhalt  = '$inhalt' WHERE id = '$id'
      ... aber: die soll nur den 'inhalt' ändern,
      Genau das tut sie auch

      wie muss die datei aussehen, wenn ich z.B.: IDs von 1-299 eintragen will?
      INSERT INTO hp (inhalt) VALUES ('foo')
      zaehlt, wie schon erwaehnt, die ID automatisch mit.

      Willst Du hingegen _nur_ IDs eintragen und keine Inhalte, kannst Du zb. eine for Schleife machen, die bei jedem Durchlauf eine neue Zeile eintraegt.
      for ($i = 0; $i < 300; $i++)
      {
        mysql_query('INSERT INTO hp (id) VALUES ($i)');
      }

      Dieter

      hi dieter!

      danke für den tipp. aber ich hab in create table ein autoincrement, aber ich kann keine IDs 'anlege'.

      nimm an, dass der code ist teil eines cms und 'inhalt' ist je eine hp-seite.

      aber: mein problem: ich muss die IDs  quasi vorangegt haben, damit ich neue texte (resp. diese texte updaten kann) in 'inhalt' einbringen kann. derzeit spricht mein systen nur auf id= 300 an, weil ich ID mit dem phpmyadmin angelegt hab.

      sinnvollerweise sollte die create table ID von 1-300 ausfüllen mit zahlen.

      ich hoffe, dass das autoinkrement zwar was helfen wird, aber konkret, dass 300 IDs zur verfügung stehen, kann ich nicht.

      ich hab gehört, das geht mit dem befehl 'between'.
      aber wie genau, hab ich leider keine ahnung.