/ 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
Tomme databaseindsættelse
Fra : Søren Sohl


Dato : 01-05-03 07:21

Hver gang jeg loader denne side kommer der en tom plads i databasen. Hvad
kan det skyldes?

<?
$connection = mysql_connect("*","*","*");
mysql_select_db("radio", $connection);

mysql_query("INSERT INTO playlist (program, vaerter, dato, uge, min,
playliste) VALUES ('$program', '$vaerter', '$dato', '$uge', '$min',
'$playliste')") OR DIE (mysql_error());
mysql_close;
header("Location: index.php");
?>



 
 
Lars Dybdahl (01-05-2003)
Kommentar
Fra : Lars Dybdahl


Dato : 01-05-03 07:35

Søren Sohl wrote:
> Hver gang jeg loader denne side kommer der en tom plads i databasen. Hvad
> kan det skyldes?

Du skal nok sætte linier ind i starten som:

$program=$_REQUEST["program"];

Nyere versioner af php laver ikke automatisk variable som $program, hvis en
form har et felt af navnet program. I stedet bruger man $_REQUEST[].

Lars.

--
Freelance programmør
Programmering mod timebetaling

Kasper Garnæs (01-05-2003)
Kommentar
Fra : Kasper Garnæs


Dato : 01-05-03 07:36

Søren Sohl <ssohlREMOVE@cs.auc.dk> wrote:
> Hver gang jeg loader denne side kommer der en tom plads i databasen.
> Hvad kan det skyldes?
>
> <?
> $connection = mysql_connect("*","*","*");
> mysql_select_db("radio", $connection);
>
> mysql_query("INSERT INTO playlist (program, vaerter, dato, uge, min,
> playliste) VALUES ('$program', '$vaerter', '$dato', '$uge', '$min',
> '$playliste')") OR DIE (mysql_error());
> mysql_close;
> header("Location: index.php");

Hvis ikke du har sat direktivet register_globals = on i din php.ini (default
er off fra version 4.2.0) skal du tilgå dine variable gennem de
predefinerede variable $_POST, $_GET etc. alt afhængig af, hvor du forsøger
at hente data fra. Det kan du læse mere om i dokumentationen
(http://dk.php.net/manual/en/language.variables.predefined.php)



Dennis T. Holm (01-05-2003)
Kommentar
Fra : Dennis T. Holm


Dato : 01-05-03 07:37


> Hver gang jeg loader denne side kommer der en tom plads i databasen. Hvad
> kan det skyldes?

Jaaa .. måske er det fordi du ikke har nogen data i dine variabler :) ..
Hvor får du dine data fra ? . hvis det er en FORM som POSTER dem skal du
huske at
trykke hver variabel ud fra din FORM POST med f.eks. $_REQUEST["program"]...

Men hvis du lige kan give noget "kode" på det som kalder den her side så
ville det være liiiidt nemmere :)

MVH Dennis T. Holm


> <?
> $connection = mysql_connect("*","*","*");
> mysql_select_db("radio", $connection);
>
> mysql_query("INSERT INTO playlist (program, vaerter, dato, uge, min,
> playliste) VALUES ('$program', '$vaerter', '$dato', '$uge', '$min',
> '$playliste')") OR DIE (mysql_error());
> mysql_close;
> header("Location: index.php");



Søren Sohl (01-05-2003)
Kommentar
Fra : Søren Sohl


Dato : 01-05-03 08:05

> Men hvis du lige kan give noget "kode" på det som kalder den her side så
> ville det være liiiidt nemmere :)
>

Jeg har læst de to foregående posts og har opfattet at problemet er globale
variabler? Men når en person loader siden må den åbenbart også køre kaldet
selvom den først skal køre det når der bliver trykket på knappen. Dette er
filen (gem.php) hvor kaldet sker i:

<p>Anmeldelse af koncert og/eller interview</p>
<form method="post" action="gem.php">
<table width="*" border="0">
<tr>
<td width="*">
<p>Dato:</p>
</td>
<td width="*">
<p>Band:</p>
</td>
<td width="*">
<p>Sted:</p>
</td>
<td width="*">
<p>Anmelder</p>
</td>
</tr>
<tr>
<td width="*">
<input type="text" name="band">
</td>
<td width="*">
<input type="text" name="band">
</td>
<td width="*">
<input type="text" name="sted">
</td>
<td width="*">
<input type="text" name="anmelder">
</td>
</tr>
</table>

<hr>

<p>Anmeldelse:</p>
<p>
<textarea name="tekst" cols="70" rows="20"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Send anmeldelse">
</p>
</form>

<?
$connection = mysql_connect("*","*","*");
mysql_select_db("radio", $connection);

