Avatar billede stengaard Praktikant
29. marts 2006 - 20:44 Der er 18 kommentarer og
1 løsning

opdatere i mysql har et lille problem

hej eksperter

jeg har et lille problem med at opdatere i mysql med denne her form
skærmen bliver bare hvid og ingen ændringer i database mmm. hvad gør jeg galdt.

formen.......

<form action="changeprofileparse.php" method="post">
<div class="frmobj">Titel .: <?php
include('access.php');
$qry = "SELECT id,title,text,image FROM akvarel WHERE id=".$_GET['id']."";
$query = mysql_query($qry) or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
echo '<b>'.$row['title'].'</b><br>';}
?></div> <input type="text" name="titel" value="<?php echo $row['titel']; ?>" style="width: 300px"><br>
<div class="frmobj">Information .: <?php
include('access.php');
$qry = "SELECT id,title,text,image FROM akvarel WHERE id=".$_GET['id']."";
$query = mysql_query($qry) or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
echo '<b>'.$row['text'].'</b><br>';}
?> </div>
<textarea name="text" style="width: 300px"><?php echo $row['text']; ?></textarea>
<br>
<br>
<input type="submit" value="Send" name="submit">
<input type="reset" value="Slet" name="reset">
</form>

mit script der skulle opdatere database og skrive resutatet i bunden.....

<?php

include ("access.php");
if ($_POST['title'] != "") {
$title = htmlspecialchars($_POST['title']);
mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id'].""; or die (mysql_error());
$_SESSION['title'] = $title;
$ctitle = "<li>Din Nye Titel</li>";
}
if ($_POST['text'] != "") {
$text = htmlspecialchars($_POST['text']);
mysql_query("UPDATE akvarel SET text='$text' WHERE id=".$_GET['id'].""; or die (mysql_error());
$_SESSION['text'] = $text;
$ctext = "<li>Din Nye Information</li>";
}

?>

<?php
if (($ctitle) || ($ctext)) {
echo "De Nedenstående felter er blevet opdateret:<br /><ul>";
if ($ctitle) {
echo $ctitle;
}
if ($ctext) {
echo $ctext;
}
echo "</ul><br />Se Resultat, <a href=\"oploadpopup.php\">Klik her</a>.";
} else {
echo "Ingen ting er blevet ændret.  <a href=\"oploadpopup.php\">Klik her</a> for at komme tilbage.";
}
?>
Avatar billede jackass- Nybegynder
29. marts 2006 - 23:46 #1
Det var dog det mest rodede *biiiip* jeg længe har set O_o
Avatar billede erikjacobsen Ekspert
29. marts 2006 - 23:49 #2
1) Få PHP til at fortælle dig, at der er fejl, eller kig i din errorlog
2) Ret de syntaxfejl, der er, fx skal det være:

  mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
Avatar billede erikjacobsen Ekspert
29. marts 2006 - 23:54 #3
...bortset fra du ikke har en id i din URL.
Avatar billede stengaard Praktikant
30. marts 2006 - 00:16 #4
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 '' at line 1

denne linie

