Avatar billede heden Nybegynder
28. september 2005 - 22:09 Der er 16 kommentarer og
1 løsning

Hjælp til oplæggelse af flere linjer i DB.

Hej alle eksperter.

Jeg vil gerne høre hvordan man kan lave så dette script kan ligge det der står i feltene op på engang, så man ik skal opligge et svar hver gang. jeg vil gerne have at at den lægger hvert textfelt op med følgende ting i min db:

id: selvf. automatisk valgt fra db.

spg_id: id'et som bliver hentet fra adresse linjen og sat i feltet.

svar: det som står i textfeltet.

Håber i kan hjælpe mig :-D
Avatar billede jakobdo Ekspert
28. september 2005 - 22:12 #1
Hvis alle dine tekst felter f.eks. hedder:
text[], så kan du lave:
$spgid = mysql_escape_string($_GET['spgid']);
foreach($_POST['text'] as $text)
{
$query = mysql_query("INSERT INTO tabel(id,tekst,spgid) VALUES('',$text,$spgid)");
}

Dette kræver dog id er auto_increment.
Avatar billede heden Nybegynder
28. september 2005 - 22:13 #2
undskyld, glemte scriptet:

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
            <td width="22%"><div align="left"><span class="style2">Svar muligheder: </span></div></td>
            <td width="57%">&nbsp;</td>
            <td width="21%"><div align="center"><span class="style2">Det korrekte svar:</span></div></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 1:</span></div></td>
            <td><div align="center">
              <input name="svar1" type="text" id="svar1" size="50">
            </div></td>
            <td><p align="center">
              <label>
              <input type="radio" name="korrekt" value="ken">
              </label>
              <br>
            </p></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 2:</span></div></td>
            <td><div align="center">
              <input name="svar2" type="text" id="svar2" size="50">
            </div></td>
            <td><div align="center">
              <input type="radio" name="korrekt" value="kto">
            </div></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 3:</span></div></td>
            <td><div align="center">
              <input name="svar3" type="text" id="svar3" size="50">
            </div></td>
            <td><div align="center">
              <input type="radio" name="korrekt" value="ktre">
            </div></td>
        </tr>
        <tr>
          <td><div align="left"><span class="style2">Svar 4:</span></div></td>
          <td><div align="center">
            <input name="svar4" type="text" id="svar4" size="50">
          </div></td>
          <td><div align="center">
            <input type="radio" name="korrekt" value="kfire">
          </div></td>
        </tr>
        <tr>
          <td><div align="left"><span class="style2">Svar 5:</span></div></td>
          <td><div align="center">
            <input name="svar5" type="text" id="svar5" size="50">
          </div></td>
          <td><div align="center">
            <input type="radio" name="korrekt" value="kfem">
          </div></td>
        </tr>
        <tr>
          <td colspan="3"><div align="center">
            <input type="hidden" name="spg_id" value="<?=$id?>">
          </div></td>
        </tr>
        <tr>
          <td colspan="3"><div align="center">
            <input type="submit" id="op" name="op" value="Opret svar">
          </div></td>
        </tr>
    </table>
</form>

<?
if (isset($_POST['op']))
{
    include 'db.php';

    $spg_id = $_POST['spg'];
    $svar = htmlspecialchars(addslashes($_POST['svar']));
   
    $sql = "INSERT INTO spg_svar (svar, spg_id) VALUES ('$svar', '$spg_id')";
    mysql_query($sql) or die(mysql_error());

    echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>";
}
?>
Avatar billede jakobdo Ekspert
28. september 2005 - 22:18 #3
Prøv at ret dine inputs til: <input name="svar[]" type="text" id="svar1" size="50">
og ret din sql til:
$spgid = mysql_escape_string($_GET['spg_id']);
foreach($_POST['svar'] as $svar)
{
$query = mysql_query("INSERT INTO tabel(id,tekst,spgid) VALUES('',$svar,$spgid)");
}
Avatar billede heden Nybegynder
28. september 2005 - 22:20 #4
du mener sådan ik:

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
            <td width="22%"><div align="left"><span class="style2">Svar muligheder: </span></div></td>
            <td width="57%">&nbsp;</td>
            <td width="21%"><div align="center"><span class="style2">Det korrekte svar:</span></div></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 1:</span></div></td>
            <td><div align="center">
              <input name="svar[]" type="text" id="svar1" size="50">
            </div></td>
            <td><p align="center">
              <label>
              <input type="radio" name="korrekt" value="ken">
              </label>
              <br>
            </p></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 2:</span></div></td>
            <td><div align="center">
              <input name="svar[]" type="text" id="svar2" size="50">
            </div></td>
            <td><div align="center">
              <input type="radio" name="korrekt" value="kto">
            </div></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 3:</span></div></td>
            <td><div align="center">
              <input name="svar[]" type="text" id="svar3" size="50">
            </div></td>
            <td><div align="center">
              <input type="radio" name="korrekt" value="ktre">
            </div></td>
        </tr>
        <tr>
          <td><div align="left"><span class="style2">Svar 4:</span></div></td>
          <td><div align="center">
  <input name="svar[]" type="text" id="svar4" size="50">
          </div></td>
          <td><div align="center">
            <input type="radio" name="korrekt" value="kfire">
          </div></td>
        </tr>
        <tr>
          <td><div align="left"><span class="style2">Svar 5:</span></div></td>
          <td><div align="center">