mysql_query("INSERT INTO koncert (band, sted, dato, anmelder, tekst) VALUES
('$band', '$sted', '$dato', '$anmelder', '$tekst')") OR DIE (mysql_error());
mysql_close;
header("Location: index.php");
?>



Dennis T. Holm (01-05-2003)
Kommentar
Fra : Dennis T. Holm


Dato : 01-05-03 08:16

>Men når en person loader siden må den åbenbart også køre kaldet selvom den
først skal køre det når der bliver trykket på knappen.

Den skulle ikke gerne køre din gem.php FØR du har trykket på Submit
knappen.. Det er jeg næsten sikker på at den ikke gør før, medmindre der er
et eller andet som jeg ikke lige har fået med.

Hvis du har en FORM som denne her herunder

<FORM name="formname" action="gem.php" method="POST">
<input type="text" name="koncert">
<input type="text" name="band">
<input type="text" name="rating">
osv.
</FORM>

så skal du i din gem.php trække dine data ud på følgende måde inden du kan
gemme dem:

<?
$koncert = $_REQUEST["koncert"];
$band= $_REQUEST["band"];
$rating = $_REQUEST["rating"];
?>

Hvorefter du så kan gemme dine data... Bare husk at give alle dine data ud
inden du gemmer dem, for eller får du som du selv siger tomme felter i din
DB....

Du kunne også bare lave din FORM om til en GET istedet .. så kan du bruge
dem i din gem.php uden først at skulle REEQUESTE dem ...



MVH Dennis T. Holm



Søren Sohl (01-05-2003)
Kommentar
Fra : Søren Sohl


Dato : 01-05-03 09:02

> Du kunne også bare lave din FORM om til en GET istedet .. så kan du bruge
> dem i din gem.php uden først at skulle REEQUESTE dem ...

Jeg har prøvet både GET og REQUEST, men kan det ikke skyldes at den allerede
har kørt query'et når den bliver kaldt? Skal der ikke laves en eller anden
form for kontrolstruktur hvis felterne er tomme eller lign.?

<html>
<head>
<link href="../style.css" rel="stylesheet" type="text/css">
</head>

<body>

<p>Anmeldelse af koncert og/eller interview</p>

<form method="post" action="gem.php">
<table width="*" border="0">
<tr>
<td width="*">
<p>Dato:</p>
</td>
<td width="*">
<p>Band:</p>
</td>
<td width="*">
<p>Sted:</p>
</td>
<td width="*">
<p>Anmelder</p>
</td>
<td width="*">
<p>Karakter</p>
</td>
</tr>
<tr>
<td width="*">
<input type="text" name="dato">
</td>
<td width="*">
<input type="text" name="band">
</td>
<td width="*">
<input type="text" name="sted">
</td>
<td width="*">
<input type="text" name="anmelder">
</td>
<td width="*">
<input type="text" name="rating">
</td>
</tr>
</table>

<hr>

<p>Anmeldelse:</p>
<p>
<textarea name="tekst" cols="70" rows="20"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Send anmeldelse">
</p>
</form>

<?
$dato=$_REQUEST["dato"];
$band=$_REQUEST["band"];
$sted=$_REQUEST["sted"];
$anmelder=$_REQUEST["anmelder"];
$rating=$_REQUEST["rating"];
$tekst=$_REQUEST["tekst"];

$connection = mysql_connect("*","*","*");
mysql_select_db("*", $connection);

mysql_query("INSERT INTO koncert (band, sted, dato, anmelder, tekst, rating)
VALUES ('$band', '$sted', '$dato', '$anmelder', '$tekst', '$rating')") OR
DIE (mysql_error());
mysql_close;
header("Location: index.php");
?>

</body>
</html>



Dennis T. Holm (01-05-2003)
Kommentar
Fra : Dennis T. Holm


Dato : 01-05-03 09:08


> Jeg har prøvet både GET og REQUEST, men kan det ikke skyldes at den
allerede
> har kørt query'et når den bliver kaldt?

Du skal bare sørge for FØRST at hente dine variabler, og derefter køre din
INSERT query.

Hvis du har gjort dette, kan jeg ikke lige se hvad der er galt.. medmindre
du lige indsætter koden så jeg kan se om der måske har sneget sig noget
mystisk ind nogen steder..

MVh Dennis T. Holm



Søren Sohl (01-05-2003)
Kommentar
Fra : Søren Sohl


Dato : 01-05-03 10:35

"Dennis T. Holm" <dennis@contempt.dk> skrev i en meddelelse
news:b8qkoi$38$1@sunsite.dk...

> Du skal bare sørge for FØRST at hente dine variabler, og derefter køre din
> INSERT query.
>
> Hvis du har gjort dette, kan jeg ikke lige se hvad der er galt.. medmindre
> du lige indsætter koden så jeg kan se om der måske har sneget sig noget
> mystisk ind nogen steder..
>

Jeg har prøvet en del forskellige kombinationer nu og den indsætter stadig
en tom post i databasen når gem.php bliver loadet. Skal php-delen ligge i en
anden fil eller hvad kunne fejlen ellers være?

<html>
<head>
<link href="../style.css" rel="stylesheet" type="text/css">

</head>

<body>

<p>Anmeldelse af koncert og/eller interview</p>

<form method="post" action="gem.php">
<table width="*" border="0">
<tr>
<td width="*">
<p>Dato:</p>
</td>
<td width="*">
<p>Band:</p>
</td>
<td width="*">
<p>Sted:</p>
</td>
<td width="*">
<p>Anmelder</p>
</td>
<td width="*">
<p>Karakter</p>
</td>
</tr>
<tr>
<td width="*">
<input type="text" name="dato">
</td>
<td width="*">
<input type="text" name="band">
</td>
<td width="*">
<input type="text" name="sted">
</td>
<td width="*">
<input type="text" name="anmelder">
</td>
<td width="*">
<input type="text" name="rating">
</td>
</tr>
</table>

<hr>

<p>Anmeldelse:</p>
<p>
<textarea name="tekst" cols="70" rows="20"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Send anmeldelse">
</p>
</form>

<?
$dato = $_REQUEST["dato"];
$band = $_REQUEST["band"];
$sted = $_REQUEST["sted"];
$anmelder = $_REQUEST["anmelder"];
$rating = $_REQUEST["rating"];
$tekst = $_REQUEST["tekst"];
$connection = mysql_connect("*","*","*");

mysql_select_db("*", $connection);

mysql_query("INSERT INTO koncert (dato, band, sted, anmelder, rating, tekst)
VALUES ('$dato', '$band', '$sted', '$anmelder', '$rating', '$tekst')") OR
DIE (mysql_error());

mysql_close;

?>

</body>
</html>



Dennis T. Holm (01-05-2003)
Kommentar
Fra : Dennis T. Holm


Dato : 01-05-03 10:39



> Jeg har prøvet en del forskellige kombinationer nu og den indsætter stadig
> en tom post i databasen når gem.php bliver loadet. Skal php-delen ligge i
en
> anden fil eller hvad kunne fejlen ellers være?

DETTE HERUNDER SKAL VÆRE I EN FIL .. f.eks. tilfojKoncert.html
> <html>
> <head>
> <link href="../style.css" rel="stylesheet" type="text/css">
> </head>
> <body>
> <p>Anmeldelse af koncert og/eller interview</p>
> <form method="post" action="gem.php">
> <table width="*" border="0">
> <tr>
> <td width="*">
> <p>Dato:</p>
> </td>
> <td width="*">
> <p>Band:</p>
> </td>
> <td width="*">
> <p>Sted:</p>
> </td>
> <td width="*">
> <p>Anmelder</p>
> </td>
> <td width="*">
> <p>Karakter</p>
> </td>
> </tr>
> <tr>
> <td width="*">
> <input type="text" name="dato">
> </td>
> <td width="*">
> <input type="text" name="band">
> </td>
> <td width="*">
> <input type="text" name="sted">
> </td>
> <td width="*">
> <input type="text" name="anmelder">
> </td>
> <td width="*">
> <input type="text" name="rating">
> </td>
> </tr>
> </table>
> <hr>
> <p>Anmeldelse:</p>
> <p>
> <textarea name="tekst" cols="70" rows="20"></textarea>
> </p>
> <p>
> <input type="submit" name="Submit" value="Send anmeldelse">
> </p>
> </form>
> </body>
> </html>


Det herunder skal du smide i din gem.php fil

> <?
> $dato = $_REQUEST["dato"];
> $band = $_REQUEST["band"];
> $sted = $_REQUEST["sted"];
> $anmelder = $_REQUEST["anmelder"];
> $rating = $_REQUEST["rating"];
> $tekst = $_REQUEST["tekst"];
> $connection = mysql_connect("*","*","*");
>
> mysql_select_db("*", $connection);
>
> mysql_query("INSERT INTO koncert (dato, band, sted, anmelder, rating,
tekst)
> VALUES ('$dato', '$band', '$sted', '$anmelder', '$rating', '$tekst')") OR
> DIE (mysql_error());
>
> mysql_close;
>
> ?>

Du kan så herefter bare redirecte tilbage til din den anden side igen ..


--
Med Venlig Hilsen
Dennis Taszarek Holm




Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste