Avatar billede jkn83 Praktikant
06. april 2007 - 14:25 Der er 10 kommentarer og
1 løsning

max længde ved insertpost samt tilladte navne i mysql?

Har siddet i et godt stykke tid nu og fået lavet en form der kan udfyldes af diverse folk der kommer forbi siden.

Formen er lavet så der er godt 30 felter de kan udfylde i første del, og der efter få vist anden del på samme side som de kan udfylde også, hvilket er yderligere 45 dropdown felter og 45 text felter.

De har alle navne som navna, navnb, navnc som første del. og  a1,a2,a3 i dropdown og b1,b2,b3 osv i textfelterne. Efter at have gået siden igennem utallige gange, og prøvet at fjerne lidt forskellige steder (udelukningsmetoden), fandt jeg ud af fejlen lå i insertpost linien. Hvis jeg fjerner a1,a2,a3,b1,b2,b3 (altså den rigtige kode som er længere) kan jeg tilføje den første del af formen, altså navna,navnb,navnc. Men hvis a1,a2,a3,b1,b2,b3 står der, melder den at de ikke kunne gemmes. Derfor kom jeg i tvivl om 2 ting.

ved denne linie (kortet ned til relevant størrelse): $insertpost="INSERT INTO tabelnavn(navna,navnb,navnc,a1,a2,a3,b1,2,b3) values('$navn1','$navn2','$navn3','$a1','$a2','$a3','$b1','$b2','$b3')";
mysql_query($insertpost) or die("Kunne ikke tilføje form inputs");
print "data gemt, gå tilbage til <A href='index2.php'>oversigten</a>.";

Er i tvivl om man kan bruge navne som a1 og b1 i mysql databasen... og om der er et limit på hvor meget den vil gemme på en gang i mysql databasen, taget i betragtning der er 30 stk navn1,navn2 osv... 45 stk a1,a2 osv... og 45 stk b1,b2 osv... hvor efter values kommer ind og laver "linien" længere...

Så nogen der lige kan se hvad der er galt hurtigt og melde svar tilbage? Det har stor prioritet for mig, så max point gives.

Eller er der spørgsmål?
Avatar billede jkn83 Praktikant
06. april 2007 - 14:26 #1
$navn1','$navn2','$navn3' skulle lige have været $navna','$navnb','$navnc'
lille fejl i indtastningen :D
Avatar billede showsource Seniormester
07. april 2007 - 16:36 #2
Du kan jo starte med at putte mysql_error() på din fejlmelding,
or die("Kunne ikke tilføje form inputs<p>". mysql_error());

Lyder som det er en fejl i din sql sætning
Avatar billede showsource Seniormester
07. april 2007 - 16:42 #3
Du evt kan også bruge en foreach til at "forenkle" din sql

$sql = "INSERT INTO tabelnavn (`";

foreach($_POST as $key => $value) {
$names[] = $key;
$vaerdier = $value;
}

$sql .= implode("`,`", $names);
$sql .= "`) VALUES ('";
$sql .= implode("',', $vaerdier);

$sql .= "')";

$insertpost = mysql_query($sql) or die (mysql_error());
Avatar billede showsource Seniormester
07. april 2007 - 16:45 #4
Hov, glemte [] og ville nok gøre så'n her:

$names = array();
$vaerdier = array();

foreach($_POST as $key => $value) {
$names[] = $key;
$vaerdier[] = $value;
}

og lidt overvejelser omkring sikkerhed har du vel?
Avatar billede jkn83 Praktikant
08. april 2007 - 13:54 #5
er meget begynder inden for php, og tager ved lære stille og roligt... Sikkerhed er jeg ikke lige nået til endnu :D så ved ik lige hvordan og hvorledes jeg lige skal sikre mine sider hvis det var det du tænkte på
Avatar billede jkn83 Praktikant
08. april 2007 - 14:48 #6
Column count doesn't match value count at row 1
det er fejlmeddelelsen jeg får ved mysql_error()

hvilket betyder?
Avatar billede jkn83 Praktikant
08. april 2007 - 15:49 #7
nevermind... fandt ud af der manglede 2 tabel navne i mysql databasen... Der fortalte mysql_error()

Det må vel sige du fortjener pointene showsource :)

smider du svar?
Avatar billede showsource Seniormester
08. april 2007 - 17:32 #8
ingen point, ellers tak.
Hvis du har formfelter som IKKE skal med i din query, kan du enten gøre så'n,

foreach($_POST as $key => $value) {

    if($key == "feltnavn_som_ikke_skal_med_et" || $key == "feltnavn_som_ikke_skal_med_to") {
    continue;
    }

$names[] = $key;
$vaerdier[] = $value;
}

eller gemme dem i et array,

$no_query = array("felt_et", "felt_to", "felt_tre");

foreach($_POST as $key => $value) {

    if(in_array($key, $no_query)) {
    continue;
    }

$names[] = $key;
$vaerdier[] = $value;
}

Og brug gerne lidt point her:
http://www.eksperten.dk/artikler/57

og kik måske her:
http://www.phpbegynder.dk/artikler.php?id=24&page=1

ikke dybdegående stof, men burde være nok til "eftertanke"

Også her, ( omkring sessions og PHP )
http://www.eksperten.dk/artikler/857
Avatar billede jkn83 Praktikant
09. april 2007 - 11:26 #9
yderst go læsning... Har gemt siderne til fremtidig hjælp og læsning, og må nok også til fremtidig brug, kigge på nogle af de artikler der :P

Men stadig, ønsker du pointene smider du et svar.
lader den stå lidt endnu
Avatar billede showsource Seniormester
09. april 2007 - 12:15 #10
ellers tak du.
Avatar billede jkn83 Praktikant
09. april 2007 - 15:05 #11
ok, så må jeg bruge dem til en go anden gang :)
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