bereich eintragen in db tabell mysql
berni
- php
0 Dieter Raber0 berni
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
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
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 KEYid
(id
),
KEYid\_2
(id
)
) TYPE=MyISAMJetzt 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 auchwie 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.