Avatar billede lp_bond Nybegynder
04. februar 2002 - 13:30 Der er 21 kommentarer

Et lille problem med at indsætte i en db...

Hej

Jeg ønsker at gemme en variabel i en database – men har lige et problem:

Jeg har nogle data “gemt” I adresselinjen, som jeg ønsker at indsætte. Jeg får også hentet dataene godt nok ned, men kan ikke indsætte dem i db’en – hvorfor og hvad gør jeg???


$hold = $HTTP_GET_VARS["hold"];
$tjek = $HTTP_GET_VARS["tjek"];

echo "$hold";

if(){
  mysql_query("INSERT INTO XXXX (navn, alder, hojde, vaegt, placering, debut, tidligere_klubber, yndlingsklub, idol, andet, pic, U_landskamp, beskrivelse, hold, tjek) VALUES ('$navn','$fodselsdato','$hojde','$vaegt','$placering', '$debut', '$tidligere_klubber', '$yndlingsklub', '$idol', '$andet', '$pic', '$U_landskamp', '$beskrivelse', '$hold', '$tjek')");

  }else{
}

Jeg har ingen problemer med at indsætte data fra tekstbokse i db’en…

Håber der er en, der kan hjælpe J

Mvh
Lars
Avatar billede budda Nybegynder
05. februar 2002 - 07:23 #1
Vil du tjekke om alle indlægene er lagt eller hvad?
Avatar billede budda Nybegynder
05. februar 2002 - 07:36 #2
Hvis det er det så er det jo bare at sig
if(empty($navn) OR empty($fodselsdate) OR empty($hojde) OR empty($vaegt) OR empty($placering) OR empty($debut) OR empty($tidligere_klubber) OR empty($ynglingsklub) OR empty($idol) OR empty($andet) OR empty($pic) OR empty($U_landskamp) OR empty($beskrivelse) OR empty($hold) OR empty($tjek)){
echo "Du har ikke indtastet alt!";
}
else {
mysql_query("INSERT INTO XXXX (navn, alder, hojde, vaegt, placering, debut, tidligere_klubber, yndlingsklub, idol, andet, pic, U_landskamp, beskrivelse, hold, tjek) VALUES ('$navn','$fodselsdato','$hojde','$vaegt','$placering', '$debut', '$tidligere_klubber', '$yndlingsklub', '$idol', '$andet', '$pic', '$U_landskamp', '$beskrivelse', '$hold', '$tjek')");

}
Avatar billede mons Nybegynder
05. februar 2002 - 11:52 #3
Hvis du har variablerne fra adresselinien behøver du ikke de 2 første linier
$hold = $HTTP_GET_VARS["hold"];
$tjek = $HTTP_GET_VARS["tjek"];

echo "$hold";

