INSERT TO werkt niet in mijn script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Ron

Ron

08/10/2006 15:43:00
Quote Anchor link
Ik heb een simpel scriptje voor mij database "test" en de tabel "ron". Echter het werkt niet. Ik krijg geen foutmelding. Ziet iemand de oplossing ?

<html>
<head>
<title> Een toevoegpagina voor onze tabel Ron </title>
</head>
<body bgcolor="white" text="blue" >
<form method="post" action="adressentoevoegen.php" >

Gelieve uw naam en woonplaats op te geven:

<br>
<br>


Achternaam:
<input type="text" name="achternaam" size="20" maxlength="20" ><br>


Woonplaats:
<input type="text" name="woonplaats" size="20" maxlength="20" ><br>
<br>

<input type="submit" value="toevoegen" >

</form>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php

$achternaam
="achternaam";
$woonplaats="woonplaats";

if($achternaam!="" and $woonplaats!="")

{


$connectie=mysql_connect('localhost','root','Ronald08');

mysql_select_db('test');


$toevoegquery="INSERT INTO ron values('$achternaam','$woonplaats')";

$resultaat=mysql_query($toevoegquery);
mysql_close($connectie);

echo "U gegevens zijn toegevoegd!";

}


else
{
echo "U heeft nog niet alle verplichte velden ingevuld!";
}


?>

</body>
</html>
 
PHP hulp

PHP hulp

26/04/2024 00:49:53
 
Lill-mik

Lill-mik

08/10/2006 15:48:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$toevoegquery = "INSERT INTO ron (achternaam, woonplaats) VALUES ('$achternaam','$woonplaats')";


dit misschien?
Gewijzigd op 01/01/1970 01:00:00 door Lill-mik
 
Stefan van Iwaarden

Stefan van Iwaarden

08/10/2006 15:49:00
Quote Anchor link
Logisch dat hij het niet doet, want jij gaat er vanuit dat je de velden gewoon kunt opvragen met
$achternaam = "achernaam";

Dit is niet zo! je moet deze als volgt opvragen:
$achternaam = $_POST['achternaam'];

ik heb je script verbeterd, want er zaten wel wat schoonheidsfoutjes in, zo kun je de if statement beter met empty() maken, en de mysql connectie hoeft niet afgesloten te worden aangezien hij dit zelf doet wanneer hij klaar is.

Ook was je query niet goed, je kunt beter altijd specificeren in welke velden je gaat inserten, als je dit niet doet telt mysql vanaf de eerste kolom wat waarschijnlijk een id kolom is (hoop ik tenminste).

Ook moet je jezelf aanleren variabelen buiten de quotes te halen, als je dan ook nog met een goede editor werkt met kleuren zie je al je variabelen in een oogopslag.

Leer tevens netjes te scripten door in te springen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
mysql_connect('localhost','root','Ronald08');
mysql_select_db('test');

if(!empty($achternaam) && !empty($woonplaats))
{

    $achternaam = $_POST['achternaam'];
    $woonplaats = $_POST['woonplaats'];
    
    $query         = "INSERT INTO ron (achternaam, woonplaats) VALUES ('".$achternaam."','".$woonplaats."')";
    $result     = mysql_query($query);
    
    echo "Uw gegevens zijn toegevoegd!";
}

else
{
    echo "U heeft nog niet alle verplichte velden ingevuld!";
}

?>


zo, dat was het wel geloof ik :)
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Lissy Pixel

Lissy Pixel

08/10/2006 15:53:00
Quote Anchor link
Dan een vraagje van mij en wanneer je bijv. een veld al ingevuld wenst te hebben hoe die je dit vermelden?
 
Stefan van Iwaarden

Stefan van Iwaarden

08/10/2006 16:00:00
Quote Anchor link
@Lissy, bedoel je dat er een veld al ingevuld moet zijn wanneer de pagina wordt geladen? deze kun je dan invullen met het attribuut value = "" van het input type.
 
Lissy Pixel

Lissy Pixel

08/10/2006 16:05:00
Quote Anchor link
Ja inderdaad ik zou daar alvast wat neergezet hebben ter vookoming van fouten en uniformiteit op de site.
Ik ga jouw voorstel proberen :)

Werkt prima == BEDANKT!
Gewijzigd op 01/01/1970 01:00:00 door Lissy Pixel
 
Niek s

niek s

08/10/2006 16:08:00
Quote Anchor link
<input type="text" name="naam_van_de_input" value="inhoud van de box als je op de site komt" />

Zo.
 
Robert Deiman

Robert Deiman

08/10/2006 16:10:00
Quote Anchor link
En als je bedoeld dat je wilt controleren, of die al dan niet is geset:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

$fout
= FALSE;
$showerror="";
if (empty($_POST['waarde'])){
  $fout=TRUE
  $showerror .= "De waarde van [naam veld] is niet ingevuld<br/>";
  }

// en zo verder voor de post velden
//vervolgens

if (!$fout){//geen fouten gevonden
  // verwerk het formulier

  }
elseif ($fout || $_SERVER['REQUEST_METHOD'] != "post"){//fout gevonden, of formulier  nog niet verzonden
  // je formulier en evt foutmeldingen laten zien

  }
?>
 
Ron

Ron

08/10/2006 16:27:00
Quote Anchor link
Stefan, gelukt ! Many thanks !!!
 
Frank -

Frank -

08/10/2006 18:39:00
Quote Anchor link
Foutafhandeling

Dat is de kern van een goed systeem. Jij neemt nu aan dat iedere query wel zal lukken, maar in werkelijkheid heb je de garantie dat queries vroeg of laat zullen mislukken. Dus altijd controleren of het is gelukt.

Verder moet je altijd de functie mysql_real_escape_string() gebruiken wanneer je variabelen in de query opneemt. Doe je dat niet, krijg je vroeg of laat met een hacker te maken die jouw database om zeep helpt: SQL-injection.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$query
= "
SELECT
  *
FROM
  tabelnaam
WHERE
  naam = '"
.mysql_real_escape_string($_POST['naam'])."'
"
;
$result = mysql_query($query);

if(!$result){ // query is mislukt
  echo 'Mislukt vanwege: '.mysql_error();
  echo 'Met query: '.$query;
}

else {
  // doe iets met het resultaat
}
// en de rest van je script
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.