Avatar billede rotco Juniormester
10. november 2009 - 22:29 Der er 5 kommentarer og
2 løsninger

Tilføj LANG liste til databasen

Jeg skal bruge et hurtigt svar så 200 point uddeles for et nok nemt spørgsmål!

Lad os sige at jeg har <textarea cols="50" rows="10"></textarea>


Jeg begynder så at skrive, f.eks en frugt på hver linje i tekstboksen.. f.eks:

æble
banan
pære
mango
vindrue

når jeg så klikker SEND... Så skal jeg naturligvis connecte til databasen og det der.. Men der skal i det her tilfælde forekomme FEM (5) nye rækker og ikke 1..

Hvordan får jeg det fixet?

Jeg kunne for den sags skyld også tilføje 500 frugter hvis der fandtes så mange, og så skulle der bare komme 500 nye rækker.. I forstår pointen..

hurtigere hurtigere tjep tjep tjep *GG* :)

takker
Avatar billede repox Seniormester
10. november 2009 - 22:39 #1
Jeg tænker noget i stil med



<?php
  ...
    $inserts = array();
    $lines = explode("\n", $_POST["felt"]);
    foreach($lines as $value)
    {
      $value = trim($value);
      if($value == "")
        continue;

      $inserts[] = "('".mysql_real_escape_string($value)."')";
    }

    if(count($inserts) > 0)
    {
      $sql = "INSERT INTO table (felt) VALUES ".implode(", ", $inserts);
      $res = mysql_query($sql);
      if(!$res)
        echo mysql_error();
    }
  ...
?>


Avatar billede Slettet bruger
10. november 2009 - 22:39 #2
I PHP kan du skille et stykke tekst ad med funktionen explode()
Den bruges sådan:

$tekst_fra_tekstboks = $_POST['tekstboks']; //Teksten fra tekstboksen
$del_ved_strengen = "\n"; // Strengen du ønsker at dele ved. I dette tilfælde en ny linje.
$array_af_frugter = explode($del_ved_strengen, $tekst_fra_tekstboks);

echo $array_af_frugter[0]; //Æble
echo $array_af_frugter[3]; //Mango
Avatar billede rotco Juniormester
10. november 2009 - 22:57 #3
Hey... jeg får følgende fejl:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lines (phrase) VALUES ('linje 1'), ('linje 2')' at line 1



Koden ser sådan her ud nu:

<form method="post">
<textarea cols="50" rows="10" name="felt"></textarea><br>
<input type="submit" name="submit" value="Yeah !">
</form>

<?php

if($_POST[submit]){

include "connect.php";

    $inserts = array();
    $lines = explode("\n", $_POST["felt"]);
    foreach($lines as $value)
    {
      $value = trim($value);
      if($value == "")
        continue;

      $inserts[] = "('".mysql_real_escape_string($value)."')";
    }

    if(count($inserts) > 0)
    {
      $sql = "INSERT INTO lines (phrase) VALUES ".implode(", ", $inserts);
      $res = mysql_query($sql);
      if(!$res)
        echo mysql_error();
    }

}
?>
Avatar billede repox Seniormester
10. november 2009 - 23:03 #4
Problemet er vist dit tabelnavn.
ordet 'lines' er et reserveret ord fra mysql som muligvis ødelægger din querystring.
Avatar billede rotco Juniormester
10. november 2009 - 23:05 #5
og gæt hvad ;)

Det virkede...

i kommer begge 2 med et svar.. MANGE TAK!
Avatar billede repox Seniormester
10. november 2009 - 23:08 #6
svar fra mig
Avatar billede Slettet bruger
11. november 2009 - 17:09 #7
Svar, hvis du da føler at jeg har været til hjælps.
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