Avatar billede trevi Nybegynder
27. maj 2004 - 18:51 Der er 11 kommentarer og
1 løsning

hvordan henter man et id

Hej eksperter.

Jeg har en side som har nogle links som hedder information.php?id=1 , information.php?id=2, information.php?id=3 osv osv osv

når man så trykker skal den komme videre til siden information med linket. så henter den id og smider det ind i textboxen.

men den gider ikke rigtig rente og gemme som den skal.
Den skal skrive når id'et ikke findes og når man finder et id der findes om der er skrevet noget i .. gider den ikke gemme det.. vil i være søde og se om i kan se fejlen :(?

<?php
require "db.php";
?>
<?php
if( isset($_GET['id']) ) {
    $id = mysql_escape_string($_GET['id']); // sikre id
     
    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

$res = mysql_query($sql);// or die(mysql_error());
    if( $res )
        $row = mysql_fetch_array($res);
    else
        $row = false;
}
else {
    $row = false;
}
?>
<?php
   
if (isset($_POST['info'])) {
$info = addslashes($_POST['info']);
$id = intval($_POST['id']);
mysql_query("UPDATE info set info='$info' WHERE id={$id}'") or die(mysql_error());
    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$_POST[navn] blev opdagteret.</div>";
}

?>
            <form action="information.php" method="post">
              <div align="center">
              <?php if( $row ) { ?>
                <input type="hidden" name="id" value="<?php echo $_POST['id']; ?>">
                                    <br>
                                    <table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
                                      <tr>
                                       
              <td height="18" background="pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
                p&aring; <?=$row[navn]?>
                :</font></td>
                                      </tr>
                                      <tr>
                                        <td height="19" class="tekst_fed"><textarea name="forside" rows="8" cols="30" class="box"><?php echo $row['tekst']; ?></textarea>
                                        </td>
                                      </tr>
                                    </table>
          <input type="submit" value="Gem Ændringer" class="submit">
        </div>
      </form>
      <?php } ?>
Avatar billede mireigi Novice
27. maj 2004 - 19:01 #1
Har ikke den store forstand på php - har faktisk aldrig brugt det, så mit bud bliver et rent gæt:

if( isset($_GET[id]) ) {
    $id = mysql_escape_string($_GET[id]); // sikre id
     
    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

$res = mysql_query($sql);// or die(mysql_error());
    if( $res )
        $row = mysql_fetch_array($res);
    else
        $row = false;
}
else {
    $row = false;
}


Altså uden '-tegnene... Ved ikke om det er det, men er bare et rent 100% tilfældigt gæt...

/MiReiGi
Avatar billede trevi Nybegynder
27. maj 2004 - 19:49 #2
nu har jeg pillet lidt ved siden.
så nu ser den sådan her ud:

    <?php
require "db.php";
?>
<?php
if( isset($_GET['id']) ) {
    $id = mysql_escape_string($_GET['id']); // sikre id
     
    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

$res = mysql_query($sql);// or die(mysql_error());
    if( $res )
        $row = mysql_fetch_array($res);
    else
        $row = false;
}
else {
    $row = false;
}
?>
<?php
   
if (isset($_POST['info'])) {
$info = addslashes($_POST['info']);
$id = intval($_POST['id']);
mysql_query("UPDATE info set tekst=$tekst WHERE id={$id}") or die(mysql_error());
    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$_POST[navn] blev opdagteret.</div>";
}

?>
            <form action="<? $PHP_SELF ?>" method="post">
              <div align="center">
              <?php if( $row ) { ?>
                <input type="hidden" name="id" value="<?php echo $_POST['id']; ?>">
                                    <br>
                                    <table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
                                      <tr>
                                       
              <td height="18" background="pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
                p&aring; <?=$row[navn]?>
                :</font></td>
                                      </tr>
                                      <tr>
                                        <td height="19" class="tekst_fed"><textarea name="tekst" rows="8" cols="30" class="box"><?php echo $row['tekst']; ?></textarea>
                                        </td>
                                      </tr>
                                    </table>
          <input type="submit" value="Gem Ændringer" class="submit">
        </div>
      </form>
      <?php } else  { ?>
                <!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
                  <table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td height="26"><center>&nbsp;Id'et findes ikke</center></td>
                    </tr>
                  </table>
      <?php } ?>



Den henter fint informationen .. men den kan ikke ændre det når jeg trykker gem ??
Avatar billede hmortensen Nybegynder
27. maj 2004 - 20:00 #3
if (isset($_POST['info'])) {
$info = addslashes($_POST['info']);

til noget i retningen af, da dit textarea hedder tekst:

if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);


