Just nu i M3-nätverket
Gå till innehåll

måste vara text i rutan?


cybot

Rekommendera Poster

Hej har en databas php+mysql ...

 

iaf varför kan jag inte lägag till en post om inte alla rutorna är ifyllda har ett formulär.. för att skapa inlägg ibland ska man inte behöva fylla i alla rutor men när man lämnar en ruta tom går det inte att skapa en post ??????

 

jag vill kunna skapa poster utan att ha fyllt i alla rutor.. så här ser databasen ut nu ... det är meddelanderutan jag vill kunna ha helt tom..

 

-----------------------------------------------

 

Field Type Attributes Null Default Extra

---------------------------------------------

datum varchar(100) Yes NULL

id int(11) No auto_increment

namn varchar(100) Yes NULL

arbetstid varchar(100) Yes NULL

arbetstid2 varchar(100) Yes NULL

meddelande varchar(200) No

 

tack !!

Länk till kommentar
Dela på andra webbplatser

Borde väl räcka med att lägga till NOT NULL islutet.

 

 

------------------------------------------------

Självlärd (MSSQL & VB & ASP)

 

Länk till kommentar
Dela på andra webbplatser

Att använda NULL i databaser ger onödig overhead tid. Om du använder '' runt texten spelar det ingen roll om variabeln från din form är tom eller inte.

 

 

--------------------------------------------- - -

Microsoft Certified Professional (MSSQL & VB)

 

Länk till kommentar
Dela på andra webbplatser

Kan du utveckla det där med "overhead tid"?

 

Själv är jag allergisk mot folk som använder tomma strängar för att representera "inget" när man kan ha ett NULL-value till det. NULL och en tom sträng är _inte_ samma sak!

Men hackar man VB, så vet man kanske inte bättre...

 

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Nja, eftersom han vill att det _ska_ gå att lägga till null verkar NOT NULL som en dålig idé :)

 

Eftersom jag inte ser koden (och inte skulle kunnat läsa den ändå eftersom jag inte kan php) så är det svårt att lista ut var det blir fel. Tabelldefinitionen ser bra ut om det ska vara möjligt att lägga in tomma värden.

Posta det felmeddelande du får och den kod som körs på sidan så kan du säkert få lite hjälp.

 

 

 

Länk till kommentar
Dela på andra webbplatser

NULL i databaser är inte samma sak som NULL i textsträngar, dvs asciikod 0. Och givetvis vet jag att tom sträng och null inte är samma sak när det gäller databaser, varför skulle jag annars säga att man inte ska använda NULL? Jag är certifierad i MSSQL o VB, det betyder inte att jag inte programmerar annat. C++ är det jag gillar bäst. Programmerat har jag gjort i 10 år och ser fram emot C#.

 

Men angående att inte använda null i databaser.

"The value NULL means the data value for the column is unknown or not available. NULL is not synonymous with zero (numeric or binary value), a zero-length string, or blank (character value). Rather, null values allow you to distinguish between an entry of zero (numeric columns) or blank (character columns) and a nonentry (NULL for both numeric and character columns)."

 

du vill kanske att jag ska översätta till svenska eller förstår du engelska?

 

--------------------------------------------- - -

Microsoft Certified Professional (MSSQL & VB)

 

 

[inlägget ändrat 2002-02-21 09:17:41 av JonasGauffin]

Länk till kommentar
Dela på andra webbplatser

Vet inte om jag kan engelska, men det du citerar är ju precis vad jag menar.

Ett NULL-value är samma som "unknown". Man har alltså ingen data. En tom sträng ÄR data. Det kan vara stor skillnad!

 

Ex. vis. COUNT() räknar inte NULL-values, men dock tomma strängar.

 

Att man sen inte ska tillåta NULLs överallt är ju en helt annan sak...

 

Sorry för VB-påhoppet, men ärligt talat tycker jag inte det är något att skryta med...

 

---------------------------------------

Femma i engelska på gymnasiet

 

Länk till kommentar
Dela på andra webbplatser

Overheadtiden är att att databasen måste göra en speciell jämförelse för att se om värdet är null. Att jämföra mot en tom textsträng går fortare. Sedan lär du själv hantera NULL när du ska visa datat. OK. default som en tom textsträng är inte så smart utan man ska väl ha ett värde som går att presentera för användaren i slutändan, exempelvis "n/a"

 

skryta gör jag inte. Då skulle jag ha radat upp allt jag kan och hur länge jag programmerat, right? Däremot är MS certifieringar en pain in the ass..

 

--------------------------------------------- - -

Microsoft Certified Professional (MSSQL & VB)

 

Länk till kommentar
Dela på andra webbplatser

litet tillägg. Om man har definerat en kolumn med NULL så spelar det ingen roll ifall man har '' på alla tomma rader för databasmotorn gör endåså NULL kontrollen på alla rader eftersom kolumnen är definerad att kunna använda NULL.

 

 

--------------------------------------------- - -

Microsoft Certified Professional (MSSQL & VB)

 

Länk till kommentar
Dela på andra webbplatser

Overheadtiden är att att databasen måste göra en speciell jämförelse för att se om värdet är null.

 

DBMS använder en extra byte (eller bit) i kolumnen för att markera att något är null. Hur det skulle vara mer kostsamt att se om en byte är 0 än att jämföra två strängar har jag svårt att se.

 

Om man har definerat en kolumn med NULL så spelar det ingen roll ifall man har '' på alla tomma rader för databasmotorn gör endåså NULL kontrollen på alla rader eftersom kolumnen är definerad att kunna använda NULL.

 

Jag förstår inte vad du menar.

 

Länk till kommentar
Dela på andra webbplatser

hehe det har du rätt i! Så kan det gå när man läser lite snabbt.

 

----------------------------------------

Självlärd (MSSQL & VB & ASP)

 

Länk till kommentar
Dela på andra webbplatser

Tomas Nilsson

asciikod(0) är inte samma sak som NULL.

 

Ex (VB)

 

dim apa

apa = chr(0) & chr(0)

msgbox len(apa)

 

returnerar "2"

 

Dvs, chr(0) räknas som en textsträng. Om man tittar på hur en vartype-struktur ser ut (för VB) finns det en flagga som säjer när informationen är NULL. Jag misstänker att det är samma sak i C#, dvs en sträng kan vara NULL, chr(0) eller annat.

 

/Tomas

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...