Nu har jag försökt och försökt... Medan datorn har pajat och jag försökt komma ihåg hur jag gjort tidigare och inte gjort. Suck! Koden börjar se helt förfärlig ut så nu tänkte jag fråga innan jag fortsätter. Är detta möjligt med bara php?
Hämta en hästs namn i option som sedan lägger in hästens kolumn i textarea som ska redigeras och sparas. Eller måste man skicka vidare till ny sida?
Tog bort länken som fanns här tidigare.
Tacksam för lite tips om hur man gör detta bäst.
Jag tar upp min gamla tråd igen. Har inte hunnit att fortsätta med den förrän nu. Vad är fel? Vad behövs. Har försökt få in javascriptet men vet nog inte hur man gör :r
Någon som kan ge tips om hur jag ska gå vidare.? Eller är det här fel sätt att göra detta på? Hämta en text. Redigera den och spara på en och samma admin-sida. Taget ur en bok.
$hamta = "SELECT h.stallID, h.namn, h.besk
FROM hest AS h
INNER JOIN stallad AS s ON ( h.stallID = s.stallID )
WHERE s.ur_treningDatum IS NULL
ORDER BY namn";
$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
while($rad = mysql_fetch_array($resultat))
{
echo "<option value='{$rad['stallID']}' >{$rad['namn']} </option>";
}
echo "</select></fieldset><p>
<input type='submit' name='Submit' value='submit' /></p></form>";
// ett försk att hitta array $rad = $_POST['namn'];
mysql_free_result($resultat);
if(isset($_POST['namn']))
{
$sql2="SELECT besk FROM hest WHERE namn='{$_POST['namn']}'AND stallID='$stallID'";
$result=mysql_query($sql2);
$besk = mysql_fetch_array($result);
//uppdateringen börjar här
if (isset($_POST['submit']) && $_POST['submit'] == 'Submit')
{
//formatera data
$besk = $_POST['besk'];
$as_besk = addslashes($_POST['besk']);
//uppdatera beskrivningen
$query = "UPDATE besk SET besk = '$as_besk WHERE namn = '{$rad['namn']}'";
$result = mysql_query($query);
if (mysql_affected_rows() == 1)
{
$success_msg = '<p> Beskrivningen har blivit uppdaterad!</p>';
}else{
error_log(mysql_error());
$success_msg = '<p>Något blev fel</p>';
}
}else{
//På något sätt ska besk hämtas, detta är ett försök som inte fungerar
$rad = $_POST['namn'];
$query ="SELECT besk FROM hest WHERE namn` = {$rad['namn']}";
if ($result = mysql_query($query));
$besk_arr = mysql_fetch_array($result);
$besk = stripslashes ($besk_arr[1]);
}
$thispage = $_SERVER['PHP_SELF'];
}
Alltså vill du hämta den data som är sparad för just den hästen och visa det i textarean? eller vill du bara lägga in hästnamnet i textarean, förstod inte riktigt din fråga!
Inget av det ska vara några problem med javascript så det löser vi ;-)
Ja det är data för en häst i taget jag vill få in i textarean. Som ska kunna redigeras och sparas på nytt. Idén syns i länken i första inlägget... Tror det finns en del fel i koden också...
Har varit utan ström i 18 timmar nu i stormen, hoppas den är kvar för att stanna nu :-)
MVH
Det där kan lösas utan JavaScript genom att döpa fälten i formen med name och ladda om sidan. Om du ger dina två submit-knappar olika namn, så kan du fånga de olika knapparna var för sig. Varje formfält som får ett name kan kommas åt via det namnet.
$_POST['index'] fångar resultatet från det formelement som innehåller
.... name="index"....
//Översta formen skrivs alltid ut på samma sätt
echo '<form name="HastVal" method="post" action="dennaFil.php">
<select name="hast">';
$hamta = "SELECT h.stallID, h.namn
FROM hest AS h
INNER JOIN stallad AS s ON ( h.stallID = s.stallID )
WHERE s.ur_treningDatum IS NULL
ORDER BY namn";
$resultat = mysql_query($hamta) or die("Det gick inte att hämta information från databasen!");
while($rad = mysql_fetch_array($resultat))
{
echo '<option value="'.$rad['stallID'].'" >'.$rad['namn'].' </option>';
}
echo '</select></fieldset><p>
<input type="submit" name="SubmitHastVal" value="submit" /></p></form>';
//Om första submitknappen tryckts in OCH du har valt en häst
if (isSet($_POST["SubmitHastVal"]) && isSet($_POST["hast"])) {
//Hämta befintlig info om hästen
$sql2="SELECT besk FROM hest WHERE stallID=".$_POST['hast'];
$result=mysql_query($sql2);
$row = mysql_fetch_array($result);
$info = $row[0];
$hastID = $_POST["hast"];
}
else {
$info = '';
$hastID = '';
}
//Andra formen laddas med befintlig info OM
//första submitknappen tryckts in OCH du har valt en häst
//Annars är textfältet tomt
echo '<form name="updateInfo" method="post" action="dennaFil.php">
<textarea name="infoField">'.$info.'</textarea>
<input type="hidden" name="hastID" value="'.$hastID.'">
<input type="submit" name="SubmitUpdate" value="submit" /></form>';
//Om andra formen fyllts i - uppdatera
if (isSet($_POST["SubmitUpdate"]) && isSet($_POST["infoField"])) {
$sql3= "UPDATE hest SET besk='".$_POST["infoField"]."' WHERE stallID = $hastID";
mysql_query($sql3);
}
Suttit nu och försökt få ditt förslag att fungera aasah, men får "No input file specified", när jag tryckt på en häst.
Ska <form name="updateInfo"... se ut så? Jag hittar ingen $_post för den, eller ska det inte behövas i textfield?
Har skickat med
error_reporting(E_ALL); men får inga andra felmeddelanden.
Nu har jag kommit en bit till med denna adminsida, men uppdateringen fungerar inte.
$sql3= "UPDATE hest SET besk='".$_POST["infoField"]."' WHERE stallID = $hastID";
När jag lagt till echo så visar det sig att $hastID inte har något värde.
När jag då på olika sätt försökte få fram värdet så blev det så här
$sql3 = ("UPDATE hest SET besk='" . $_POST["infoField"]."' WHERE stallID = '{$_POST['hastID']}'" or die ("Error: " . mysql_error());
echo ("$sql3");)
vilket ser fel ut...
men då blev echo:
UPDATE hest SET besk='Jag har ...o.s.v. ' WHERE stallID = '2'
Men inget händer i databasen och inget annat fel skrivs ut.
Jag har inte ändrat något annat i koden som aasah visade högre upp.
Vad har jag missat? :(
$sql3 = ("UPDATE hest SET besk='" . $_POST["infoField"]."' WHERE stallID = '{$_POST['hastID']}'" or die ("Error: " . mysql_error());
echo ("$sql3");)
$sql3 är/borde vara en sträng med ett SQL-anrop. Men som su skriver försöker du tilldela den resultatet av att ha kört strängen i databasen! Ändra till:
$sql3 = "UPDATE hest SET besk='" . $_POST["infoField"]."' WHERE stallID = ".$_POST['hastID'];
$res = mysql_query($sql3) or die ("Error: " . mysql_error());
Observera också att stallID är en siffra. Siffror har inga '-fnuttar runt sig.