/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
kan ikke poste til database
Fra : Peter Nicolaj


Dato : 18-06-08 00:05

Hej, jeg har problemer med at få mine form-indtastninger til at
sende til min database.

Min insert.php fil skulle være lige til, så tænker fejlen ligger
i min navngivne fil default.php.

Er der nogen der umiddelbart kan gennemskue problemet.

<?php

/* Forbinder, vælger database */
$connect = mysql_connect('localhost', 'xxx', 'xxx')
or die("Kunne ikke oprette forbindelse til databasen : " .
mysql_error());
echo "Forbundet til databasen";
mysql_select_db('multimartin_dk', $connect) or die("kunne ikke
vælge databasen");

print "<h1>Multimartin kunder</h1>\n";

/*Indsætte rækker i tabellen multimartin*/
if ($firstname && $surname && $street_nr && $postalcode &&
$phonenr && $e_mail) {
   $sqlquery = "INSERT INTO customer (customer_id, firstname,
surname, street_nr, postalcode, phonenr, e_mail )
   VALUES
    ('','$firstname','$surname','$street_nr', '$postalcode',
'$phonenr', '$e_mail')";
   
   mysql_query($sqlquery) or die(mysql_error());
}else{
   if ($update){
      print "<h1>Multimartin ikke opdateret</h1>\n";
   }
   
}
include('insert.php');
mysql_query("DELETE FROM customer WHERE
customer_id='$customer_id'") or die(mysql_error());

/* Udfører SQL forespørgsel */
$res = mysql_query("SELECT * FROM customer") or
die(mysql_error());
echo '<table>';
while ($row = mysql_fetch_array($res)) {

print "<table border=\"1\">\n";
print
"<tr><th>Kundenr.</th><th>Fornavn</th><th>Efternavn</th><th>Addre
sse</th><th>Postnr.</th><th>Telefon</th><th>E-mail</th>";
print "</tr>\n";

/* Printer resultatet i HTML */
echo '<tr>';
echo '<td>' . $row[customer_id] . '</td>';
echo '<td>' . $row[firstname] . '</td>';
echo '<td>' . $row[surname] . '</td>';
echo '<td>' . $row[street_nr] . '</td>';
echo '<td>' . $row[postalcode] . '</td>';
echo '<td>' . $row[phonenr] . '</td>';
echo '<td>' . $row[e_mail] . '</td>';
echo '</tr>';
}
echo '</table>';

// De ressourcer, søgeresultatet optager, frigøres
mysql_free_result($res);

// Databaseforbindelsen lukkes
mysql_close();

?>



Og så lige min insert.php:

<html>
<head>
</head>
<center>
<form method="post" action="default.php" name="validation"
onSubmit="return checkbae()">
<form method="post" action="default.php" name="validation" >
<table>
<tr><td align="left">Fornavn</td>
<td><input type="text" name="firstname" size="20"></td>
</tr>
<tr><td align="left">Efternavn</td>
<td><input type="text" name="surname" size="20"></td>
</tr>
<tr><td align="left">Addresse</td>
<td><input type="text" name="street_nr" size="20"></td>
</tr>
<tr><td align="left">Postnr</td>
<td><input type="text" name="postalcode" size="20"></td>
</tr>
<tr><td align="left">Telefon</td>
<td><input type="text" name="phonenr" size="20"></td>
</tr>
<tr><td align="left">E-mail</td>
<td><input type="text" name="e_mail" size="20">
<input type="hidden" name="update" value="True" size="20"></td>
</tr>
<tr><td colspan="2">
<p align="center">
<input type="submit" value="Send">
</td>
</tr>
</table>
</form>
</center>
</html>



--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Dennis Munding (18-06-2008)
Kommentar
Fra : Dennis Munding


Dato : 18-06-08 16:29

Hej Peter Nicolaj!
"Peter Nicolaj" skrev:
> Hej, jeg har problemer med at få mine form-indtastninger til at
> sende til min database.
>
> Min insert.php fil skulle være lige til, så tænker fejlen ligger
> i min navngivne fil default.php.
>
> Er der nogen der umiddelbart kan gennemskue problemet.

Her kommer et skud fra hoften ud i tågen...

[SNIP] - så vidt jeg kan se, så er der ingen problemer i den første stump...

> /*Indsætte rækker i tabellen multimartin*/
> if ($firstname && $surname && $street_nr && $postalcode &&
> $phonenr && $e_mail) {

Her lurer jeg (efter min bedste overbevisning - er halv-newbie) fejl...
Hvis dine data kommer fra en formular, vil jeg mene, at det skal se således
ud:

if($_POST['firstname'] && $_POST['surname'] && $_POST['street_nr'] &&
$_POST['postalcode'] && $_POST['phonenr'] && $_POST['e_mail']) {

Men som sagt, så er jeg ikke nogen ørn til php...

[SNIP] - heller ingen umiddelbare fejl at spore i resten...


Med venlig hilsen
--
Dennis Munding
http://as-transport.dk/ -Sikker møbeltransport til tiden!
http://pe-vagtservice.dk/ -Når du vil passe på dine værdier!
http://munding-webdesign.dk/ -Vi ses! Ganske enkelt...


Philip Nunnegaard (18-06-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 18-06-08 19:40

"Dennis Munding" <mail@invalid.dk> skrev

> if($_POST['firstname'] && $_POST['surname'] && $_POST['street_nr'] &&
> $_POST['postalcode'] && $_POST['phonenr'] && $_POST['e_mail']) {
>
> Men som sagt, så er jeg ikke nogen ørn til php...

Det lyder ikke helt galt.
Det er vist et typisk newbie-problem at glemme at overføre $_POST til
almindelige variabler.
Der var vist en gang hvor man ikke behøvede det, men det var før jeg
begyndte at lære PHP.


Philip Nunnegaard (18-06-2008)
Kommentar
Fra : Philip Nunnegaard


Dato : 18-06-08 19:48

"Peter Nicolaj" <peternicolaj@hotmail.com> skrev

> $sqlquery = "INSERT INTO customer (customer_id, firstname,
> surname, street_nr, postalcode, phonenr, e_mail )
> VALUES
> ('','$firstname','$surname','$street_nr', '$postalcode',
> '$phonenr', '$e_mail')";

Et lille trick:
Hvad får du, hvis du skriver:
echo $sqlquery;

Jeg gætter på at du får dette:
....VALUES ('','','','','','','')

Altså ingenting.
Derfor brug Dennis Mundings metode eller start med at "overføre"
variablerne:

$firstname = $_POST["firstname"];
$surname = $_POST["surname"];
osv.

Det sidste er nok det bedste, da du så har mulighed for at bearbejde det
indtastede, inden det indsættes i tabellen, f.eks. ændre ' til &#39; og
tjekke at postnummeret er gyldigt (et tal).

$firstname = str_replace("'","&#39;",$firstname);
....osv...
if ($firstname && $surname && $street_nr && is_numeric($postalcode) &&
$phonenr && $e_mail)


Peter Nicolaj (18-06-2008)
Kommentar
Fra : Peter Nicolaj


Dato : 18-06-08 23:36

Peter Nicolaj wrote in dk.edb.internet.webdesign.serverside.php:
> Hej, jeg har problemer med at få mine form-indtastninger til at
> sende til min database.
>
> Min insert.php fil skulle være lige til, så tænker fejlen ligger
> i min navngivne fil default.php.
>
> Er der nogen der umiddelbart kan gennemskue problemet.
>
> <?php
>
> /* Forbinder, vælger database */
> $connect = mysql_connect('localhost', 'xxx', 'xxx')
> or die("Kunne ikke oprette forbindelse til databasen : " .
> mysql_error());
> echo "Forbundet til databasen";
> mysql_select_db('multimartin_dk', $connect) or die("kunne ikke
> vælge databasen");
>
> print "<h1>Multimartin kunder</h1>\n";
>
> /*Indsætte rækker i tabellen multimartin*/
> if ($firstname && $surname && $street_nr && $postalcode &&
> $phonenr && $e_mail) {
>    $sqlquery = "INSERT INTO customer (customer_id, firstname,
> surname, street_nr, postalcode, phonenr, e_mail )
>    VALUES
>     ('','$firstname','$surname','$street_nr', '$postalcode',
> '$phonenr', '$e_mail')";
>    
>    mysql_query($sqlquery) or die(mysql_error());
> }else{
>    if ($update){
>       print "<h1>Multimartin ikke opdateret</h1>\n";
>    }
>    
> }
> include('insert.php');
> mysql_query("DELETE FROM customer WHERE
> customer_id='$customer_id'") or die(mysql_error());
>
> /* Udfører SQL forespørgsel */
> $res = mysql_query("SELECT * FROM customer") or
> die(mysql_error());
> echo '<table>';
> while ($row = mysql_fetch_array($res)) {
>
> print "<table border=\"1\">\n";
> print
> "<tr><th>Kundenr.</th><th>Fornavn</th><th>Efternavn</th><th>Addre
> sse</th><th>Postnr.</th><th>Telefon</th><th>E-mail</th>";
> print "</tr>\n";
>
> /* Printer resultatet i HTML */
> echo '<tr>';
> echo '<td>' . $row[customer_id] . '</td>';
> echo '<td>' . $row[firstname] . '</td>';
> echo '<td>' . $row[surname] . '</td>';
> echo '<td>' . $row[street_nr] . '</td>';
> echo '<td>' . $row[postalcode] . '</td>';
> echo '<td>' . $row[phonenr] . '</td>';
> echo '<td>' . $row[e_mail] . '</td>';
> echo '</tr>';
> }
> echo '</table>';
>
> // De ressourcer, søgeresultatet optager, frigøres
> mysql_free_result($res);
>
> // Databaseforbindelsen lukkes
> mysql_close();
>
> ?>
>
>
>
> Og så lige min insert.php:
>
> <html>
> <head>
> </head>
> <center>
> <form method="post" action="default.php" name="validation"
> onSubmit="return checkbae()">
> <form method="post" action="default.php" name="validation" >
> <table>
> <tr><td align="left">Fornavn</td>
> <td><input type="text" name="firstname" size="20"></td>
> </tr>
> <tr><td align="left">Efternavn</td>
> <td><input type="text" name="surname" size="20"></td>
> </tr>
> <tr><td align="left">Addresse</td>
> <td><input type="text" name="street_nr" size="20"></td>
> </tr>
> <tr><td align="left">Postnr</td>
> <td><input type="text" name="postalcode" size="20"></td>
> </tr>
> <tr><td align="left">Telefon</td>
> <td><input type="text" name="phonenr" size="20"></td>
> </tr>
> <tr><td align="left">E-mail</td>
> <td><input type="text" name="e_mail" size="20">
> <input type="hidden" name="update" value="True" size="20"></td>
> </tr>
> <tr><td colspan="2">
> <p align="center">
> <input type="submit" value="Send">
> </td>
> </tr>
> </table>
> </form>
> </center>
> </html>
>
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials

Super!!! Tusind Tak for jeres svar. Har fået det til at virke.


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177549
Tips : 31968
Nyheder : 719565
Indlæg : 6408820
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste