Waarom werkt INSERT nie?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
session_start() ;
if ( $_SESSION['tabel_sierraden'] != "1" ) {
$database_server = mysql_connect("*", "*", "*");
mysql_select_db("*", $database_server) ;
function Table_Exists($table_name) {
$Table = mysql_query("show tables like '" .
$table_name . "'");
if(mysql_fetch_row($Table) === false)
return(false);
return(true);
}
if ( Table_Exists($sieraden) == false ) {
$sql = "CREATE TABLE sieraden
(artnr varchar(5),
naam varchar(20),
prijs varchar(6),
aant varchar(5),
beschr varchar(50))" ;
mysql_query( $sql ) ;
session_start() ;
$_SESSION['tabel_sierraden'] = "1" ;
} else { echo "bestaat al" ;
session_start() ;
$_SESSION['tabel_sierraden'] = "1" ; }
}
////////////////////
if ($submit) {
// Maak verbinding met MySQL server
$database_server = mysql_connect("*", "*", "*");
mysql_select_db("*", $database_server) ;
// Zet voor 'gevaarlijke' tekens (', ", en \) een extra \
$artnr = addslashes($artnr);
$naam = addslashes($naam);
$prijs = addslashes($prijs);
$aant = addslashes($aant);
$beschr = addslashes($beschr);
// Maak SQL query om toe te voegen (INSERT)
$sql = "INSERT INTO sierraden (artnr, naam, prijs, aant, beschr)
VALUES ('$artnr', '$naam', '$prijs', '$aant', '$beschr')";
// Voer SQL uit
mysql_query($sql) or die("Oops...");
// Geef bevestiging
echo "Cool, winkel is suxesvol toegevoegd.";
}
?>
session_start() ;
if ( $_SESSION['tabel_sierraden'] != "1" ) {
$database_server = mysql_connect("*", "*", "*");
mysql_select_db("*", $database_server) ;
function Table_Exists($table_name) {
$Table = mysql_query("show tables like '" .
$table_name . "'");
if(mysql_fetch_row($Table) === false)
return(false);
return(true);
}
if ( Table_Exists($sieraden) == false ) {
$sql = "CREATE TABLE sieraden
(artnr varchar(5),
naam varchar(20),
prijs varchar(6),
aant varchar(5),
beschr varchar(50))" ;
mysql_query( $sql ) ;
session_start() ;
$_SESSION['tabel_sierraden'] = "1" ;
} else { echo "bestaat al" ;
session_start() ;
$_SESSION['tabel_sierraden'] = "1" ; }
}
////////////////////
if ($submit) {
// Maak verbinding met MySQL server
$database_server = mysql_connect("*", "*", "*");
mysql_select_db("*", $database_server) ;
// Zet voor 'gevaarlijke' tekens (', ", en \) een extra \
$artnr = addslashes($artnr);
$naam = addslashes($naam);
$prijs = addslashes($prijs);
$aant = addslashes($aant);
$beschr = addslashes($beschr);
// Maak SQL query om toe te voegen (INSERT)
$sql = "INSERT INTO sierraden (artnr, naam, prijs, aant, beschr)
VALUES ('$artnr', '$naam', '$prijs', '$aant', '$beschr')";
// Voer SQL uit
mysql_query($sql) or die("Oops...");
// Geef bevestiging
echo "Cool, winkel is suxesvol toegevoegd.";
}
?>
<form action="index.php" method="post">
<input type="hidden" name="submit" value="yes">
Artnr: <input type="text" name="artnr" maxlength="5"><br>
Naam: <input type="text" name="naam" maxlength="20" ><br>
Prijs: <input type="text" name="prijs" maxlength="6" ><br>
Aant: <input type="text" name="aant" maxlength="5"><p>
Beschr: <input type="text" name="beschr" maxlength="50"><p>
<input type="submit" value=" Voeg toe ">
</form>
is hoever ik nu ben.. ik probeer het een beetje te leren dat mysql. Maar nu.. ik kan wel een tabel aan maken en controleeren of die bestaat. Alleen het invullen wil niet lukken hij zegt oops.. ("Oops..."); weet je wel.. ziet iemand de oplossing
hij connect wel naar de goede host van de mysql.
Omdat ik wel tabellen aan kan maken via php (zie de eerste paar regels)
ps. jaa er staan sterretjes maar dat deel werkt ook wel zonder de sterretjes dan ;)
ik hoop dat jullie het probleem snappen
gr kima
"('$variabele')"
veranderen in:
"('".$variabele."')"
dat zou moeten werken.
Gewijzigd op 01/01/1970 01:00:00 door Iwan Luyks
VALUES ('".$artnr."', '".$naam."', '".$prijs."', '".$aant."', '".$beschr."')";
nog steeds oops .. dus werkt die nog nie.
de line erboben had ik het ook gedaan maar nog steeds nix..
En plak dan hier even wat er dan komt te staan.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$artnr = addslashes($artnr);
$naam = addslashes($naam);
$prijs = addslashes($prijs);
$aant = addslashes($aant);
?>
$artnr = addslashes($artnr);
$naam = addslashes($naam);
$prijs = addslashes($prijs);
$aant = addslashes($aant);
?>
Je haalt de gegevens hiermee niet op. Ook if ($submit) is fout. Je moet dit er van maken:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
//om $_POST['toevoegen'] te controleren moet je ook nog je submit knop de naam toevoegen geven (name="toevoegen")
if ($_POST['toevoegen']) {
// Maak verbinding met MySQL server
$database_server = mysql_connect("*", "*", "*");
mysql_select_db("*", $database_server) ;
// Zet voor 'gevaarlijke' tekens (', ", en \) een extra \
$artnr = addslashes($_POST['artnr']);
$naam = addslashes($_POST['naam']);
$prijs = addslashes($_POST['prijs']);
$aant = addslashes($_POST['aant']);
$beschr= addslashes($_POST['beschr']);
// Maak SQL query om toe te voegen (INSERT)
$sql = "INSERT INTO sierraden (artnr, naam, prijs, aant, beschr)
VALUES ('".$artnr."', '".$naam."', '".$prijs."', '".$aant."', '".$beschr."')";
?>
//om $_POST['toevoegen'] te controleren moet je ook nog je submit knop de naam toevoegen geven (name="toevoegen")
if ($_POST['toevoegen']) {
// Maak verbinding met MySQL server
$database_server = mysql_connect("*", "*", "*");
mysql_select_db("*", $database_server) ;
// Zet voor 'gevaarlijke' tekens (', ", en \) een extra \
$artnr = addslashes($_POST['artnr']);
$naam = addslashes($_POST['naam']);
$prijs = addslashes($_POST['prijs']);
$aant = addslashes($_POST['aant']);
$beschr= addslashes($_POST['beschr']);
// Maak SQL query om toe te voegen (INSERT)
$sql = "INSERT INTO sierraden (artnr, naam, prijs, aant, beschr)
VALUES ('".$artnr."', '".$naam."', '".$prijs."', '".$aant."', '".$beschr."')";
?>
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
Controleren op formulier submit hoort zo:
if($_SERVER['REQUEST_METHOD'] == "POST")
Tenzijn je meerdere forms naar de pagina hebt staan natuurlijk
Willem-Jan:
Maak van "Oops..." even mysql_error()
En plak dan hier even wat er dan komt te staan.
En plak dan hier even wat er dan komt te staan.
Doe dat nou even die functie is er niet voor niks.
En btw suxesvol is niet met een x maar het is succesvol
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
volgens mij defineer jij de var $sieraden niet voor de functie TableExists...
Wout, die $sieraden heeft helemaal niks met de INSERT query te maken. Oke, de code kan een stuk netter. Maar daar ging het nu niet om.
wes:
Tenzijn je meerdere forms naar de pagina hebt staan natuurlijk
Dan nog controleer je of de request methode POST is, en daarbij controleer je dan met de if($_POST[' ']) dan welk formulier er is geweest.
hij zegt "Table 'tjeerd3_winkel.sierraden' doesn't exist"
maar hij staat er wel in:
-- Tabel structuur voor tabel `sieraden`
--
CREATE TABLE `sieraden` (
`artnr` varchar(5) default NULL,
`naam` varchar(20) default NULL,
`prijs` varchar(6) default NULL,
`aant` varchar(5) default NULL,
`beschr` varchar(50) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Gegevens worden uitgevoerd voor tabel `sieraden`
--
... beejte vaag..
daar staat sieraden met dubbel R, terwijl je hem create met 1 r:)
Quote:
`artnr` varchar(5) default NULL,
`prijs` varchar(6) default NULL,
`aant` varchar(5) default NULL,
`prijs` varchar(6) default NULL,
`aant` varchar(5) default NULL,
Prijs lijkt mij een getal, een DECIMAL ligt dan meer voor de hand. artnr is, zoals de naam al zegt, een nummer. Dus een getal. Waarom dan geen INT gebruiken? Naar de naam 'aant' zal ik moeten raden, maar 'aantal' ligt voor de hand. Wanneer dat het geval is, dan is dat wederom een getal, een INT ligt dan voor de hand.
Ga je eens verdiepen in de verschillende datatypes, een database kent meer mogelijkheden dan alleen een VARCHAR. Gelukkig wel zeg!
woops maar bedankt het is me nu wel weer een stuk duidelijker geworden
VARCHAR omdat je er alles neer kan zetten.. dit was mijn eerste ervaring met mysql dus jah das de volgende stap :)
maakt niet uit, aldoende leert men! Maar doe er wel verstandig aan om ook de tips die we geven zoveel mogelijk door te voeren. Als je iets niet snapt horen we van je!
Quote:
En dat is ook precies het probleem wanneer er een beter formaat voorhanden is. Zie de handleiding voor de verschillende formaten.VARCHAR omdat je er alles neer kan zetten.
En houd in gedachten dat de database bepaalt hoe je iets moet opslaan, niet jij.
Bijvoorbeeld een datum, die sla je op in een DATE en die heeft 'toevallig' het formaat yyyy-mm-dd. Daar verander je niets aan, daar ga je mee werken. Punt uit.
Hoe de bezoeker van jouw website een datum invult of op het scherm te zien krijgt, dat staat helemaal los van de wijze waarop het is opgeslagen.