|
| 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
| |
|
|