<input name="svar[]" type="text" id="svar5" size="50">
          </div></td>
          <td><div align="center">
            <input type="radio" name="korrekt" value="kfem">
          </div></td>
        </tr>
        <tr>
          <td colspan="3"><div align="center">
            <input type="hidden" name="spg_id" value="<?=$id?>">
          </div></td>
        </tr>
        <tr>
          <td colspan="3"><div align="center">
            <input type="submit" id="op" name="op" value="Opret svar">
          </div></td>
        </tr>
    </table>
</form>

<?
if (isset($_POST['op']))
{
    include 'db.php';

    $spg_id = $_POST['spg'];
    $svar = htmlspecialchars(addslashes($_POST['svar']));
   
$spgid = mysql_escape_string($_GET['spg_id']);
foreach($_POST['svar'] as $svar)
{
$query = mysql_query("INSERT INTO tabel(id,svar,spg_id) VALUES('',$svar,$spg_id)");
}

    echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>";
}
?>
Avatar billede heden Nybegynder
28. september 2005 - 22:25 #5
nu har jeg rettet den til som jeg tror den skal, men det virker ikke endnu korrekt :(.. det ser sådan ud nu :

<form action="<?= $_SERVER['PHP_SELF'] ?>" method="post">
    <table width="90%"  border="0" align="center" cellpadding="0" cellspacing="0">
        <tr>
            <td width="22%"><div align="left"><span class="style2">Svar muligheder: </span></div></td>
            <td width="57%">&nbsp;</td>
            <td width="21%"><div align="center"><span class="style2">Det korrekte svar:</span></div></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 1:</span></div></td>
            <td><div align="center">
              <input name="svar[]" type="text" id="svar1" size="50">
            </div></td>
            <td><p align="center">
              <label>
              <input type="radio" name="korrekt" value="ken">
              </label>
              <br>
            </p></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 2:</span></div></td>
            <td><div align="center">
              <input name="svar[]" type="text" id="svar2" size="50">
            </div></td>
            <td><div align="center">
              <input type="radio" name="korrekt" value="kto">
            </div></td>
        </tr>
        <tr>
            <td><div align="left"><span class="style2">Svar 3:</span></div></td>
            <td><div align="center">
              <input name="svar[]" type="text" id="svar3" size="50">
            </div></td>
            <td><div align="center">
              <input type="radio" name="korrekt" value="ktre">
            </div></td>
        </tr>
        <tr>
          <td><div align="left"><span class="style2">Svar 4:</span></div></td>
          <td><div align="center">
  <input name="svar[]" type="text" id="svar4" size="50">
          </div></td>
          <td><div align="center">
            <input type="radio" name="korrekt" value="kfire">
          </div></td>
        </tr>
        <tr>
          <td><div align="left"><span class="style2">Svar 5:</span></div></td>
          <td><div align="center">
<input name="svar[]" type="text" id="svar5" size="50">
          </div></td>
          <td><div align="center">
            <input type="radio" name="korrekt" value="kfem">
          </div></td>
        </tr>
        <tr>
          <td colspan="3"><div align="center">
            <input type="hidden" name="spg_id" value="<?=$id?>">
          </div></td>
        </tr>
        <tr>
          <td colspan="3"><div align="center">
            <input type="submit" id="op" name="op" value="Opret svar">
          </div></td>
        </tr>
    </table>
</form>

<?
if (isset($_POST['op']))
{
    include 'db.php';

    $spg_id = $_POST['spg'];
    $svar = htmlspecialchars(addslashes($_POST['svar']));
   
$spg_id = mysql_escape_string($_POST['spg_id']);
foreach($_POST['svar'] as $svar)
{
$query = mysql_query("INSERT INTO spg_svar (id,svar,spg_id) VALUES('',$svar,$spg_id)");
}

    echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>";
}
?>
Avatar billede jakobdo Ekspert
29. september 2005 - 06:44 #6
Prøv at test at ret koden:

<?
if (isset($_POST['op']))
{
    include 'db.php';

    $spg_id = $_POST['spg'];
    $svar = htmlspecialchars(addslashes($_POST['svar']));
 
$spg_id = mysql_escape_string($_POST['spg_id']);
foreach($_POST['svar'] as $svar)
{
$query = mysql_query("INSERT INTO spg_svar (id,svar,spg_id) VALUES('',$svar,$spg_id)");
}

    echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>";
}
?>

til:

<?
if (isset($_POST['op']))
{
echo "<pre>";
print_r($_POST);
echo "</pre>";
exit();
    include 'db.php';

    $spg_id = $_POST['spg'];
    $svar = htmlspecialchars(addslashes($_POST['svar']));
 
$spg_id = mysql_escape_string($_POST['spg_id']);
foreach($_POST['svar'] as $svar)
{
$query = mysql_query("INSERT INTO spg_svar (id,svar,spg_id) VALUES('',$svar,$spg_id)");
}

    echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>";
}
?>

Og smid hvad der kommer ud herind.
Avatar billede heden Nybegynder
29. september 2005 - 09:09 #7
den skriver:

Array
(
    [svar] => Array
        (
            [0] => svar 11 -1
            [1] => svar 11 -2
            [2] => svar 11 -3
            [3] => svar 11 -4
            [4] => svar 11 -5
        )

    [spg_id] => 11
    [op] => Opret svar
)
Avatar billede heden Nybegynder
29. september 2005 - 09:10 #8
så det ser da meget rigtigt ud
Avatar billede jakobdo Ekspert
29. september 2005 - 09:22 #9
Test dette kode:

<?
if (isset($_POST['op']))
{
    include 'db.php';

    $spg_id = $_POST['spg'];
    $svar = htmlspecialchars(addslashes($_POST['svar']));

    $spg_id = mysql_escape_string($_POST['spg_id']);
    foreach($_POST['svar'] as $svar)
    {
        $query = mysql_query("INSERT INTO spg_svar (id,svar,spg_id) VALUES('','".$svar."','".$spg_id."')");
        if(mysql_affected_rows()==0)
        {
            echo "Der opstod en fejl: " . mysql_error() . "<hr>\n";
        }
    }

echo "<div align=\"center\" class=\"tekst_linkThin\">Svaret blev oprettet</div>";
}
?>
Avatar billede heden Nybegynder
29. september 2005 - 09:25 #10
Det virker nu. tusind tak for det !! smider du et svar?
Avatar billede heden Nybegynder
29. september 2005 - 09:26 #11
og må jeg spørge hvad du gjorde?
Avatar billede jakobdo Ekspert
29. september 2005 - 09:32 #12
Før havde jeg: VALUES('',$svar,$spg_id)");
Nu rettede jeg til: VALUES('','".$svar."','".$spg_id."')");
Stor forskel på test og 'test' i mysql
Avatar billede jakobdo Ekspert
29. september 2005 - 09:32 #13
Og et svar!
Avatar billede heden Nybegynder
29. september 2005 - 09:35 #14
Ja okay, mange tak for det !
Avatar billede heden Nybegynder
29. september 2005 - 09:35 #15
-lukket-
Avatar billede jakobdo Ekspert
29. september 2005 - 09:38 #16
Takker for point!
Avatar billede heden Nybegynder
29. september 2005 - 10:38 #17
intet problem. det er mig der takker :o)

-lukket-
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester