Hent data fra SQL til textarea (i PHP)

Her kan du få hjælp og stille spørgsmål til MySQL/MySQLi!
Besvar
goatman
Begynder
Indlæg:8
Tilmeldt:8. mar 2012, 16:05
Hent data fra SQL til textarea (i PHP)

Indlæg af goatman » 8. mar 2012, 16:18

Hej derude

Jeg har fået lavet mig min egen lille "blog", udelukkende for at se hvor langt jeg kunne komme. Jeg har derfor lavet et script i PHP som smider data (fra textareas osv) videre til min MySQL database, og alt kører perfekt som det er lige nu.
Men af og til kommer der et par lange posts. Som det er lige nu, kan jeg kun (via mit script) tilføje og opdatere posts. Jeg kan altså ikke hente data fra databasen til mit php.
Jeg har derfor haft i tankerne at udvide det lidt med en "Get data" knap (reagerer på intEpisode i min db), som smider postens tekst ind i min textarea. Det har jeg så siddet og leget en hel del med, men jeg kan umiddelbart ikke få lavet det korrekt.

Der skulle vel aldrig være nogen der kan give mig et par hints? :)

Min kode ser pt således ud:

Kode: Vælg alt

echo '<form method="post">
<table>
<tr>
<td>Episode</td>
<td><input type="text" name="intEpisode"></td>
</tr>

<tr>
<td>Date</td>
<td><input type="text" name="intDate"></td>
</tr>
</table>

<p /><textarea name="strTracklist" rows="10" cols="50"></textarea><p />
</tr>
<input type="Submit" name="submit" value="Submit episode">
</form><p />';

if(isset($_POST['submit'])){
$intEpisode = stripslashes(str_replace("\r\n", '', mysql_real_escape_string($_POST['intEpisode'])));
$intDate = stripslashes(str_replace('\r\n', '', mysql_real_escape_string($_POST['intDate'])));
$strTracklist = stripslashes(str_replace('\r\n', '', mysql_real_escape_string($_POST['strTracklist'])));

$sqlQ = mysqli_query($db, "SELECT * FROM asotepisode WHERE intEpisode = '".$intEpisode."'");
$dbF = mysqli_fetch_array($sqlQ);

$sqlQ = mysqli_query($db, "INSERT INTO asotepisode (intEpisode,intDate,strTracklist) VALUES ('$_POST[intEpisode]','$_POST[intDate]','$_POST[strTracklist]')
  ON DUPLICATE KEY UPDATE intEpisode = VALUES(intEpisode), intDate = VALUES(intDate), strTracklist = VALUES(strTracklist)") or die (mysqli_error($db));
På forhånd tak! :)

Mindre detalje: Jeg var desuden i tvivl om jeg postede denne post i den korrekte kategori (PHP eller MySQL), så nu blev det bare her. ;)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Hent data fra SQL til textarea (i PHP)

Indlæg af ThomasI » 9. mar 2012, 10:22

Hej med dig! :D

Umiddelbart burde du i starten af dit script kunne koble på din db og tabel og hente dataen du skal bruge udfra det der er blevet tastet i formen og gemme det i en variable.

F.eks hvis det bliver tastet epsisode 5 ind i formen tager du det nummer gemmer det i variable. Bruger GET Data WHERE og henter dataen ud.

Den data du gemmer du så en en variabel og echo´er den i dit textarea som her:

Kode: Vælg alt

<p /><textarea name="strTracklist" rows="10" cols="50"><?php echo '$posttekst'; ?></textarea><p />
Var måske et hint...prøv at rod lidt med det :D

goatman
Begynder
Indlæg:8
Tilmeldt:8. mar 2012, 16:05

Re: Hent data fra SQL til textarea (i PHP)

Indlæg af goatman » 9. mar 2012, 17:53

Jeg har fået leget lidt med det, og kan simpelthen ikke få det til at virke korrekt. :(

Min kode ser pt således ud:

Kode: Vælg alt

if(isset($_POST['get'])){
$getEpisode = $_POST['intEpisode'];
$getDate = $_POST['intDate'];   
$getTracklist = mysqli_query($db, "SELECT strTracklist FROM asot WHERE intEpisode = '".$getEpisode."'");
};

if(isset($_POST['submit'])){
$intEpisode = stripslashes(str_replace("\r\n", '', mysql_real_escape_string($_POST['intEpisode'])));
$intDate = stripslashes(str_replace('\r\n', '', mysql_real_escape_string($_POST['intDate'])));
$strTracklist = stripslashes(str_replace('\r\n', '', mysql_real_escape_string($_POST['strTracklist'])));

$sqlQ = mysqli_query($db, "SELECT * FROM asot WHERE intEpisode = '".$intEpisode."'");
$dbF = mysqli_fetch_array($sqlQ);

$sqlQ = mysqli_query($db, "INSERT INTO asot (intEpisode,intDate,strTracklist) VALUES ('$_POST[intEpisode]','$_POST[intDate]','$_POST[strTracklist]')
  ON DUPLICATE KEY UPDATE intEpisode = VALUES(intEpisode), intDate = VALUES(intDate), strTracklist = VALUES(strTracklist)") or die (mysqli_error($db));

if(!$sqlQ)
{
  die('Could not add episode: ' . mysql_error());
}

if(mysqli_num_rows(mysqli_query($db, "SELECT * FROM asot WHERE intEpisode = '".$intEpisode."'"))){
echo 'Updated episode succesfully';
} else {
echo 'Added episode succesfully';
}
mysqli_close($db);
};

echo '<h2>Add or update ASOT episode</h2><p />
<form method="post">
<table>
<tr>
<td>Episode</td>
<td><input type="text" name="intEpisode" value="'.$getEpisode.'"></td>
</tr>

<tr>
<td>Date</td>
<td><input type="text" name="intDate" value=""></td>
</tr>
</table>

<p /><textarea name="strTracklist" rows="10" cols="50">'.$getTracklist.'</textarea><p />
</tr>
<input type="Submit" name="get" value="Get data">
<input type="Submit" name="submit" value="Submit episode">
</form><p />';
Når jeg kører denne kode får jeg en fejl, som lyder på: "Catchable fatal error: Object of class mysqli_result could not be converted to string in C:\xampp\htdocs\admin\asot.php on line 51". Denne linie er linien hvor jeg indsætter min textarea med en variabel inden i. Hvis jeg derimod udskifter $getTracklist (fra samme linie) med $getEpisode, så kører alt fint, og den indsætter fint i min textarea.
Jeg er desuden meget i tvivl om min WHERE-kode ser korrekt ud.

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Hent data fra SQL til textarea (i PHP)

Indlæg af ThomasI » 9. mar 2012, 22:01

Hey...

Når man får en fejl i MySQL så hjælper det ofte at søge på google på selve fejlen...

Jeg fandt f.eks det..

http://answers.yahoo.com/question/index ... 819AAi5Ivy
og
https://www.google.dk/search?rlz=1C1ASU ... +to+string

Det kan helt sikkert hjælpe dig videre...

goatman
Begynder
Indlæg:8
Tilmeldt:8. mar 2012, 16:05

Re: Hent data fra SQL til textarea (i PHP)

Indlæg af goatman » 9. mar 2012, 22:09

Jeg kender udemærket til at google efter fejlene, og gør det ret ofte selv. Denne var dog sværere for mig at knække.
Jeg har dog fundet en løsning som virker, takket være en ven som har en lille smule mere styr på php en jeg selv har. ;)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: Hent data fra SQL til textarea (i PHP)

Indlæg af ThomasI » 9. mar 2012, 22:52

Super du har fundet en løsning!

Post gerne din løsning her så andre måske kan få glæde af den :D

Besvar