Du spørger if(ingenting)???
if(){

Du mener nok:
$indsaet=mysql_query("INSERT INTO XXXX (navn, alder, hojde, vaegt, placering, debut, tidligere_klubber, yndlingsklub, idol, andet, pic, U_landskamp, beskrivelse, hold, tjek) VALUES ('$navn','$fodselsdato','$hojde','$vaegt','$placering', '$debut', '$tidligere_klubber', '$yndlingsklub', '$idol', '$andet', '$pic', '$U_landskamp', '$beskrivelse', '$hold', '$tjek')");
if($indsaet){
      echo"det gik godt";
  }else{
      echo"det gik ikke";

}

PS
Hvis du har en værdi til alle poster i DB kan du udelade:
(navn, alder, hojde, vaegt, placering, debut, tidligere_klubber, yndlingsklub, idol, andet, pic, U_landskamp, beskrivelse, hold, tjek)
Avatar billede lp_bond Nybegynder
05. februar 2002 - 12:18 #4
Jeg bruger $hold = $HTTP_GET_VARS["hold"]; og $tjek = $HTTP_GET_VARS["tjek"]; til at "hente" variablene ned fra adresse-linjen - da min inet udbyder har lukket for muligheden for direkte at bruge fx $hold.

Jeg ønsker blot at indsætte variablen $hold i databasen. Det burde ikke være noget problem, men jeg kan overhovedet ikke få det til at virke.
Avatar billede mons Nybegynder
05. februar 2002 - 12:54 #5
Du skal være sikker på at du sender værdier til alle poster i DB.
Hvis du har poster der er 'not null' og du ikke har værdier til dem, så får du ikke noget ind i DB. Hvad er din 'Primary key'?
Avatar billede lp_bond Nybegynder
05. februar 2002 - 16:43 #6
Min primary key er: id og alle mine poster er 'not null'. Jeg kan også godt indsætte data fra tekstbokse (alle variablene undtagen $hold og $tjek er tekstbokse), men jeg kan ikke indsætte $hold og $tjek - som bare er data fra adresse-linjen (session?) - og det forstår jeg ikke.
Avatar billede mons Nybegynder
05. februar 2002 - 17:26 #7
Du har en echo"$hold";
Hvad værdi har den på det tidspunkt?
Avatar billede lp_bond Nybegynder
05. februar 2002 - 17:45 #8
Når jeg kalder echo $hold - så får jeg den rigtige værdi - så variablen er rigtig nok
Avatar billede mons Nybegynder
05. februar 2002 - 18:29 #9
Den kode du her har vist, sætter den alle værdier i DB'en, undtagen $hold og $tjek??
Avatar billede lp_bond Nybegynder
05. februar 2002 - 18:30 #10
jep
Avatar billede mons Nybegynder
05. februar 2002 - 18:37 #11
Det skulle jo ikke kunne lade sig gøre hvis 'hold' og 'tjek' er not null!!!
Hvad type er felterne i DB, varchar??
Avatar billede lp_bond Nybegynder
05. februar 2002 - 20:05 #12
Felterne har begge typen tinytext. Skal jeg ændre feltet Null til Null?
Avatar billede mons Nybegynder
05. februar 2002 - 22:37 #13
Hvis din primary key er id hvad putter du så i den, når du laver en insert?
Det er altså spændende, ikke om vi finder løsningen, men hvornår!!             
Jeg synes det plejer at være så simpelt!!
Avatar billede mons Nybegynder
05. februar 2002 - 22:38 #14
ØØH! Jeg glemte at spørge, har du et felt der er Null??
Avatar billede lp_bond Nybegynder
06. februar 2002 - 14:14 #15
ID står til auto_increment, så den er ok! Jeg har ingen felter, som er Null overhovedet.
Avatar billede mons Nybegynder
06. februar 2002 - 14:52 #16
Hvis jeg har en auto_increment putter jeg 'null' i den, kan det hjælpe dig??
Avatar billede lp_bond Nybegynder
06. februar 2002 - 16:17 #17
Hvis jeg prøvet det, får jeg blot en fejl: SQL-query : 
ALTER TABLE mysql.test CHANGE id id INT(11) DEFAULT '0' AUTO_INCREMENT
MySQL said:
Column 'id' is used with UNIQUE or INDEX but is not defined as NOT NULL

Men mener du at det er det der er galt?
Avatar billede mons Nybegynder
06. februar 2002 - 16:49 #18
Jamen null er ikke det samme som '0'.
Jeg mener, hvis jeg har en tabel med 2 felter 'id' og 'navn', hvor 'id' er auto_increment:
Så ville jeg skrive
("insert into tabel values ('null','$navn') ");
Avatar billede lp_bond Nybegynder
06. februar 2002 - 17:02 #19
okay, det har jeg så aldrig hørt før :) . Når jeg ændrer feltet ID vha. phpmyadmin, så feltet null bliver null, så får jeg ovenstående fejl. (jeg har også prøvet at fjerne 0 fra feltet Default)
Avatar billede mons Nybegynder
06. februar 2002 - 17:35 #20
Når du laver en insert, er det vigtigt at du har lige så mange 'values' som du har felter i DB'en, og at alle values 'passer' til felterne. F. eks. kan du ikke smide en streng i et felt af typen 'float'.
Avatar billede lp_bond Nybegynder
06. februar 2002 - 18:55 #21
Jeg har lige prøvet igen - og tilføjet 'null' i min insert, og det virker desværre stadigvæk ikke! Felterne passer med antallet af data jeg vil indsætte. Der er heller ingen "konflikter" mellem datatyperne og typerne i DB'en. Og variablerne er også ok, så...tjahh mærkeligt.
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