Avatar billede Morten Professor
26. oktober 2015 - 14:10 Der er 20 kommentarer og
1 løsning

Insert som bare ikke vil virker kan ikke finde fejlen.

Hej eksperter

Håber der nogen der kan hjælpe kan ikke finde fejlen.

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  $insertSQL = sprintf("INSERT INTO brugervareoversigt (vare, pris, antal, navn, efternavn, adresse, postnr, bynavn, kontaktnr, email, fragt, dato, tid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['vare'], "text"),
                      GetSQLValueString($_POST['pris'], "double"),
                      GetSQLValueString($_POST['antal'], "int"),
                      GetSQLValueString($_POST['navn'], "text"),
                      GetSQLValueString($_POST['efternavn'], "text"),
                      GetSQLValueString($_POST['adresse'], "text"),
                      GetSQLValueString($_POST['postnr'], "text"),
                      GetSQLValueString($_POST['by'], "text"),
                      GetSQLValueString($_POST['kontaktnr'], "text"),
                      GetSQLValueString($_POST['email'], "text"),
                      GetSQLValueString($_POST['dato'], "text"),
                      GetSQLValueString($_POST['tid'], "text"));

  mysqli_select_db($hellestrik, "INSERT INTO brugervareoversigt (vare, pris, antal, navn, efternavn, adresse, postnr, bynavn, kontaktnr, email, fragt, dato, tid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)");
  $Result1 = mysqli_query($hellestrik, $insertSQL) or die(mysqli_error($hellestrik));

