försöker skriva till databas med hjälp av php, men den skriver inte ><
hej Har suttit och mixtrat med detta i en dag nu.
Det vägrar skriva till min databas jag har lagt upp för det. Det verkar på scriptet som att det fungerar för att det mailar till den mail jag angivit och det skriver done... när det ska ha skrivit klart till databasen, men det kommer inget till databasen tyvärr ><
Vad gör jag för fel ?
När du gör en insert ska du även skriva vilka kolumner sakerna hör hemma i, och jag skulle även rekommendera att du tar en titt på mysql_real_escape_string för din query är öppen för sql injections.
Jag skulle gjort queryn nåt liknande det här:
$sql = sprintf("INSERT INTO `tabell` (`user`,`email`) VALUES ('%s','%s')",
mysql_real_escape_string($_POST['user']),
mysql_real_escape_string($_POST['email']));
Sen så är det inte riktigt korrekt gjort med hur du använder variabeln $_r för den har aldrig något värde.
En commit? nåt som heter så har jag aldrig nånsin använt och jag har grejat en del med mysql.
mysql_query som körs några rader under $sql skickar queryn till mysql.
Undrar förresten om inte variabeln $qres egentligen ska heta $res, eller om $res i if-satsen under ska heta $qres, dvs så att det är samma på båda ställena.
Okej tackar för det.
behöver jag ens ha Variabeln r på funktionen?
det enda jag vill göra är ju att anropa funktionen så att den skriver in de fält som är angivna till databasen.
eller måste man deklarera en variabel för varje funktion?
Detta är det första gången jag suttit med php nämligen ><
Nej, du behöver inte ha variabeln så som koden är uppbyggd nu, men vill du kunna lägga till fler saker än det som kommer från $_POST i databasen med samma funktion så behövs den.
Variabeln du anger när du skapar en funktion finns bara i den funktionen.
Vet inte riktigt hur jag ska förklara men jag kan försöka göra ett exempel:
Där säger vi åt funktionen writeVar att använda sig av variabeln $text som är satt utanför funktionen, men inuti funktionen så heter den $var istället, så att man kan anropa funktionen med flera olika variabler utan att behöva ändra funktionen.
varje gång jag vill använda funktionenl. Sen måste jag även lägga till alla jäkla kolumner innan values ?
kan jag ha values som jag anger dem nu förresten ?
Det är en typ av besätllningsformulär som du kanske förstått. Så alla variabler som är $_post får inte ett värde, eftersom att det är 5 olika formulär med olika egenskaper.
Det klagar då på att alla variabler inte har ett värde.
Går det inte göra en loop som tar alla poster tills de är slut isätllet ?
Ska du använda dig av write_db($_POST) så måste du göra om funktionen, då ska alla som just nu heter $_POST inuti funktionen heta det som variabeln du startar funktionen med heter, i ditt fall är det då $_r.
Vad är det som klagar på att variablerna inte har ett värde? Vad får du för felmeddelande?
Edit: Ja, du måste lägga till alla kolumner, annars vet ju inte mysql vilken information som ska ligga vart.
Och nej, att ha dom som dom är nu är inte att rekommendera, för nu skickas dom helt ocheckade till mysql och då kan du råka ut för så kallade sql injections.
Det innebär att det går att köra sql-querys igenom ditt formulär och då kan komma åt saker som man egentligen inte borde. Så du borde använda mysql_real_escape_string.