Avatar billede lefsa62 Seniormester
27. januar 2019 - 21:42 Der er 18 kommentarer og
3 løsninger

upload

Det er vedr jeg vil upload fil til myphpadmin. min db navn er "find mig" og der er under mapper "os" og "dig".
nu vil jeg uploade en fil til "os" hvad gør jeg når serveren heder "find mig"
Avatar billede olsensweb.dk Ekspert
28. januar 2019 - 07:47 #1
jeg er ikke sikker på jeg forstår spm, men

først du giver dig selv problemer ved at bruge:

reseverede ord, ord med mellemrum, ord indeholdende æøå, og andre special tegn, som database, tabel eller kollone navne, da disse skal have backtick omkring sig i mysql,
eller som mappe eller fil navne.

hvis det er i en URL der er problemet, skal du url encode navnet, så "find mig" bliver til find%20mig
http://php.net/manual/en/function.urlencode.php


hvis det er sql må være noget med
sql = insert into  `find mig`.os.tbl ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN );
https://www.computerworld.dk/eksperten/spm/1012937


jeg vil anbefale dig at omdøbe din database
Avatar billede olsensweb.dk Ekspert
28. januar 2019 - 07:49 #2
`find mig`.os.tbl
skulle være 
`find mig`.os
Avatar billede Slettet bruger
28. januar 2019 - 09:30 #3
Lad være med at bruge mellemrum, skriv "find_mig" istedet!
Avatar billede lefsa62 Seniormester
28. januar 2019 - 23:01 #4
Det virker ikke, er det sådan i har nogle forslag til et opload til formular eksempel.  Et fornavn og efternavn og det skal sendes til mysql og returnere til et dokument
Avatar billede olsensweb.dk Ekspert
29. januar 2019 - 08:25 #6
hvordan ser din database connection ud ??
jeg har mistanke om du ikke får en connection

får du sendt dine værdier fra din form ??
Avatar billede lefsa62 Seniormester
29. januar 2019 - 09:33 #7
Du har nok meget ret, jeg kikker lige på det når jeg kommer hjem i aften jeg har fundet ud af at der hvor data skal oploade ikke stemmer overens i min inser.php
Avatar billede olsensweb.dk Ekspert
29. januar 2019 - 16:33 #8
her er lidt du kan kigge på

debug.php
<?php
ini_set("display_startup_errors", "on");
ini_set("display_errors", "on");
ini_set("html_errors", "false");
error_reporting(-1); // -1 viser alle slags fejl beskeder
ini_set("ignore_repeated_errors", 0);
?>


connect.php
<?php
$conn = new mysqli("localhost", "root", "", "find mig");
// https://stackoverflow.com/questions/506826/selecting-a-database-in-mysql-with-spaces-in-its-name
if (!$conn) {
    echo 'Der opstod en fejl.' . $conn->connect_error;
    exit();
}
$conn->set_charset("utf8");
?>



læg mærke til mellem navn
insert.php
<?php
include "debug.php";
require_once "connect.php";

