Det är ju bara att exekvera x antal insert-frågor.
insert into tabell1 ...
insert into tabell2 ...
insert into tabell3 ...
Vad är problemet?
Databaser & SQLur Databashanterare & SQL
3 svar · 566 visningar · startad av Guldstrand
Någon som kan ge ett exempel på hur man kan posta till olika tabeller samtidigt, via ett formulär!?
Dessa tabeller finns:
CREATE TABLE `serier` (
`id` int(10) unsigned NOT NULL auto_increment,
`titel` varchar(100) NOT NULL default '',
`datum` datetime NOT NULL default '0000-00-00 00:00:00',
`handling` text NOT NULL,
`bild` varchar(100) NOT NULL default '',
`speltid` varchar(5) NOT NULL default '',
`skapad` date NOT NULL default '0000-00-00',
`medlem` tinyint(4) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `titel` (`titel`)
CREATE TABLE `serie_kategori` (
`id` int(10) unsigned NOT NULL auto_increment,
`namn` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `namn` (`namn`)
CREATE TABLE `serie_kategori_mix` (
`serie` int(10) unsigned NOT NULL default '0',
`kategori` int(10) unsigned NOT NULL default '0',
KEY `serie` (`serie`,`kategori`)
CREATE TABLE `serie_skadespelare_mix` (
`serie` int(10) unsigned NOT NULL default '0',
`skadespelare` int(10) unsigned NOT NULL default '0',
KEY `serie` (`serie`,`skadespelare`)
CREATE TABLE `skadespelare` (
`id` int(10) unsigned NOT NULL auto_increment,
`namn` varchar(50) NOT NULL default '',
`fodd` date NOT NULL default '0000-00-00',
`dod` date NOT NULL default '0000-00-00',
`land` int(10) unsigned NOT NULL default '0',
`foto` varchar(100) NOT NULL default '',
`biografi` text NOT NULL,
`tillagd` datetime NOT NULL default '0000-00-00 00:00:00',
`medlem` tinyint(4) unsigned NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `namn` (`namn`)
När jag ska lägga till en ny serie, så vill jag också att resp. skådespelare samt kategorier (som visas i drop-down menyer) skall sparas i länk-tabellerna. *lite svårt att förklara*
Det är ju bara att exekvera x antal insert-frågor.
insert into tabell1 ...
insert into tabell2 ...
insert into tabell3 ...
Vad är problemet?
@nders skrev:
Det är ju bara att exekvera x antal insert-frågor.
insert into tabell1 ... insert into tabell2 ... insert into tabell3 ...Vad är problemet?
:x
Problemet är att jag inte har arbetat med detta tidigare.
Är det ok att göra såhär:
<?php
include("link.php");
if (isset($_POST['submit']))
{
$title = ucfirst($_POST['title']);
$handling = ucfirst($_POST['handling']);
mysql_query("INSERT INTO titles values
(
0,
'$title',
'$handling',
'{$_POST['year']}',
'{$_POST['lang']}',
'{$_POST['url']}',
'{$_POST['image']}',
0,
0
)") or die(mysql_error());
$lastid = mysql_insert_id();
mysql_query("INSERT INTO directormix values
(
'0',
'$lastid',
'{$_POST['dir1']}'
)") or die(mysql_error());;
if ($_POST['dir2'] != "Tom")
{
mysql_query("insert into directormix values
(
'0',
'$lastid',
'{$_POST['dir2']}'
)") or die(mysql_error());;
}
if ($_POST['dir3'] != "Tom")
{
mysql_query("insert into directormix values
(
'0',
'$lastid',
'{$_POST['dir3']}'
)") or die(mysql_error());;
}
if ($_POST['dir4'] != "Tom")
{
mysql_query("insert into directormix values
(
'0',
'$lastid',
'{$_POST['dir4']}'
)") or die(mysql_error());;
}
if ($_POST['dir5'] != "Tom")
{
mysql_query("insert into directormix values
(
'0',
'$lastid',
'{$_POST['dir5']}'
)") or die(mysql_error());;
}
mysql_query("insert into genremix values
(
'0',
'{$_POST['gen1']}',
'$lastid'
)") or die(mysql_error());;
if ($_POST['gen2'] != "Tom")
{
mysql_query("insert into genremix values
(
'0',
'{$_POST['gen2']}',
'$lastid'
)") or die(mysql_error());;
}
if ($_POST['gen3'] != "Tom")
{
mysql_query("insert into genremix values
(
'0',
'{$_POST['gen3']}',
'$lastid'
)") or die(mysql_error());;
}
if ($_POST['gen4'] != "Tom")
{
mysql_query("insert into genremix values
(
'0',
'{$_POST['gen4']}',
'$lastid'
)") or die(mysql_error());;
}
}
?>
<?php
if ($_POST['name'] && $_POST['nationality'])
{
mysql_query("
INSERT INTO directors
VALUES (
0,
'{$_POST['name']}',
'{$_POST['nationality']}',
'{$_POST['year']}',
'{$_POST['month']}',
'{$_POST['day']}',
'{$_POST['bild']}'
)") or die(mysql_error());
echo "Skådespelare sparad...";
echo "<hr>";
}
?>
<form name="add" method="post" action="test.php">
<table width="600" border="0" bordercolor="#666666">
<tr bgcolor="#CCCCCC">
<td><span class="style8">LÄGG TILL SERIE </span></td>
<td><span class="style7"></span></td>
</tr>
<tr>
<td width="38%"><strong>Namn (titel):</strong></td>
<td width="62%"><input name="title" type="text" class="formfield" size="30" /></td>
</tr>
<tr>
<td bgcolor="#666666"> </td>
<td bgcolor="#666666"> </td>
</tr>
<tr>
<td><strong>Skådespelare:</strong></td>
<td><select name="dir1" size="1" class="formdropdown" id="<?php echo $_SERVER['php_self'] ?>">
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name ASC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="dir2" size="1" class="formdropdown" id="dir2">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name ASC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="dir3" size="1" class="formdropdown" id="dir3">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name ASC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="dir4" size="1" class="formdropdown" id="dir4">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name ASC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="dir5" size="1" class="formdropdown" id="dir5">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name ASC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="dir6" size="1" class="formdropdown" id="dir6">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name ASC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="dir7" size="1" class="formdropdown" id="dir7">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,name FROM directors ORDER BY name DESC");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Kategori:</strong></td>
<td><select name="gen1" size="1" class="formdropdown" id="gen1">
<?php
$sql = mysql_query("SELECT id,genre FROM genre ORDER BY genre");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="gen2" size="1" class="formdropdown" id="gen2">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,genre FROM genre ORDER BY genre");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="gen3" size="1" class="formdropdown" id="gen3">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,genre FROM genre ORDER BY genre");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select>
<select name="gen4" size="1" class="formdropdown" id="gen4">
<option>Tom</option>
<?php
$sql = mysql_query("SELECT id,genre FROM genre ORDER BY genre");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Sändes första gången:</strong></td>
<td><select name="select" size="1" class="formdropdown" id="select">
<?php
for($i=1930;$i<=date("Y");$i++)
{
echo "<option>" . $i . "</option>";
}
?>
</select></td>
</tr>
<tr>
<td><strong>Språk:</strong></td>
<td><select name="lang" size="1" class="formdropdown" id="lang">
<?php
$sql = mysql_query("SELECT id, language FROM languages ORDER BY id");
while($rad = mysql_fetch_array($sql))
{
echo "<option value='{$rad[0]}'>" . $rad[1] . "</option>";
}
?>
</select></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Handling:</strong></td>
<td><textarea name="handling" cols="60" rows="6" class="formfield"></textarea></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>IMDb:</strong></td>
<td><input name="url" type="text" class="formfield" id="url" size="30" />
<br />
<span class="style4">(ex. http://www.imdb.com/title/<strong>tt0118480</strong>)</span></td>
</tr>
<tr>
<td><strong>Bild:</strong></td>
<td><input name="image" type="text" class="formfield" id="image" size="30" />
<br />
<span class="style6">(Direktlänk till bild.)</span></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr bgcolor="#999999">
<td> </td>
<td><input name="submit" type="submit" class="formbutton" id="submit" value="lägg till serie" /></td>
</tr>
</table>
</form>
<br><br>
<form name="add" method="post" action="test.php">
<table width="600" border="0" bordercolor="#666666">
<tr bgcolor="#999999">
<td><span class="style8 style10">LÄGG TILL SKÅDESPELARE </span></td>
<td> </td>
</tr>
<tr>
<td><strong>Namn:</strong></td>
<td><input name="name" type="text" class="formfield" size="30" /></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Nationalitet:</strong></td>
<td><input name="nationality" type="text" class="formfield" size="30" /></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Född:</strong></td>
<td><select name="year" size="1" class="formdropdown" id="year">
<?php for($i=1900;$i<=date("Y");$i++) echo "<option value=$i>$i</option>" ?>
</select>
<select name="month" size="1" class="formdropdown" id="month">
<?php for($i=0;$i<=12;$i++) echo "<option value=$i>$i</option>" ?>
</select>
<select name="day" size="1" class="formdropdown" id="day">
<?php for($i=0;$i<=31;$i++) echo "<option value=$i>$i</option>" ?>
</select></td>
</tr>
<tr bgcolor="#666666">
<td> </td>
<td> </td>
</tr>
<tr>
<td><strong>Bild:</strong></td>
<td><input name="bild" type="text" class="formfield" size="30" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr bgcolor="#999999">
<td> </td>
<td><input name="sumbit" type="submit" class="formbutton" value="lägg till" /></td>
</tr>
</table>
</form>
..eller finns det ett "bättre" sätt? :r
Så länge SQL-frågorna blir korrekta så är det bara att köra på...
Vi vet ju inte vad några variabler innehåller (och inte kan jag något om php heller), men vad gäller SQL-delen är det inte så mycket svårare än att sätta ihop SQL-frågorna och exekvera dem en och en.