webForumDet fria alternativet

Update med datum

14 svar · 422 visningar · startad av dahlgren

dahlgrenMedlem sedan aug. 20011 946 inlägg
#1

Jag får inte riktigt till följande och jag misstänker att det har med de variblerna som ska in i ett datumfält i databasen. DE är $start och $slut som är datum.

$sql = mysql_query("UPDATE nyhet SET rubrik='".$_POST["rubrik"]."', text='".$_POST["text"]."', start='".$start."', slut='".$slut."' WHERE id=".$_POST["id"]"")

Om jag skriver ut sql-satsen får jag fäöjande rad.
UPDATE nyhet SET rubrik='Min rubrik', text='', start='20040827', slut='20080304' WHERE id=3
Dock kan jag tyvärr inte se vad som är fel. Nån som kan hjälpa mig?

SPiNMedlem sedan mars 20007 896 inlägg
#2

Vad får du för felmeddelande? Får text vara null? Text kan också vara ett reserverat ord i din DBMS, testa att klamra in det.

... SET ... , [text]='".$_ ...
dahlgrenMedlem sedan aug. 20011 946 inlägg
#3

Text får vara null och det hjälper inte med klarar runt. DEt felmedelande som jag får är.
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\Server root\int\update.php on line 6
rad 6 är den med sql-satsen.

@ndersMedlem sedan juni 200032 969 inlägg
#4

Jag kan inte php, men avslutningen av raden ser konstig ut. Bort med de två avslutande citationstecknen, och dit med ett semikolon sist på raden.

Dessutom är text inget bra kolumnnamn, som SPiN skriver. Byt namn på fältet.

mvh

UweMedlem sedan nov. 2003181 inlägg
#5

Vad jag kan se har du glömt en punk och ett semikolon.

Testa om det funkar med

$sql = mysql_query("UPDATE nyhet SET rubrik='".$_POST["rubrik"]."', text='".$_POST["text"]."', start='".$start."', slut='".$slut."' WHERE id=".$_POST["id"]."");
@ndersMedlem sedan juni 200032 969 inlägg
#6

Uwe skrev:

Vad jag kan se har du glömt en punk och ett semikolon.

Kan du motivera varför du vill lägga till en tom sträng efter SQL-frågan med .""? Resultatet blir visserligen detsamma, men om man lägger in en massa onödiga saker som de här i koden blir det oöverskådligt.

mvh

UweMedlem sedan nov. 2003181 inlägg
#7

@nders skrev:

Uwe skrev:

Vad jag kan se har du glömt en punk och ett semikolon.

Kan du motivera varför du vill lägga till en tom sträng efter SQL-frågan med .""? Resultatet blir visserligen detsamma, men om man lägger in en massa onödiga saker som de här i koden blir det oöverskådligt.

mvh

Den första punkten och dubbel-fnutten används för att sammanfoga strängen med php-koden. Men du har helt rätt i att det går att utesluta både fnuttar och punkten. Tänkte bara att det kanske var lättare att förstå när dahlgren redan använt sig av den varianten.

Hur som helst är den ursprungliga strängen inte helt rätt, därav felmeddelandet.

/Uwe

@ndersMedlem sedan juni 200032 969 inlägg
#8

Den första punkten och dubbel-fnutten används för att sammanfoga strängen med php-koden.

Ja, självklart, det är jag helt med på. Det verkar bara som att det sprider sig som en löpeld (framför allt inom ASP/VBScript-världen) att vilja konkatenera in ingenting till sina strängar helt i onödan.

Jag står alltså fast vid det jag skrev tidigare; bort med de två citationstecknen, och på med ett semikolon. :)

UweMedlem sedan nov. 2003181 inlägg
#9

@nders skrev:

Jag står alltså fast vid det jag skrev tidigare; bort med de två citationstecknen, och på med ett semikolon. :)

Måste medge att jag håller med dig till fullo. Koden blir både snyggare och snabbare. :bire

dahlgrenMedlem sedan aug. 20011 946 inlägg
#10

Eftersom hela raden ser ut så här

$sql = mysql_query("UPDATE nyhet SET rubrik='".$_POST["rubrik"]."', [text]='".$_POST["text"]."', start='".$start."', slut='".$slut."' WHERE id=".$_POST["id"]"")
or
exit(mysql_error());

så blir det inte så bra om jag tar bort de två citationtecknen och stopar dit ett semikolon tyvärr.

Peter SMedlem sedan dec. 20025 483 inlägg
#11

@nders skrev:

Jag kan inte php

Inte jag heller ;) Men anyhoo: Är det verkligen nödvändigt att konkatenera PHP-variabler i SQL-frågor? Bör inte följande fungera:

mysql_query("UPDATE nyhet SET rubrik='$_POST["rubrik"]', [text]='$_POST["text"]', start='$start', slut='$slut' WHERE id=$_POST["id"]")

:)

dahlgrenMedlem sedan aug. 20011 946 inlägg
#12

Då får jag följande fel istället.
Parse error: parse error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Server root\int\update.php on line 6

Peter SMedlem sedan dec. 20025 483 inlägg
#13
mysql_query(UPDATE nyhet SET rubrik='$_POST["rubrik"]', [text]='$_POST["text"]', start='$start', slut='$slut' WHERE id=$_POST["id"])

:q

dahlgrenMedlem sedan aug. 20011 946 inlägg
#14

Hmm det här går ju inte så bra. Nu kom det ett nytt felmedelande.

Parse error: parse error, unexpected T_STRING in C:\Server root\int\update.php on line 6

LarsGMedlem sedan dec. 200012 464 inlägg
#15
mysql_query(
"UPDATE nyhet SET rubrik= '" . $_POST["rubrik"] . "'" .
",`text`='" .$_POST["text"] .  "'" . 
",`start`= '" . $start ."'" .
",slut='" . $slut . "'" .
" WHERE id = " . $_POST["id"]) or die(mysql_error());
125 ms totalt · 3 externa anrop · v20260731065814-full.0e50b1ef
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)