Avatar billede artico Novice
14. december 2005 - 09:19 Der er 25 kommentarer og
1 løsning

Variabler i DB?

Jeg har disse variabler:
    [vare0] => beef1
    [vagt0] => 2
    [vare1] => beef2
    [vagt1] => 2
som kan fortsætte "uendeligt! [vareXXXX] og [vagtXXXX]
Jeg forsøger at få dem ind i DBén som følger:

$values="";
foreach($_REQUEST['vagt'.$i] as $key => $value)
{
$values.="( '".$_POST['id']."',
            '".$_SESSION['crkNr']."',
            '".$_POST['vare'.$i]."',
            '".$_SESSION['dyreArt']."',
            '".$key."',
            '".$_SESSION['vagtEnhed']."',
            NOW(),
            '".$_POST['status']."',
            '".$_SESSION['redigere_butik']."'),";
}
// den rigtige '".$value."',
$values=substr($values,0,-1); // fjerner sidste komma
$query="insert into ref_varelager (id,
                  raavare_refnr,
                  varenavn,
                  dyreart,
                  vagt,
                  vagt_enhed,
                  oprettet_dato,
                  status,
                  sb_butiks_id)  values $values";
$result=mysql_query($query);
// Men der sker ingenting, hvad gør jeg forkert ?
Avatar billede jakobdo Ekspert
14. december 2005 - 09:24 #1
Jeg ville smide skidtet i et array inde i din foreach!
Den måde du bruger nu, vil give et , for meget til sidst.
Prøv evt også at ret:
$result=mysql_query($query);
til:
$result=mysql_query($query) or die(mysql_error());
Avatar billede artico Novice
14. december 2005 - 09:36 #2
Ok.. kan hvordan smider jeg skidtet i et array ?
Avatar billede artico Novice
14. december 2005 - 10:29 #3
Øv..
Avatar billede jakobdo Ekspert
14. december 2005 - 11:30 #4
Hvad med dette:

$valArr=array();
foreach($_REQUEST['vagt'.$i] as $key => $value)
{
$valArr[]="( '".$_POST['id']."',
            '".$_SESSION['crkNr']."',
            '".$_POST['vare'.$i]."',
            '".$_SESSION['dyreArt']."',
            '".$key."',
            '".$_SESSION['vagtEnhed']."',
            NOW(),
            '".$_POST['status']."',
            '".$_SESSION['redigere_butik']."')";
}

$values=implode(",",$valArr);
$query="insert into ref_varelager (id,
                  raavare_refnr,
                  varenavn,
                  dyreart,
                  vagt,
                  vagt_enhed,
                  oprettet_dato,
                  status,
                  sb_butiks_id)  values $values";
$result=mysql_query($query) or die(mysql_error());
Avatar billede artico Novice
14. december 2005 - 11:37 #5
den siger fejl near '' at line 9 ?
jeg har kun ovenstående i filen ?
Avatar billede jakobdo Ekspert
14. december 2005 - 12:03 #6
Prøv at udskriv: $values
inden du smider det i DB, og tjek om indholdet er som det skal være.
Avatar billede artico Novice
14. december 2005 - 12:09 #7
skal lige til tandlæge, vender tilbage straks :-)
Avatar billede artico Novice
14. december 2005 - 15:32 #8
Der er ingenting i $values
Har tilføjet $i=0;
Der ankommer stadig disse variabler til siden?

    [vare0] => bøf1
    [vagt0] => 1
    [vare1] => bøf2
    [vagt1] => 2
Men ingenting sker..... ?
Avatar billede jakobdo Ekspert
14. december 2005 - 15:53 #9
Prøv efter:
foreach($_REQUEST['vagt'.$i] as $key => $value)
{
$valArr[]="( '".$_POST['id']."',
            '".$_SESSION['crkNr']."',
            '".$_POST['vare'.$i]."',
            '".$_SESSION['dyreArt']."',
            '".$key."',
            '".$_SESSION['vagtEnhed']."',
            NOW(),
            '".$_POST['status']."',
            '".$_SESSION['redigere_butik']."')";
}

