webForumDet fria alternativet

update funkar inte

14 svar · 448 visningar · startad av mr.mainline

mr.mainlineMedlem sedan feb. 2003777 inlägg
#1

jag har en text på index sidan som jag vill kunna uppdatara,jag använder mysql, och koden funkar inte riktigt,jag får inga felmeddelamde,men när jag klicka på "Redigera texten" så kommer det tillbaka till samma text som jag hade innan, någon som kan hitta felet?.

<form method="POST" action="uppdat.php">
<textarea name="maintext" cols="40" rows="20">
<?php
$conn = mysql_connect("localhost", "******", "******") or die("Kunde inte skapa koppling!");
			  mysql_select_db("******") or die("Kunde inte välja databas");

$hamta = "SELECT text FROM main";
$resultat = mysql_query($hamta) or die ("Kunde inte hämta info från db");

while($rad = mysql_fetch_array($resultat))
echo(  $rad["text"]   );

mysql_free_result($resultat);
?>
</textarea>
<br><br><input type="submit" value="Redigera texten">
</form>
<?
if(!empty($_POST['text']) and empty ($_POST['perform']))
{
$text = $_POST['text'];
$hamta = "SELECT * FROM main WHERE text = '$'text' " ;
$resultat = mysql_query($hamta) or die("Det gick inte att hämta info från db");
$rad=mysql_fetch_object($resultat);

echo ("<form method=POST action=uppdat.php>");
echo ("<input type=hidden name=text value=" . $rad->text . ">");
echo ("<input type=hidden name=perform value=uppdat>");
echo ("<input type=submit value=Redigera texten>");

mysql_free_result($resultat);
}
if(!empty($_POST['preform']))
{
$text = $_POST['text'];
$del = "UPDATE main SET text = '$text' ";
mysql_query($del) or die ("Kunde inte radera från databasen");
}
?>

Ni kan testa på https://www.freddeholm.com/admin/uppdat.php

PeddaMedlem sedan juni 20006 032 inlägg
#2

Luskade igenom koden lite snabbt och fann att du i din kod har

if(!empty($_POST['text']) and empty ($_POST['perform']))

Men i koden du har postat hittar jag inget i formuläret som heter text eller perform. Textfältet heter ju maintext t.ex.

mr.mainlineMedlem sedan feb. 2003777 inlägg
#3

Måste m,an använda hidden fält?? för att få det att funka?

PeddaMedlem sedan juni 20006 032 inlägg
#4

Nej du behöver inte använda hidden fält.
Testa detta

<?php
$conn = mysql_connect("localhost", "******", "******") or die("Kunde inte skapa koppling!");
mysql_select_db("******") or die("Kunde inte välja databas");

if (isset($_POST['redigera'])) {
	//Kolla så det finns text
	if (empty($_POST['maintext'])) {
		echo "Du måste fylla i en text";
	} else {
		//Här kör du din update då du lägger in i databasen
	}
} else {
?>
<form method="POST" action="9.php">
<textarea name="maintext" cols="40" rows="20">
<?php
// här hämtar du texten som ska kunna redigeras
?>
</textarea>
<br><br><input type="submit" name="redigera" value="Redigera texten">
</form>
<?php
}
?>
mr.mainlineMedlem sedan feb. 2003777 inlägg
#5

ok,ska testa det,tack,bara en fråga varför använder man hidden fält?? jag hittade det oxå i INTERNETWORLD tidningen.

PeddaMedlem sedan juni 20006 032 inlägg
#6

Hidden fält använder du för att skicka med värden från ett formulär som användaren inte ska kunna ändra. Kan vara bra ibland att använda sig av, t ex om du vill skicka med ett usernamne, referer eller något annat.

mr.mainlineMedlem sedan feb. 2003777 inlägg
#7

ok,tack ska du ha Pedda.

mr.mainlineMedlem sedan feb. 2003777 inlägg
#8

får fortfarande inte rätt på det,så här ser koden ut nu.

<?
$conn = mysql_connect("localhost", "******", "******") or die("Kunde inte skapa koppling!");
mysql_select_db("******") or die("Kunde inte välja databas");

if (isset($_POST['redigera'])) {
    //Kolla så det finns text
    if (empty($_POST['maintext'])) {
        echo "Du måste fylla i en text";
    } else {
	  //Här körs update då det läggs in i databasen
	  $del = "UPDATE main SET text = ['$text'],  WHERE id = 1  ";
	  echo ("Texten är nu uppdaterad");
	  mysql_query($del) or die("Det gick inte att uppdatara texten i main");	
		}
} else {
?>
<form method="POST" action="admin_hem.php">
<textarea name="maintext" cols="40" rows="20">
<?php
//  hämtar texten som ska redigeras
      $text = $_POST['text'];
      $hamta = "SELECT * FROM main ";
      $resultat = mysql_query($hamta) or die ("Det gick inte att hämta info från db");
       while ($rad = mysql_fetch_array($resultat))
       echo $rad['text'];
	   mysql_free_result($resultat);
	   mysql_close($conn);
?>
</textarea>
<br><br><input type="submit" name="redigera" value="Redigera texten">
</form>
<?php
}
?>
LarsGMedlem sedan dec. 200012 464 inlägg
#9
$del = "UPDATE main SET text = '" . $text ."'  WHERE id = 1";
mysql_query($del) or 
die("Det gick inte att uppdatara " . mysql_error());
mr.mainlineMedlem sedan feb. 2003777 inlägg
#10

Då uppdataeras inte texten alls,utan där det ska visas blir bara vit bakgrund och ingen text alls,jag kollade oxå i databasen och då den raden som där var text i har blivit tom.

PeddaMedlem sedan juni 20006 032 inlägg
#11
$del = "UPDATE main SET text = '" . $_POST['maintext']."'  WHERE id = 1";
mysql_query($del) or 
die("Det gick inte att uppdatara " . mysql_error());
CompusaMedlem sedan jan. 20023 327 inlägg
#12

Pedda skrev:

Luskade igenom koden lite snabbt och fann att du i din kod har

if(!empty($_POST['text']) and empty ($_POST['perform']))

Men i koden du har postat hittar jag inget i formuläret som heter text eller perform. Textfältet heter ju maintext t.ex.

Det där väl inte heller korrekt php-syntax, borde väl vara...

if(!empty($_POST['text']) && empty ($_POST['perform']))

Eller har jag missat något?

PeddaMedlem sedan juni 20006 032 inlägg
#13

Compusa skrev:

Eller har jag missat något?

&& eller AND går att använda likadant som du kan använda || istället för OR.
Men jag håller med dig, använder själv && och || istället för AND och OR.

CompusaMedlem sedan jan. 20023 327 inlägg
#14

Okej visste inte att det gick göra så i PHP, tänker inte göra det heller ;) Att jag inte trodde det gick att göra har nog med att jag av misstag skrivit så i Java, där fungerar det garanterat inte :)

mr.mainlineMedlem sedan feb. 2003777 inlägg
#15

Pedda: det funkade som du skrev,tack.

137 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)