<form action="<? $PHP_SELF ?>" method="post">
til
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Avatar billede trevi Nybegynder
27. maj 2004 - 20:13 #4
der skete noget.. men nu siger den:


You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''Man har desværre ikke mulighed for at afhente tingene man har.."
Avatar billede trevi Nybegynder
27. maj 2004 - 20:19 #5
den fejl fik jeg væk .. der manglede lige ' et par steder.. nu siger den:
blev opdagteret.
Id'et findes ikke

men stadig bliver der ikke gemt noget :/..

site update:

    <?php
require "db.php";
?>
<?php
if( isset($_GET['id']) ) {
    $id = mysql_escape_string($_GET['id']); // sikre id
     
    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

$res = mysql_query($sql);// or die(mysql_error());
    if( $res )
        $row = mysql_fetch_array($res);
    else
        $row = false;
}
else {
    $row = false;
}
?>
<?php
   
if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);
$id = intval($_POST['id']);
mysql_query("UPDATE info set tekst='$tekst' WHERE id='{$id}'") or die(mysql_error());
    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$navn blev opdagteret.</div>";
}

?>
            <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
              <div align="center">
              <?php if( $row ) { ?>
                <input type="hidden" name="id" value="<?php echo $_POST['id']; ?>">
                                    <br>
                                    <table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
                                      <tr>
                                       
              <td height="18" background="pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
                p&aring; <?=$row[navn]?>
                :</font></td>
                                      </tr>
                                      <tr>
                                        <td height="19" class="tekst_fed"><textarea name="tekst" rows="8" cols="30" class="box"><?php echo $row['tekst']; ?></textarea>
                                        </td>
                                      </tr>
                                    </table>
          <input type="submit" value="Gem Ændringer" class="submit">
        </div>
      </form>
      <?php } else  { ?>
                <!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
                  <table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td height="26"><center>&nbsp;Id'et findes ikke</center></td>
                    </tr>
                  </table>
      <?php } ?>
Avatar billede trevi Nybegynder
27. maj 2004 - 20:38 #6
ingen der kan hjælpe mig .. plz? :((
Avatar billede trevi Nybegynder
27. maj 2004 - 20:59 #7
update igen.
<?php
   
if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);
$id = intval($_POST['id']);
mysql_query("UPDATE info set tekst='$_POST[tekst]' WHERE id='{$id}'") or die(mysql_error());
    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row[navn] blev opdagteret.</div>";
}

?>
            <form action="<? $PHP_SELF ?>" method="post">
              <div align="center">
              <?php if( $row ) { ?>
                <input type="hidden" name="id" value="<?php echo $_POST['id']; ?>">
                                    <br>
                                    <table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
                                      <tr>
                                       
              <td height="18" background="pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
                i
                <?=$row[navn]?>
                :</font></td>
                                      </tr>
                                      <tr>
                                        <td height="19" class="tekst_fed"><textarea name="tekst" rows="8" cols="30" class="box"><?php echo $row['tekst']; ?></textarea>
                                        </td>
                                      </tr>
                                    </table>
          <input type="submit" value="Gem Ændringer" class="submit">
        </div>
      </form>
      <?php } else  { ?>
                <!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
                  <table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td height="26"><center>&nbsp;Id'et findes ikke</center></td>
                    </tr>
                  </table>
      <?php } ?>


nu viser boxen når jeg har trykket gem, og den skriver at der er opgraderet.. men det bliver der ikke .. hvorfor !!??
Avatar billede sukos Juniormester
27. maj 2004 - 21:51 #8
Hvordan får du denne?

<input type="hidden" name="id" value="<?php echo $_POST['id']; ?>">

og jeg ville bruge:

mysql_query("UPDATE `info` SET `tekst` = '". $tekst ."' WHERE `id` = '". $_POST["id"] ."'") or die(mysql_error());
Avatar billede trevi Nybegynder
27. maj 2004 - 22:01 #9
det virker heller ikke noget :( godt nok træls.. skal der noget med $_GET ind nogle steder?
Avatar billede trevi Nybegynder
27. maj 2004 - 23:25 #10
er der virkelig ingen fejl der kan ses hehe
Avatar billede trevi Nybegynder
28. maj 2004 - 09:31 #11
intet virker.
jeg laver en ny tråd skal have det her til at virke !!

-lukket-
Avatar billede trevi Nybegynder
28. maj 2004 - 09:32 #12
-lukket-
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