Avatar billede xirox Nybegynder
13. oktober 2003 - 23:19 Der er 45 kommentarer og
1 løsning

At hente $id hele vejen rundt

Hej eksperter

jeg har et update system som jeg gerne vil have skal køre efter det id man skriver i urlen.
altså update.php?id=2 f.eks

Jeg har den første fil her:


<?
session_start();
?>
<?php
include("db.php");
$result9 = mysql_query("SELECT * FROM film_frontmovie1 WHERE id=$id");
$row9 = mysql_fetch_array($result9);
?>
<DIV STYLE='text-align:center'>
<form action='retokmovie1.php?id=$id' method='POST'>
<FONT FACE='Verdana' SIZE='1' COLOR='#000000'>
<BR>
<b>Overskrift :</b><br>
<input type="text" class="texter" name="overskrift" value="<? echo $row9['overskrift']; ?>"><br>
<b>Anmeldelse :</b><br>
<input type="text" class="texter" name="anmeldelse" value="<? echo $row9['anmeldelse']; ?>"><br>
<b>PIC :</b><br>
<input type="text" class="texter" name="pic" value="<? echo $row9['pic']; ?>"><br>
<b>Højde :</b><br>
<input type="text" class="texter" name="heigt" value="<? echo $row9['height']; ?>"><br>
<b>Brede :</b><br>
<input type="text" class="texter" name="width" value="<? echo $row9['width']; ?>"><br>

<INPUT TYPE="submit" VALUE="Opdater Profil" CLASS="knap">
</form>
</BODY>
</HTML>


Og den anden fil her

<?
session_start();
?>
<?php
include("db.php");
$result3 = mysql_query("SELECT * FROM film_frontmovie1 WHERE id=$id");
$row = mysql_fetch_array($result3);
$id = $row['id'];
mysql_query("UPDATE film_frontmovie1 set overskrift = '$overskrift' WHERE id='$id' ");
mysql_query("UPDATE film_frontmovie1 set anmeldelse = '$anmeldelse' WHERE id='$id' ");
mysql_query("UPDATE film_frontmovie1 set pic = '$pic' WHERE id='$id' ");
mysql_query("UPDATE film_frontmovie1 set height = '$height' WHERE id='$id' ");
mysql_query("UPDATE film_frontmovie1 set width = '$width' WHERE id='$id' ");
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
?>
<script>
location.href = 'retmovie1.php?id=$id';
</script>
</tr>
</table>
</BODY>
</HTML>

Hvad er det der skal laves om så det virker?

For lige nu henter ikke "id´en" 100% med hele vejen rundt. Kun på første side!

150 point til den der kan løse problemmet!
Avatar billede nicklasb Nybegynder
13. oktober 2003 - 23:23 #1
evt;

$result9 = mysql_query('SELECT * FROM film_frontmovie1 WHERE id = ' . $_GET['id']);
Avatar billede nicklasb Nybegynder
13. oktober 2003 - 23:27 #2
og den anden bliver så noget hen i retningen af;

$result3 = mysql_query('SELECT * FROM film_frontmovie1 WHERE id = ' $_GET['id']);

En god ide ville dog nok være i starten lige at tjekke på om der overhovedet kommer noget input.. Altså med noget hen i retningen af:

<?
if (!isset($_GET['id'])) {
    // en default ting her, så som fx en header('EnAndenSideITilfædeAfManglendeId'); eller en $id = 1; og så en lille ændring i queryen så den i stedet tager imod id igen
    exit;
}
?>
Avatar billede squashguy Nybegynder
13. oktober 2003 - 23:48 #3
din UPDATE sætning kan skrives mere optimalt som

UPDATE tabel SET felt1=noget, felt2=noget_andet WHERE id=et_id
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:08 #4
jeg ser lige om det virker!
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:10 #5
det ladet ikke til at funke.
den kommer med fejlen.
Parse error: parse error in retokmovie1.php on line 6
Avatar billede nicklasb Nybegynder
14. oktober 2003 - 00:17 #6
har du prøvet at rette hele vejen ned som jeg beskrev.. altså med $_GET['id']
Tror sku det ville virke.. Altså noget lignende:

mysql_query('UPDATE film_frontmovie1 set width = \'' . $width . '\' WHERE id = ' . $_GET['id']);

Prøv at rette således hele vejen ned..
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:19 #7
altså alle steder hvor der står noget med id skal jeg skriver $_GET['id']);
Avatar billede Slettet bruger
14. oktober 2003 - 00:20 #8
sikkert :)
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:23 #9
den går hend og laver fejl
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:24 #10
den går slet ikke ind og henter oplysningerne ned mere!
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:25 #11
der skete noget der. Ny fejl
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in retokmovie1.php on line 6
Avatar billede xirox Nybegynder
14. oktober 2003 - 00:27 #12
den tager ikke id´et med i url´en.

det er det som går galt!
Avatar billede Slettet bruger
14. oktober 2003 - 00:36 #13
hvad dag er det idag?
Avatar billede sukos Juniormester
14. oktober 2003 - 09:59 #14
Du skriver at der skal bruges POST i formen, men vil hente via en GET???