Med venlig hilsen
Morten
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 14:29 #1
>mysqli_select_db($hellestrik, "INSERT 
hvilke database arbejder du på ?? ovenstående passer ikke

ref http://php.net/manual/en/mysqli.select-db.php
bool mysqli_select_db ( mysqli $link , string $dbname )
dvs
mysqli_select_db ($hellestrik_connection , $hellestrik_databasenavn)

hvad står der hvis du echo'er din $insertSQL ud ??
skriv resultatet af echo $insertSQL; her inde

retunerer GetSQLValueString det du forvendter ??, men det kan vi også se udfra ovenstående echo, sidste gang jeg husker denne function var den skrevet i det gamle mysql API



$insertSQL = sprintf("INSERT INTO brugervareoversigt (vare, pris, antal, navn, efternavn, adresse, postnr, bynavn, kontaktnr, email, fragt, dato, tid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['vare'], "text"),
                      GetSQLValueString($_POST['pris'], "double"),
                      GetSQLValueString($_POST['antal'], "int"),
                      GetSQLValueString($_POST['navn'], "text"),
                      GetSQLValueString($_POST['efternavn'], "text"),
                      GetSQLValueString($_POST['adresse'], "text"),
                      GetSQLValueString($_POST['postnr'], "text"),
                      GetSQLValueString($_POST['by'], "text"),
                      GetSQLValueString($_POST['kontaktnr'], "text"),
                      GetSQLValueString($_POST['email'], "text"),
                      GetSQLValueString($_POST['dato'], "text"),
                      GetSQLValueString($_POST['tid'], "text"));
echo $insertSQL; // test                     
  // mysqli_select_db($hellestrik, "INSERT INTO brugervareoversigt (vare, pris, antal, navn, efternavn, adresse, postnr, bynavn, kontaktnr, email, fragt, dato, tid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)");
  // $Result1 = mysqli_query($hellestrik, $insertSQL) or die(mysqli_error($hellestrik));

Avatar billede Morten Professor
26. oktober 2015 - 14:42 #2
Det sjove er det plejer at virke andre steder jeg bruger helt uden problemer.
Så forstår ikke hvorfor det ikke virker her.
Avatar billede Morten Professor
26. oktober 2015 - 14:46 #3
Arbejder på mysqli
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 15:15 #4
hvad udskrev "echo $insertSQL;" ??

>Arbejder på mysqli
ja, men gør GetSQLValueString også det ??, så hvidt jeg husker indeholder den denne function mysqli_escape_string, men får du din connection med over ??, (kan være du anvender global)

har du slået fejl visning til ?? hvis ikke så gør det
Avatar billede Morten Professor
26. oktober 2015 - 18:57 #5
Kunne ikke få den til at udskrive noget.
Men prøver lige igen den må jo komme med et eller andet for for fejl eller ligene.

Ja jeg bruger global, og det med GetSQLValueString virker fint alle steder undtagen der.
Jeps der er fejl visning.
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 19:55 #6
er du sikker på at denne sætning bliver sand ??
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {

og dermed dette
$insertSQL = sprintf("INSERT INTO br
bliver udført ??

hvis ja:
hvad står der i din GetSQLValueString så er det den der ikke retunere noget

>Ja jeg bruger global,
så bliver din function ikke særlig genbrugbar :( , så kan den kun bruges i dette project, ellers skal din connection hedde $hellestrik i alle projecter (ikke smart)

>Jeps der er fejl visning.
skriver den nogle fejl ??
Avatar billede Morten Professor
26. oktober 2015 - 19:58 #7
Kan jeg bruge noget andet end GetSQLValueString
Avatar billede Morten Professor
26. oktober 2015 - 20:00 #8
Den skriver ingen fejl den går rent igennem.
Har her noget der virker, men der står det samme som i den her.
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "indkoeb")) {
  $insertSQL = sprintf("INSERT INTO varebruger (mainid, privat, prisid, billede, vare, pris, fastpris, antal, hoejde, diameter, vaegt) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['mainid'], "int"),
                      GetSQLValueString($_POST['ip'], "text"),
                      GetSQLValueString($_POST['prisid'], "int"),
                      GetSQLValueString($_POST['billede'], "text"),
                      GetSQLValueString($_POST['vare'], "text"),
                      GetSQLValueString($_POST['pris'], "double"),
                      GetSQLValueString($_POST['fastpris'], "double"),
                      GetSQLValueString($_POST['antal'], "double"),
                      GetSQLValueString($_POST['hoejde'], "text"),
                      GetSQLValueString($_POST['diameter'], "text"),
                      GetSQLValueString($_POST['vaegt'], "text"));

  mysqli_select_db($hellestrik, "INSERT INTO varebruger (mainid, privat, prisid, billede, vare, pris, fastpris, antal, hoejde, diameter, vaegt) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)");
  $Result1 = mysqli_query($hellestrik, $insertSQL) or die(mysqli_error($hellestrik));
}
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 20:26 #9
>er du sikker på at denne sætning bliver sand ??
>if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
du fik ikke svaret på dette

prøvat udskrive en test lige efter if sætningen og før
$insertSQL = sprintf("INSERT INTO ....

dvs

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
echo "øf"; // test
$insertSQL = sprintf("INSERT INTO brugervareoversigt (vare, pris, antal, navn, efternavn, adresse, postnr, bynavn, kontaktnr, email, fragt, dato, tid) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",

>Kan jeg bruge noget andet end GetSQLValueString
ja Prepared Statements, læs denne guide [url=http://www.eksperten.dk/guide/1480]Prepared Statements under MySQLI - kom igang[/url
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 20:28 #10
jeg retter lige taget der manglede et tegn

>Kan jeg bruge noget andet end GetSQLValueString
ja Prepared Statements, læs denne guide Prepared Statements under MySQLI - kom igang
Avatar billede Morten Professor
26. oktober 2015 - 20:35 #11
Den siger
Notice: Undefined index: vare in C:\wamp\www\fluefiskersiden_webshop\testside\vare_bestilling_mailform.php on line 11
Avatar billede Morten Professor
26. oktober 2015 - 20:43 #12
Hov den siger Øf :D
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 20:58 #13
>Hov den siger Øf :D
så ved vi if sætningen er sand, bare slet linjen igen

>Notice: Undefined index: vare in C:\wamp\www\fluefiskersiden_webshop\testside\vare_bestilling_mailform.php on line 11
din "vare" bliver ikke sendt med over, du kalder den måske noget andet, dvs denne
GetSQLValueString($_POST['vare'], "text"),
fejler
Avatar billede Morten Professor
26. oktober 2015 - 21:08 #14
vare i min mysql database er den rigtige.
Hmm jeg forstår ikke hvorfor den ikke vil
Avatar billede olsensweb.dk Ekspert
26. oktober 2015 - 21:14 #15
det er den form du poster der ikke har en input felt med name="vare"
Avatar billede Morten Professor
26. oktober 2015 - 21:20 #16
Ja da det er da også rigtig doh prøver det lige af med hidden
Avatar billede Morten Professor
26. oktober 2015 - 21:27 #17
Kan man på en eller anden måde få <?php echo $editFormAction; ?> ind i formen <form name="form" method="POST" action="<?php echo $editFormAction; ?>vare_bestilling_sender.php?prisid=<?php echo $_SERVER['REMOTE_ADDR']; ?>">
Det der jeg har gjort der virker ikke, så bliver der ikke sendt en mail afsted.
Avatar billede Morten Professor
26. oktober 2015 - 21:29 #18
PS. det virkede efter det med jeg havde glemt at sætte en name="vare" ind den havde jeg glemt.
Men nu skal jeg se have de to action til at virke sammen
Avatar billede Morten Professor
26. oktober 2015 - 21:30 #19
Men kommer ind i databasen
Avatar billede Morten Professor
27. oktober 2015 - 22:48 #20
Hej Ronols

Vil du smide et svar, du skal have dine point ;)

Med venlig hilsen
Morten
Avatar billede olsensweb.dk Ekspert
28. oktober 2015 - 06:38 #21
svar
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
Computerworld tilbyder specialiserede kurser i database-management

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