29. marts 2005 - 23:13
Der er
30 kommentarer og 1 løsning
parse error, expecting `T_STRING' or `T_VARIABLE
Hej Jeg får denne fejl, og er helt forvirret: Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in d:\web\tlf_kurv.php on line 47 Linjerne ser således ud: mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('($_POST['netPhone'])','($_POST['pris'])')") or die(mysql_error()); Både netPhone og pris kommer via en form på foregående side. og jeg må have set mig blind på et eller andet? Hvis jeg fjerne disse 2 linjer så køre siden ellers ikke?? Hjælp, den blinde
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
29. marts 2005 - 23:16
#1
Du skal ikke sætte indekset i quotes inden i strengen - eller gå ud af strengen: mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('".$_POST['netPhone']."','".$_POST['pris']."')") or die(mysql_error()); Eller: mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('$_POST[netPhone]','$_POST[pris]')") or die(mysql_error()); Sidste variant, som du næsten havde brugt, er at indkapsle det i {}: mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('{$_POST['netPhone']}','{$_POST['pris']}')") or die(mysql_error()); Enhver af disse burde virke.
29. marts 2005 - 23:17
#2
mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES('".$_POST['netPhone']."','".$_POST['pris']."')") or die(mysql_error()); prøv sådan der :)
29. marts 2005 - 23:18
#3
du kan også vælge at formatere strengen med sprintf: mysql_query(sprintf("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('%s','%s')",$_POST['netPhone'],$_POST['pris']));
29. marts 2005 - 23:18
#4
Hov, Barklund. Kommer du nu rendende her ;) Så skal jeg jo være hurtigere
29. marts 2005 - 23:19
#5
Når du indsætter en 'komplex' variabel skal du bruge tuborg-klammer.. mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('({$_POST['netPhone']})','({$_POST['pris']})')") or die(mysql_error());
29. marts 2005 - 23:19
#6
legende.dk - det er dig der kommer rendende :) og hører du ikke til ovre i flash (5) kategorien? :D
29. marts 2005 - 23:24
#7
Personligt plejer jeg altid at sätte variablerne för de sättes ind i queryen. På den måde får man også bedre overblik. $netPhone=$_POST['netPhone']; $pris=$_POST['pris']; mysql_query("INSERT INTO nettOrd(nett_Item,NettOrder_price) VALUES ('$netPhone','$pris')") or die(mysql_error());
29. marts 2005 - 23:24
#8
barklund kom først med det rigtige svar, men nu laver den lige pludselig en Notice: Undefined index: pris i denne linje og andre: ('($_POST['netPhone'])','($_POST['pris'])')") or die(mysql_error());
29. marts 2005 - 23:28
#9
Så er der vel ingen "pris" i din $_POST - måske du kaldte den price. Og tark for points :)
29. marts 2005 - 23:29
#10
Og du har da ikke ændret dit script i den aktuelle linje?
29. marts 2005 - 23:30
#11
Barklund-> He he, jeg kiggede lige på dine "Spørgsmål besvaret af Barklund" og du må være blevet ramt af lynet for tre uger siden, da du tænkte "Jeg gider ikke kun hænge ud i flash kategorien" I øvrigt smukt med din bog :) Og tak for (5) ... Ha ha :))
29. marts 2005 - 23:32
#12
han kom over for at genere mig her i PHP
29. marts 2005 - 23:32
#13
legende.dk, nu har du vel købt den - så du kan komme up to date? Og ja, jeg skulle jo battle bromer, så jeg var nødt til at gøre det på hans egen hjemmebane :)
29. marts 2005 - 23:33
#14
(Hvor er flash 5 kategorien egentlig ;) Det er lige mig)
29. marts 2005 - 23:33
#15
jo det ændret og den hedder "pris" og den tog det med ind før nu gør den det lige pludselig ikke? Her er script linjerne, lidt juks men det er en opstart til noget bedre håber jeg. mysql_query("INSERT INTO nettOrder(nett_Item,NettOrder_price) VALUES ('{$_POST['netPhone']}','{$_POST['pris']}')") or die(mysql_error()); $moms=($_POST['pris'] * 0.2); echo "<td class=\"topTable_normal\" align=\"left\">".$_POST['netPhone']."</td>"; echo "<td class=\"topTable_normal\"> </td><td class=\"topTable_normal\" align=\"right\">".sprintf("kr. %.2f",$_POST['pris'])."</td></tr><tr>"; echo "<td></td>"; echo "<td class=\"normal\" align=\"right\">Subtotal</td><td class=\"normal\" align=\"right\">".sprintf("kr. %.2f",$_POST['pris'])."</td></tr><tr>"; echo "<td></td>"; echo "<td class=\"normal\" align=\"right\">Heraf 25% moms</td><td class=\"topTable_normal\" align=\"right\">".sprintf("kr. %.2f",$moms)."</td></tr><tr>"; echo "<td class=\"normal\" align=\"left\"></td>"; echo "<td class=\"normal\" align=\"right\"><b>Total</b></td><td class=\"topTable_normal_bold\" align=\"right\">".sprintf("kr. %.2f",$_POST['pris'])."</td></tr><tr>"; $result = mysql_query("SELECT nettOrder_id FROM nettOrder WHERE nett_Item = 'netPhone'"); $row = mysql_fetch_array ($result);
29. marts 2005 - 23:34
#16
det jo alle "pris" som pludselig er forsvundet, men hvorfor ikke netPhone? "pris" kommer fra et input felt som er hidden, men det var ikke et problem før?
29. marts 2005 - 23:37
#17
Det burde det heller ikke være nu. Prøv at start med at lave en var_dump($_POST) for at se indholdet. Hvis der ingen "pris" er, så ligger fejlen i din form - og det tyder på det!
29. marts 2005 - 23:40
#18
jeg har ændret formen på den måde at pris nu ligger som fil.php?pris=200 i action feltet, og så virker det. mens <input type="hidden" name="pris" value="100"> åbenbart pludselig ikke virker selv om det gjorde før mysql_query'en? Er der nogen der har et bedre forslag, så den står i url'en og kan ændres?
29. marts 2005 - 23:45
#19
Det burde virke fint - test lige en ekstra gang, at det hele er korrekt. At du retter lidt i din php burde _ikke_ ændre på hvilke variabler, der sendes. Kan du ikke lige dumpe hele indholdet af filen/begge filer.
29. marts 2005 - 23:50
#20
Formen ser således ud: echo "<form action=\"kurv.php\" method=\"post\">"; $result = mysql_query("SELECT * from netnumbers WHERE netGold='2' LIMIT $offset,$limit"); echo "<select name='netPhone'>"; echo "<option value=''>Vælg almindelig nummer</option>"; while ($row = mysql_fetch_array($result)){ echo "<option value='"; echo $row['netPhone']."'>"; echo $row['netPhone']."</option>"; } echo "</select>"; ?> <br /> <br /> <input type="hidden" name="pris" value="100"> <input type="submit" name="Submit" value="Gå til indkøbskurv"> </form> Denne linje ændred jeg til følgende echo "<form action=\"kurv.php?pris=100\" method=\"post\">"; og så virked det.
29. marts 2005 - 23:53
#21
Og så igen hvor den kommer ind id kurven. mysql_query("INSERT INTO nettOrder(nett_Item,NettOrder_price) VALUES ('{$_POST['netPhone']}','{$_POST['pris']}')") or die(mysql_error()); $moms=($_POST['pris'] * 0.2); echo "<td class=\"topTable_normal\" align=\"left\">".$_POST['netPhone']."</td>"; echo "<td class=\"topTable_normal\"> </td><td class=\"topTable_normal\" align=\"right\">".sprintf("kr. %.2f",$_POST['pris'])."</td></tr><tr>"; echo "<td></td>"; echo "<td class=\"normal\" align=\"right\">Subtotal</td><td class=\"normal\" align=\"right\">".sprintf("kr. %.2f",$_POST['pris'])."</td></tr><tr>"; echo "<td></td>"; echo "<td class=\"normal\" align=\"right\">Heraf 25% moms</td><td class=\"topTable_normal\" align=\"right\">".sprintf("kr. %.2f",$moms)."</td></tr><tr>"; echo "<td class=\"normal\" align=\"left\"></td>"; echo "<td class=\"normal\" align=\"right\"><b>Total</b></td><td class=\"topTable_normal_bold\" align=\"right\">".sprintf("kr. %.2f",$_POST['pris'])."</td></tr><tr>"; $result = mysql_query("SELECT nettOrder_id FROM nettOrder WHERE nett_Item = 'netPhone'"); $row = mysql_fetch_array ($result); Her får den dog ikke netPhone med ind fra den forrige side i SELECT sætningen, hvor jeg jo bruger en $_POST['netPhone'] men den kan jeg jo ikke bruge i SELECT sætningen.
30. marts 2005 - 00:00
#22
Jeg skal ikke kunne sige, hvorfor du ikke har "pris" med over. Prøv at skrive var_dump($_POST) øverst i den side, der modtager - så kan du se, præcis hvad der bliver sendt.
30. marts 2005 - 00:09
#23
Nu forstår jeg ingenting? Nu tager den det med over hvor den ikke gjorde det før? Mystik Men hvad med denne linje her får den ikke "netphone" med, men jvordan er det jeg skal gøre det her for jeg mener at kunne huske at det bare er sådan? $result = mysql_query("SELECT nettOrder_id FROM nettOrder WHERE nett_Item = 'netPhone'"); $row = mysql_fetch_array ($result);
30. marts 2005 - 00:12
#24
Har ændret den til at tage alle med i SELECT statementen da den jo skal bruge nett_item
30. marts 2005 - 00:20
#25
Det ser nu også rigtig nok ud - men jeg er ikke helt med på, hvad du spørger om. Men virker det som forventet nu?
30. marts 2005 - 00:25
#26
Ja lige pånær at den ikke kan tage netPhone med ind i select sætningen som den skal bruge. $result = mysql_query("SELECT nettOrder_id FROM nettOrder WHERE nett_Item = 'netPhone'"); $row = mysql_fetch_array ($result); Hvis som et sidste spørgsmål jeg skal have den til også at læse netPhone i WHERE nett_Item = 'netPhone'"); hvordan gør jeg nu lige det?
30. marts 2005 - 00:29
#27
Altså du har en php-variabel $netphone, som skal ind i sætningen? På samme måde: $result = mysql_query("SELECT nettOrder_id FROM nettOrder WHERE nett_Item = '".$netPhone."'"); Andet er det ikke? -- Morten Barklund
30. marts 2005 - 00:33
#28
tusinde tak for hjælpen, jeg skulle dog have den således for at den virker WHERE nett_Item = '".$_POST['netPhone']."'");
30. marts 2005 - 00:35
#29
$result = mysql_query("SELECT nettOrder_id FROM nettOrder WHERE nett_Item = '".$_POST['netPhone']."'"); nååå ;)
30. marts 2005 - 00:36
#30
arrrgh !! Jeg skal på plejehjem :P
30. marts 2005 - 00:37
#31
Ja hvis variablen ligger der, skal det selvfølgelig skrives sådan. :)
Vi tilbyder markedets bedste kurser inden for webudvikling