Hvis nu du lader være med at bruge id'et i url'en, og laver et hiddenfelt istedet:

<form action='retokmovie1.php' method='POST'>
<input type="hidden" name="id" value="<? echo $row9['id']; ?>">
<FONT FACE='Verdana' SIZE='1' COLOR='#000000'>
<BR>
<b>Overskrift :</b><br>
<input type="text" class="texter" name="overskrift" value="<? echo $row9['overskrift']; ?>"><br>
<b>Anmeldelse :</b><br>
<input type="text" class="texter" name="anmeldelse" value="<? echo $row9['anmeldelse']; ?>"><br>
<b>PIC :</b><br>
<input type="text" class="texter" name="pic" value="<? echo $row9['pic']; ?>"><br>
<b>Højde :</b><br>
<input type="text" class="texter" name="heigt" value="<? echo $row9['height']; ?>"><br>
<b>Brede :</b><br>
<input type="text" class="texter" name="width" value="<? echo $row9['width']; ?>"><br>

<INPUT TYPE="submit" VALUE="Opdater Profil" CLASS="knap">

I din retokmovie1.php

mysql_quey("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());

Og så ville jeg nok bruge getimagesize() til at finde str. på pic, når det er nødvendigt.
Avatar billede c Nybegynder
14. oktober 2003 - 10:34 #15
du skal lave et hidden felt i din form på første side som har navnet id, og value sat til $id

mvh
Chistian
Avatar billede xirox Nybegynder
14. oktober 2003 - 14:41 #16
fejl i linje 6

<?
session_start();
?>
<?php
include("db.php");
$result3 = mysql_query('SELECT * FROM film_frontmovie1 WHERE id = ' $_GET['id']);
$row = mysql_fetch_array($result3);
$id = $row['id'];
mysql_quey("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
?>
<script>
location.href = 'retmovie1.php?id= ' $_GET['id']);
</script>
</tr>
</table>
</BODY>
</HTML>
Avatar billede xirox Nybegynder
14. oktober 2003 - 14:41 #17
Parse error: parse error in /usr/local/psa/home/vhosts/gex.dk/httpdocs/kim/ny556/adm2/retokmovie1.php on line 6
Avatar billede sukos Juniormester
14. oktober 2003 - 14:45 #18
$result3 = mysql_query("SELECT * FROM film_frontmovie1 WHERE id = '". $_POST["id"] ."'");
Avatar billede sukos Juniormester
14. oktober 2003 - 14:47 #19
Hmm, hvorfor laver du en SELECT query? Det er jo ikke nødvendigt for at indsætte i DB'en
Avatar billede xirox Nybegynder
14. oktober 2003 - 14:51 #20
den skulle underligt nok på for at det skulle virke standart. altså uden at hente id´et men hvor man bare bruger where id = 1 f.eks

Jeg prøver lige det der
Avatar billede xirox Nybegynder
14. oktober 2003 - 14:54 #21
Fatal error: Call to undefined function: mysql_quey() in /usr/local/psa/home/vhosts/gex.dk/httpdocs/kim/ny556/adm2/retokmovie1.php on line 9
Avatar billede sukos Juniormester
14. oktober 2003 - 14:58 #22
mysql_query()
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:00 #23
hvad mener du med det?
Avatar billede sukos Juniormester
14. oktober 2003 - 15:01 #24
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
Avatar billede sukos Juniormester
14. oktober 2003 - 15:02 #25
Altså et manglende r i query! :O)
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:03 #26
ahh ;) tjekker lige om det virker
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:05 #27
sådan nu ingen fejl men nu skriver den bare vent opdatere profil.
Men der sker ikke mere.
Og infoen bliver ikke opdateret i min mysql!
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:06 #28
<?
session_start();
?>
<?php
include("db.php");
$result3 = mysql_query("SELECT * FROM film_frontmovie1 WHERE id = '". $_POST["id"] ."'");
$row = mysql_fetch_array($result3);
$id = $row['id'];
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
?>
<script>
location.href = 'retmovie1.php?id= ' $_GET['id']);
</script>
</tr>
</table>
</BODY>
</HTML>
Avatar billede sukos Juniormester
14. oktober 2003 - 15:09 #29
Prøv:

<?
session_start();
include("db.php"); // DU connecter og vælger vel DB i db.php???

if(isset($_POST["id"])) { //Husk at lave et hidden felt som hedder id!!!!
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
}else{
echo"Ingen POST id er sat!!!!!";
}
?>
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:13 #30
stadig det samme
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:14 #31
Min kode ser sådan her ud nu:

Retmovie1.php

<HTML>
<HEAD>
</HEAD>
<BODY>
<?php
include("db.php");
$result9 = mysql_query("SELECT * FROM film_frontmovie1 WHERE id=$id");
$row9 = mysql_fetch_array($result9);
?>
<form action='retokmovie1.php' method='POST'>
<input type="hidden" name="id" value="<? echo $row9['id']; ?>">
<FONT FACE='Verdana' SIZE='1' COLOR='#000000'>
<BR>
<b>Overskrift :</b><br>
<input type="text" class="texter" name="overskrift" value="<? echo $row9['overskrift']; ?>"><br>
<b>Anmeldelse :</b><br>
<input type="text" class="texter" name="anmeldelse" value="<? echo $row9['anmeldelse']; ?>"><br>
<b>PIC :</b><br>
<input type="text" class="texter" name="pic" value="<? echo $row9['pic']; ?>"><br>
<b>Højde :</b><br>
<input type="text" class="texter" name="heigt" value="<? echo $row9['height']; ?>"><br>
<b>Brede :</b><br>
<input type="text" class="texter" name="width" value="<? echo $row9['width']; ?>"><br>

<INPUT TYPE="submit" VALUE="Opdater Profil" CLASS="knap">


Retokmovie1.php

<?
session_start();
include("db.php");

if(isset($_POST["id"])) { //Husk at lave et hidden felt som hedder id!!!!
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
}else{
echo"Ingen POST id er sat!!!!!";
}
?>
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:16 #32
det henter ikke id´et med over. Det er der det største problem ligger ville jeg mene!
Avatar billede sukos Juniormester
14. oktober 2003 - 15:18 #33
Hvad står der for hiddenfeltet hvis du bruger "Vis kilde"

Og hvordan definerer du id i denne sætning:

<?php
include("db.php");
$result9 = mysql_query("SELECT * FROM film_frontmovie1 WHERE id=$id"); //$id? Hvilken? POST eller GET?
$row9 = mysql_fetch_array($result9);
?>
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:21 #34
jeg går jo ind på en url som hedder retmovie1.php?id=1 eller hvilke id man nu vil rette. Og det er jo så det den kode gør.

Og hvis jeg køre hvis kilde skriver den "1" hvis det er det id jeg har valgt
<input type="hidden" name="id" value="1">
Avatar billede sukos Juniormester
14. oktober 2003 - 15:25 #35
Så burde dette også virke

<?
session_start();
include("db.php");

if(isset($_POST["id"])) { //Husk at lave et hidden felt som hedder id!!!!
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
}else{
echo"Ingen POST id er sat!!!!!";
}
?>
Avatar billede sukos Juniormester
14. oktober 2003 - 15:27 #36
Du kan osse prøve denne:

<?
session_start();
include("db.php");

if(isset($_POST["id"])) {
  if(trim($_POST["id"]) !="") {
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $_POST["overskrift"] ."', anmeldelse = '". $_POST["anmeldelse"] ."', pic = '". $_POST["pic"] ."' WHERE id = '". $_POST["id"] ."'") or die (mysql_error());
echo "<FONT FACE=Verdana SIZE=1 COLOR=#000000>Vent Opdater Info...</FONT>";
      }else{
echo"ID er TOM!";
    }
}else{

echo"Ingen POST id er sat!!!!!";
}
?>
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:29 #37
prøver
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:30 #38
nej den går slet ikke ind og opdatere!
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:31 #39
når jeg trykker opdatere
så går den jo bare videre til linket retokmovie1.php skal den ikke på en måde gå videre til retokmovie1.php?id=1 ?
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:31 #40
for så kunne man bare bruge noget aka samkke funktioner som i retmovie1.php
Avatar billede xirox Nybegynder
14. oktober 2003 - 15:34 #41
Kan jeg ikke lave en!
<form action='retokmovie1.php?id=$id' method='POST'>

På en måde? som virker. for den der henter ikke id´et med over på den anden!
Avatar billede sukos Juniormester
14. oktober 2003 - 15:35 #42
Hmm, hvilken version af PHP ligger der på serveren?
Er det mindre end 4.1.0 (mener jeg) kan du ikke bruge $_POST, men skal bruge
$HTTP_POST_VARS

Vers. kan du evt. se med en

<? phpinfo(); ?>

loadet i din browser
Avatar billede sukos Juniormester
14. oktober 2003 - 15:41 #43
Ok, prøv denne:

<?
session_start();
include("db.php");

if(isset($HTTP_POST_VARS["id"])) {
mysql_query("UPDATE film_frontmovie1 set overskrift = '". $HTTP_POST_VARS["overskrift"] ."', anmeldelse = '". $HTTP_POST_VARS["anmeldelse"] ."', pic = '". $HTTP_POST_VARS["pic"] ."' WHERE id = '". $HTTP_POST_VARS["id"] ."'") or die (mysql_error());
header("Location:retmovie.php?id=". $HTTP_POST_VARS["id"] ."");
exit;
}else{
echo"Ingen POST id er sat!!!!!";
}
?>
Avatar billede xirox Nybegynder
14. oktober 2003 - 16:31 #44
Yess. rodede selv lidt med det, og tjekkede de koder ud du havde skrevet og fik det så til at virke. Mange tak for det. SUkos, du får 200 point for den tapre indsats ;)
Avatar billede sukos Juniormester
14. oktober 2003 - 17:56 #45
Det er jo fint at du har fået det til at virke!
Avatar billede xirox Nybegynder
14. oktober 2003 - 23:47 #46
men takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester