09. september 2003 - 21:14Der er
6 kommentarer og 1 løsning
Rette info i tabel og evt. indsætte nye info
Har fået rodet mig ind i noget, som jeg ikke kan overskue. Derfor har jeg brug for jeres hjælp..
Nedenstående script skulle gerne bruges til at hente oplysninger fra tabellen 'billeder' og placere oplysninger i en <form>, med plads til 5 indtastninger. D.v.s. hvis er eks. 3 rækker i tabellen med de rette oplysninger, skal der selvfølgelige være 3 tekstfelter som er udfyldte og 2 tomme.
Efter følgende skal man kunne rette i de oprindelige tekster samt kunne vælge nye billeder og/eller kunne indsætte nye billeder og tekst.
Jeg mener, at jeg har fundet frem til hvordan jeg får fat i oplysninger samt undersøgt hvor mange felter som er udfyldte og hvor mange som er tomme.
Selve hjælpen går på at få opdateret i eksisterende oplysninger og indsat de nye i tabellen.
Scriptet er taget fra en anden fil, hvor det virker.
//Hvis der skal rettes if (isset($type) && $type=="update") { //Er der trykke på OK ??? if (!isset($check)) { //Henter fra tabellen og lister hvis der findes noget. $nyhed_id = $_SESSION['var2']; $sql="select * from billeder where nyhed_id='$id'"; $result=@mysql_query($sql,$db); if (!result) { echo "<b>Der er IKKE nogen billederne til denne nyhed!</b>"; } else { $id=$myrow["id"]; ?> <blockquote> <h3><b>Rette billeder til Nyheder:</b><br> <form enctype="multipart/form-data" action="edit_billeder.php" method="post"> <input type="hidden" name="max_file_size" value="10000000"> <input type="hidden" name="type" value="update"> <? $pic="1"; $sql="select * from billeder where id=$id"; while ($myrow=mysql_fetch_array($result)) { $id=$myrow["id"]; $billede=$myrow["billede"]; $tekst=$myrow["tekst"]; ?> <input type="hidden" name="check" value="<? echo "$id"; ?>"> <table width="400" cellpadding="0" cellpadding="0" border="0" style : (margin-left:0; margin-top:0)> <tr><td align="left"> <h2><b>Billede:</b><br> <? echo "<input type=\"text\" name=\"billede".$pic."\" value=".$billede.">"; ?> <? echo "<input type=\"file\" name=\"billede".$pic."\" size=\"20\" class=\"blackborder\"><br>"; ?> </td><td align="right"> <td align="left"><h2><b>Tekst:</b><br> <? echo "<textarea name=\"tekst".$pic."\" cols=\"30\" rows=\"5\" class=\"blackborder\">$tekst</textarea>"; ?> </td></tr></table> <? $pic++; } // Lister tomme felter, hvis der ikke er 5 rækker i tabellen. while ($pic<6) { ?> <table width="400" cellpadding="0" cellpadding="0" border="0" style : (margin-left:0; margin-top:0)> <tr><td align="left"> <h2><b>Billede:</b><br> <? echo "<input type=\"file\" name=\"billede".$pic."\" size=\"20\" class=\"blackborder\"><br>"; ?> </td><td align="right"> <td align="left"><h2><b>Tekst:</b><br> <? echo "<textarea name=\"tekst".$pic."\" cols=\"30\" rows=\"5\" class=\"blackborder\"></textarea>"; ?> </td></tr></table> <? $pic++; } ?> <center><a href="edit_nyheder.php"><img src="images/tilbage.gif" border="0"></a> <? echo " "; ?> <input type="image" src="images/ok.gif" type="name" value="Tilføj" border="0"></center> </form><br> </blockquote> <? } } else // Der er trykke på OK – hvad skal der ske bruger følgende til at indsætte i tabellen. // Skal have hjælp til denne del. { define('BILLEDE_DIR', 'billeder/'); $pic="1"; while ($pic<6) { $upfil=$_FILES['ny_billede'.$pic]['name']; $tempfil=$_FILES['ny_billede'.$pic]['tmp_name']; $tekst=$_POST['ny_tekst'.$pic]; $pos = strrpos($upfil, "."); $fpos = substr($upfil, 0, $pos); $epos = substr($upfil, $pos + 1, strlen($upfil) - ($pos + 1)); $i = $nyhed_id; $billede = BILLEDE_DIR.$i."_".$pic.".".$epos; $fejl=$i."_".$pic.".".$epos; $pic++; if ($upfil) { move_uploaded_file($tempfil, $billede); chmod($billede,0777); resize($billede, 400, 200); $sql="insert into billeder values ('','$billede','$tekst','$nyhed_id');"; $result=mysql_query($sql,$db); if ($result) { } else { echo "<br><b>Billede $fejl blev IKKE indsat!</b>"; } } else { } } echo "<br><b>Billederne blev indsat!</b>"; }
Nej, det er det vel ikke. Det får jeg lige rettet.
Problemet er, at jeg ikke kan finde ud af, hvordan jeg får opdateret de eksisterende oplysninger 'id' (hentet fra tabellen), hvis jeg vælger nyt billede og/eller retter i teksten og hvordan jeg får indsat nye oplysninger 'id' (nye billeder of tekst, samme nyhed_id), hvis jeg vælger at indsætte flere.
Du har nogle felter, som er udfyldt. Men har du også nogen, som er tomme, sådan at du har mulighed for at tilføje. Det er en lang kode, så det er lidt uoverskueligt i hovedet ...
Denne side har jeg ikke liggende online, da den ikke er frædig endnu :-))
Det er en adminfunktion på en hjemmeside for en fodboldklub. Jeg viser lige hele filen, som den ser ud nu,.
Filen er, når den er helt færdig opdelt i 3 funktioner:
1. indsætte/uploade billeder med tilhørende tekst. (er ok) 2. ændre allerede indsatte/uploaded billeder og tekst samt evt. indsætte/uploade nye. (er begyndt, men mangler hjælp) 3. slette udvalgte billeder og tekst fra tabel og fjerne billede fra upload. (mangler, har en ide - men kom gerne med et forslag)
Lille forklaring: Man har skrevet en nyhed/information og valgt at indsætte billeder til nyheden. Nyheden indsættes i tabellen 'nyheder' - og 'nyhed_id' hentes. Dette sker i en anden fil....
Så vises en skærm med mulighed for at vælge op til 5 billeder og skrive tekst til disse. Når man er færdig med det, klikker man på 'OK' og billeder uploades og ref. til billedet samt tekst og nyhed_id indsættes i tabellen 'billeder'.
I et menupunkt kan man så vælge om man vil rette i billederne til en bestemt nyhed. Det er den del jeg ikke lige kan finde ud af hvordan jeg skal gøre.
I samme menu skal der selvfølgelig være mulighed for at vælge om man vil slette billeder til en bestemt nyhed. Det er den del jeg mangler.
Håber ikke du har brugt meget tid på det, da jeg selv har fået strikket det sammen. Her er hele scriptet, men der er med sikkerhed noget af det, som ikke holder i landsretten. :-))
if (isset($type) && $type=="slet") { $sql="select * from billeder where nyhed_id='$id'"; $result=@mysql_query($sql,$db); if (!result) { echo "<b>Der er IKKE nogen billederne til denne nyhed!</b>"; } else { ?> <blockquote> <h3><b>Slette billeder til Nyheder:</b><br><h2> <? while ($myrow = mysql_fetch_array($result)) { $id=$myrow["id"]; $billede=$myrow["billede"]; $pos=strrpos($billede, "/"); $billede=substr($billede, $pos+1, strlen($billede)-($pos+1)); echo "<h2><a href='edit_billeder.php?type=delete&id=$id' class='Underline'>Billede: $billede</a>"; } ?> <br><br> <h2><b>Advarsel! ved at klikke på billedet slettes denne!<br><br> <center><a href="edit_nyheder.php"><img src="images/tilbage.gif" border="0"></a> </blockquote> <? } }
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.