if ($_POST['title'] != "") {

i dette her script

<?php

include ("access.php");
if ($_POST['title'] != "") {
    $title = htmlspecialchars($_POST['title']);
    mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
    $_SESSION['title'] = $title;
    $ctitle = "<li>Din Nye Titel</li>";
}
if ($_POST['text'] != "") {
    $text = htmlspecialchars($_POST['text']);
  mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
    $_SESSION['text'] = $text;
    $ctext = "<li>Din Nye Information</li>";
}

?>

<?php
if (($ctitle) || ($ctext)) {
    echo "De Nedenstående felter er blevet opdateret:<br /><ul>";
    if ($ctitle) {
        echo $ctitle;
    }
    if ($ctext) {
        echo $ctext;
    }
    echo "</ul><br />Se Resultat, <a href=\"oploadpopup.php\">Klik her</a>.";
} else {
    echo "Ingen ting er blevet ændret.  <a href=\"oploadpopup.php\">Klik her</a> for at komme tilbage.";
}
?>
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 09:18 #5
Du har ikke en ?id=888  i din URL. Derfor er $_GET['id'] tom
Avatar billede stengaard Praktikant
30. marts 2006 - 10:53 #6
mmm det må jeg da have for på samme side ligger der jo dette script også hvor der står noget i variablerne fra samme ip, hvor man så har muligheden for at ændre det

scriptet

<form action="changeprofileparse.php" method="post">
               
<div class="frmobj">Titel .: <?php
  include('access.php');

$qry = "SELECT id,title,text,image FROM akvarel WHERE id=".$_GET['id']."";
  $query = mysql_query($qry) or die(mysql_error());

  while ($row = mysql_fetch_assoc($query)) {

    echo '<b>'.$row['title'].'</b><br>';}
?></div> <input type="text" name="titel" value="<?php echo $row['titel']; ?>" style="width: 300px"><br>

<div class="frmobj">Information .: <?php
  include('access.php');

$qry = "SELECT id,title,text,image FROM akvarel WHERE id=".$_GET['id']."";
  $query = mysql_query($qry) or die(mysql_error());

  while ($row = mysql_fetch_assoc($query)) {

    echo '<b>'.$row['text'].'</b><br>';}
?> </div>
<textarea name="text" style="width: 300px"><?php echo $row['text']; ?></textarea>
<br>

<br>
  <input type="submit" value="Send" name="submit">
  <input type="reset" value="Slet" name="reset">
</form>

dernæst kommer rettelse scriptet

changeprofileparse.php

<?php

include ("access.php");
if ($_POST['title'] != "") {
    $title = htmlspecialchars($_POST['title']);
    mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
    $_SESSION['title'] = $title;
    $ctitle = "<li>Din Nye Titel</li>";
}
if ($_POST['text'] != "") {
    $text = htmlspecialchars($_POST['text']);
  mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
    $_SESSION['text'] = $text;
    $ctext = "<li>Din Nye Information</li>";
}

?>

<?php
if (($ctitle) || ($ctext)) {
    echo "De Nedenstående felter er blevet opdateret:<br /><ul>";
    if ($ctitle) {
        echo $ctitle;
    }
    if ($ctext) {
        echo $ctext;
    }
    echo "</ul><br />Se Resultat, <a href=\"oploadpopup.php\">Klik her</a>.";
} else {
    echo "Ingen ting er blevet ændret.  <a href=\"oploadpopup.php\">Klik her</a> for at komme tilbage.";
}
?>
Avatar billede stengaard Praktikant
30. marts 2006 - 10:54 #7
skal det så hedde changeprofileparse.php?ip=$ip i formen
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 10:58 #8
Ja, du skal nemlig have den med over på næste side igen. Så noget i retning af

    ="changeprofileparse.php?ip=<? print $id; ?>"

Hvis du har id-en i $id.  Du kan tjekke den er korrekt efter formen er submitted ved at kigge på adresselinien. (Man ku' putte den i et hidden form-felt, som en anden løsning).
Avatar billede stengaard Praktikant
30. marts 2006 - 11:14 #9
mmm efter at jeg submitter eller klikker på send i formen kommer dette frem i adresse linien changeprofileparse.php?id=

så har den jo stadig ikke noget id men formens adresse linie er

denne her

oploadpopup.php?id=4 og der har den jo id "4"

kan jeg bruge denne her til noget

$id = $_SESSION['id'];
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 11:20 #10
Jeg kan ikke gennemskue hvor du får din id-værdi fra, men det er jo klart du skal have den.
Avatar billede stengaard Praktikant
30. marts 2006 - 11:28 #11
jeg for min ip her fra dette script som er en menu i højreside mankan klikke på for at se billed, titel, text og der efter er der en form man kan ændre det ovenævnte i

    <?php
               
               
include('access.php');
$query = mysql_query("SELECT id,title,text,image FROM akvarel ORDER BY id") or die(mysql_error());
while ($row = mysql_fetch_assoc($query)) {
    if ($i++ != 0) echo '<div class="hr"></div>';
    echo '<b><center><a href="oploadpopup.php?id='.$row['id'].'">'.$row['title'].'</b><br>';
    echo '('.$row['text'].')</a></center><br>';
}
?>
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 11:31 #12
Er det så ikke    $id = $_GET['id'];
Avatar billede stengaard Praktikant
30. marts 2006 - 11:35 #13
hvis formen er

<form action="changeprofileparse.php" method="post">
                <input type="hidden" name="id" value="<?php echo $id; ?>">
               
<div class="frmobj">Titel .: <?php
  include('access.php');
$id = $_GET['id'];
$qry = "SELECT id,title,text,image FROM akvarel WHERE id=".$_GET['id']."";
  $query = mysql_query($qry) or die(mysql_error());

  while ($row = mysql_fetch_assoc($query)) {

    echo '<b>'.$row['title'].'</b><br>';}
?></div> <input type="text" name="titel" value="<?php echo $row['titel']; ?>" style="width: 300px"><br>

<div class="frmobj">Information .: <?php
  include('access.php');
$id = $_GET['id'];
$qry = "SELECT id,title,text,image FROM akvarel WHERE id=".$_GET['id']."";
  $query = mysql_query($qry) or die(mysql_error());

  while ($row = mysql_fetch_assoc($query)) {

    echo '<b>'.$row['text'].'</b><br>';}
?> </div>
<textarea name="text" style="width: 300px"><?php echo $row['text']; ?></textarea>
<br>

<br>
  <input type="submit" value="Send" name="submit">
  <input type="reset" value="Slet" name="reset">
</form>

changeprofilparse.php er

<?php
$id = $_GET['id'];
include ("access.php");
if ($_POST['title'] != "") {
    $title = htmlspecialchars($_POST['title']);
    mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
    $_SESSION['title'] = $title;
    $ctitle = "<li>Din Nye Titel</li>";
}
if ($_POST['text'] != "") {
    $text = htmlspecialchars($_POST['text']);
  mysql_query("UPDATE akvarel SET title='$title' WHERE id=".$_GET['id']) or die (mysql_error());
    $_SESSION['text'] = $text;
    $ctext = "<li>Din Nye Information</li>";
}

?>

<?php
if (($ctitle) || ($ctext)) {
    echo "De Nedenstående felter er blevet opdateret:<br /><ul>";
    if ($ctitle) {
        echo $ctitle;
    }
    if ($ctext) {
        echo $ctext;
    }
    echo "</ul><br />Se Resultat, <a href=\"oploadpopup.php?id=$id\">Klik her</a>.";
} else {
    echo "Ingen ting er blevet ændret.";
}
?>

kommer den bare med beskeden = Ingen ting er blevet ændret. selv om man taster noget i 1 eller i begge felter
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 11:37 #14
Så er det    $id=$_POST['id'];

Du skal bare sørge for at der kommer en id-værdi i dit felt.
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 11:40 #15
Men hør nu - dine whilesætninger ser underlige ud. Du afslutter dem, og så bruger du $row variablen udenfor.
Avatar billede stengaard Praktikant
30. marts 2006 - 11:43 #16
ok men har du så et andet forslag er ikke den store haj i dette her
Avatar billede erikjacobsen Ekspert
30. marts 2006 - 11:49 #17
Ja, jeg kunne lave det for dig, men det har jeg ikke tid til. ;)
Men hvis du ikke er "den store haj", så var det måske en idé at starte med mindre eksempler, for at lære det. Bare et forslag.
Avatar billede stengaard Praktikant
30. marts 2006 - 11:58 #18
ok
Avatar billede stengaard Praktikant
20. april 2006 - 22:55 #19
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