if (isset($_POST['FormCreateUserSend'])) {
// print_r($_POST);
    // mangler validering
    $fornavn = $_POST['fornavn'];
    $efternavn = $_POST['efternavn'];
    $mellemnavn = $_POST['mellem_navn']; // post lave mellemrummet om til _
    $sql = "insert into os (fornavn, `mellem navn`, efternavn) VALUES ( '" . $fornavn . "', '" . $mellemnavn . "', '" . $efternavn . "')";
    // echo $sql;
    $conn->query($sql) or die($conn->error);
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>demo</title>
        <style type="text/css">
        </style>
    </head>
    <body>
        <form method="post" action="insert.php" id="FormMail" name="FormMail">
            <input type="text" placeholder ="fornavn" value="" name="fornavn" id="fornavn" required><br>
            <!-- eks på dårlig navn givning -->
            <input type="text" placeholder ="mellem navn" value="" name="mellem navn"  required> <br>
            <input type="text" placeholder ="efternavn" value="" name="efternavn" id="efternavn" required> <br>
            <input type="Submit" value="Send" name ="FormCreateUserSend" id="send">
        </form>
    </body>
</html>



show.php
<?php
include "debug.php";
require_once "connect.php";
?>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>demo</title>
        <style type="text/css">
        </style>
    </head>
    <body>
        <?php
        $sql = "select * from os ";
        $result = $conn->query($sql) or die($conn->error);
        while ($row = $result->fetch_assoc()) {
            // print_r($row);
            echo $row['fornavn'];
            echo " ";
            echo $row['mellem navn'];
            echo " ";
            echo $row['efternavn'];
            echo "<br>";
        }
        ?>
    </body>
</html>




læg mærke til Database:

find_mig.sql
--
-- Database: `find mig`
--
CREATE TABLE `dig` (
  `id` int(11) NOT NULL,
  `fornavn` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `efternavn` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


CREATE TABLE `os` (
  `id` int(11) NOT NULL,
  `fornavn` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `mellem navn` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `efternavn` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


ALTER TABLE `dig`
  ADD PRIMARY KEY (`id`);


ALTER TABLE `os`
  ADD PRIMARY KEY (`id`);


ALTER TABLE `dig`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;


ALTER TABLE `os`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
COMMIT;
Avatar billede lefsa62 Seniormester
29. januar 2019 - 19:50 #9
Det hele virker perfekt . jeg takker
Avatar billede lefsa62 Seniormester
29. januar 2019 - 22:57 #10
Den virkede når jeg brugte den du lavede
så ville jeg lave den som jeg skal bruge den ser sådan ud
og dette er linje 23
$sql = "insert into debitor (telefon, virksomhed cvr, søgenavn, navn, adress, adresse, ean nr, post nr, by, land, bruger id, email, attention, betalings frist, betalings måde) VALUES ( '" . $telefon . "', '" . $virksomhedcvr . "', '" . $søgenavn . "', '" . $navn . "', '" . $adress . "', '" . $adresse . "', '" . $eannr . "', '" . $postnr . "', '" . $by . "', '" . $land . "', '" . $brugerid . "', '" . $attention . "', '" . $email . "', '" . $betalingsfrist . "', '" . $betalingsmåde ."')";

Den kommer med den fejl , Kan du se fejlen. jeg har tjekket DB strengen

  You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'cvr, søgenavn, navn, adress, adresse, ean nr, post nr, by, land, bruger id, ema' at line 1
Avatar billede lefsa62 Seniormester
30. januar 2019 - 07:38 #11
Problemet er løst. Jeg takker for hjælpen
Avatar billede olsensweb.dk Ekspert
30. januar 2019 - 10:10 #12
når du ikke selv vil bringe løsningen så er den her:
$sql = "insert into debitor (telefon, `virksomhed cvr`, `søgenavn`, navn, adress, adresse, `ean nr`, `post nr`, `by`, land, `bruger id`, email, attention, betalings frist, `betalings måde`) VALUES ( '" . $telefon . "', '" . $virksomhedcvr . "', '" . $søgenavn . "', '" . $navn . "', '" . $adress . "', '" . $adresse . "', '" . $eannr . "', '" . $postnr . "', '" . $by . "', '" . $land . "', '" . $brugerid . "', '" . $attention . "', '" . $email . "', '" . $betalingsfrist . "', '" . $betalingsmåde ."')";

dvs
backtick omkring alle felt navne med mellemrum
backtick omkring alle felt navne med reseverede ord (her by)
backtick omkring alle felt navne med speal tegn feks æøå (her søgenavn)

nogle bruger altid backtick omkring deres felt navne, for at sikre sig mod dårlig navngivning, https://www.computerworld.dk/eksperten/spm/1012937?k=8233472 men backtick er mysql specifikt, hvis du tager så noget som mssql så er det kantede paranteser, som også skrevet i linket
eks
$sql = "insert into debitor (telefon, [virksomhed cvr], [søgenavn], navn,.....)



det bedste råd jeg kan give er som sagt tidligere: omdøb dine felt navne, hvis det er muligt, så du ikke skal bruge backtick

personligt har jeg valgt PDO som database API og tilslutter mig klart
ref https://www.computerworld.dk/eksperten/spm/1012937?k=8233483

citat
At bruge PDO og SQL med backticks er efter min mening absurd - man vaelger et database uafhaengigt API og saa laver man al sin SQL database afhaengig.
/citat
Avatar billede lefsa62 Seniormester
30. januar 2019 - 13:51 #13
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'frist, `betalings måde`) VALUES ( '40206344', '', '', 'Tordbjørn Albertsen ', ' at line 1

Sådan ser den ud når jeg har indsat den streng som du sendte. Jeg arbejder på det i fire timer så fik jeg one.com som er min udbyder men ikke godt nok. Det ikke for jeg prøvede for den du sendte mig virkede perfekte og jeg kikkede der hvor du skrev vedr mellem navn men lige lidt hjalp det
Avatar billede olsensweb.dk Ekspert
30. januar 2019 - 14:09 #14
betalings frist den var smuttet, der skal også backtick omkring. altså `betalings frist`
Avatar billede lefsa62 Seniormester
30. januar 2019 - 14:11 #15
Problemet er den Steng hvor der står inser into os som du skrev i den originale. Hvis jeg lavede den om til hvad som helst  vil den ikke virke men her er den ligeglad hvad jeg skriver i den streng insert into os/Debitor eller hvad som helst. Den reagerer ikke
Avatar billede lefsa62 Seniormester
30. januar 2019 - 15:15 #16
Hej Olsen.web
Jeg fandt en fejl som omhandler den streng med mellemrum som fejlede..Men det er en fejl at ALLE skal udfyldes  også. Ean nr og cvr nr nen de er ikke omfattet nødvendig det har jeg fjernet Men mysql siger at det skal det have når der er gjort så går den igennem. Hvad kan skyldes
Avatar billede olsensweb.dk Ekspert
30. januar 2019 - 17:17 #17
>Men mysql siger at det skal det have når der er gjort så går den igennem. Hvad kan skyldes
du har i databasen sat feltet til not null

https://stackoverflow.com/questions/27926889/how-do-i-require-a-mysql-field
https://stackoverflow.com/questions/24424363/mysql-column-constraint-as-not-empty-required

btw: den person der har lavet den tabel / bestemt kollone navne skulle have skridt-pryl med en våd søndags berlinger
Avatar billede lefsa62 Seniormester
31. januar 2019 - 13:58 #18
Nu har jeg samlet dem også post nr by så den ser sådan postnrby men problem er drn står som f i data base og nu har jeg fjernet alle requerd og prøvet en ad gangen det er problem med alle inf i db hvor det ef tal så skal jeg skriv har du en løsning så det er valg frit i oplad formularen
Avatar billede lefsa62 Seniormester
31. januar 2019 - 23:06 #19
Ja de er og var sat  ' int i null ' i db
men det med at sette telefon_nummer gav virkelig bagslag i det hele
ja du har ret omkring +45  så ser den sådan ' Out of range value for column 'telefon' at row 1'
og stadig er der ingen løsning på cvr, ean og  telefon altså db  int  :-((
jeg har det med at ikke gå videre før noget er løst
Avatar billede lefsa62 Seniormester
01. februar 2019 - 11:53 #20
Nu har jeg laved vedr at skulle kunne indrette flere en 8 tal så telefon_nummer sådan ud i linje 8 og i 23 ser den sådan ud `telefon nummer`
Og der hvor den bliver skrevet ser den sådan ud telefon nummer men fejlen ser sådan ud
Unknown column 'telefon nummer' in 'field list'
Avatar billede lefsa62 Seniormester
01. februar 2019 - 11:54 #21
Jo hvis jeg fjerner nummer så sætter 8 tal ind så ingen problem
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

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



IT-JOB

Udviklings- og Forenklingsstyrelsen

IAM-medarbejder

Cognizant Technology Solutions Denmark ApS

Graduate - Software Automation Program

Udviklings- og Forenklingsstyrelsen

Systemejere/Application Managers til SAP-installationer