at lav:
echo "<pre>";
print_r($valArr);
echo "</pre>";
Avatar billede artico Novice
14. december 2005 - 16:03 #10
:-( viser kun:
Array
(
)
Avatar billede jakobdo Ekspert
14. december 2005 - 16:09 #11
Damn, du skal rette:
foreach($_REQUEST['vagt'.$i] as $key => $value)
til:
foreach($_REQUEST['vagt'] as $key => $value)
Avatar billede artico Novice
14. december 2005 - 19:33 #12
Hvis jeg gør følgende:
$i = 0;
$vagt_fra = 0;
while(isset($_POST['vagt'.$i])) {
  $vagt_fra = $vagt_fra + $_POST['vagt'.$i];
  $i++;
}
Regner den fint ud hvad værdien er af vagt[0]+ vagt[1] +vagt[2] osv....

Nu skal den så bare kunne smide dem enkeltvis ind i DBén så jeg skal vel bruge $i som f.eks $_REQUEST['vagt'.$i] ?
Og bagefter skal de samme ske med vare[0],vare[1],vare[2],vare[3],vare[4], osv..

Fordi:
vagt[0] skal postes i DBén sammen med vare[0] osv...
Avatar billede jakobdo Ekspert
14. december 2005 - 19:41 #13
Prøv lige at test:

$valArr=array();
foreach($_REQUEST['vagt'] as $key => $value)
{
    $valArr[]="('".$_POST['id']."',
                            '".$_SESSION['crkNr']."',
                            '".$_POST['vare'.$i]."',
                            '".$_SESSION['dyreArt']."',
                            '".$key."',
                            '".$_SESSION['vagtEnhed']."',
                            NOW(),
                            '".$_POST['status']."',
                            '".$_SESSION['redigere_butik']."')";
}

$values=implode(",",$valArr);
$query="insert into ref_varelager (id,
                  raavare_refnr,
                  varenavn,
                  dyreart,
                  vagt,
                  vagt_enhed,
                  oprettet_dato,
                  status,
                  sb_butiks_id) values $values";
echo "SQL er: <b>" . $query . "</b><br>";
$result=mysql_query($query) or die(mysql_error());
Avatar billede artico Novice
14. december 2005 - 19:49 #14
Siger:
SQL er: insert into ref_varelager (id, raavare_refnr, varenavn, dyreart, vagt, vagt_enhed, oprettet_dato, status, sb_butiks_id) values
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 '' at line 9
Avatar billede jakobdo Ekspert
14. december 2005 - 19:52 #15
Prøv lige i toppen at skriv:
echo "<pre>";
print_r($_POST);
echo "</pre>";

Og ret evt:
foreach($_REQUEST['vagt'] as $key => $value)
til:
foreach($_POST['vagt'] as $key => $value)
Avatar billede artico Novice
14. december 2005 - 19:55 #16
Siger:
Array
(
    [vare0] => Kod1
    [vagt0] => 2
    [vare1] => KOd2
    [vagt1] => 2
    [facit] => 4
    [status] => 1
    [send] => Afslut og opret de nye vare »
)

SQL er: insert into ref_varelager (id, raavare_refnr, varenavn, dyreart, vagt, vagt_enhed, oprettet_dato, status, sb_butiks_id) values
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 '' at line 9
Avatar billede jakobdo Ekspert
14. december 2005 - 19:57 #17
Så kan det være du må løbe det igennem med en for løkke!
Avatar billede artico Novice
15. december 2005 - 09:59 #18
Variablen bliver lavet på den 1.ste side sådan:

for ($i=0;$i< $_POST['antal_enheder'];$i++) {
echo "<td>";
echo "<input type=\"text\" name=\"vare".$i."\" >";

og Postes videre til den side hvor den skal puttes i dbén, kan du hjælpe mig med en "løkke" til det ?

Afsætter gerne flere point!
Avatar billede jakobdo Ekspert
15. december 2005 - 10:05 #19
Prøv at leg med denne løkke:

$i = 0;
while(isset($_POST['vare'.$i]))
{
echo $_POST['vare'.$i++];
}
Avatar billede artico Novice
15. december 2005 - 10:32 #20
Den hiver dem fint ud :-) Men hvis jeg vil hente begge variabler på en gang, så går det galt :-(

$i = 0;
while(isset($_POST['vare'.$i] $_POST['vagt'.$i]))
{
echo $_POST['vare'.$i++] $_POST['vagt'.$i++];
echo "<br>";
}

Hvordan skiller jeg dem af?
Avatar billede jakobdo Ekspert
15. december 2005 - 15:09 #21
Hvorfor vil du tage dem begge ud samtidig?
Avatar billede artico Novice
15. december 2005 - 16:19 #22
Fordi jeg skal have deni DBén i par som:

vare0 vagt0
vare1 vagt1
vare2 vagt2
Osv...
Har prøvet at indsætte "insert into" (database sætningen) hvor der nu står:
echo $_POST['vare'.$i++] $_POST['vagt'.$i++];

Det gik ikke :-(
Avatar billede jakobdo Ekspert
15. december 2005 - 16:38 #23
Hvad så med:
while(isset($_POST['vare'.$i]) && isset($_POST['vagt'.$i]))
{
echo "<hr>";
echo $_POST['vare'.$i];
echo "<br>";
echo $_POST['vagt'.$i++];
}
Avatar billede artico Novice
15. maj 2006 - 23:46 #24
Lukker smid et svar...
Avatar billede jakobdo Ekspert
16. maj 2006 - 07:46 #25
Svar! (du får godt nok lukket nogle spørgsmål) :o)
Avatar billede jakobdo Ekspert
16. maj 2006 - 17:41 #26
Takker for point.
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