login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Meerdere velden updaten (Opgelost)

Offline mickeyg - 14/05/2009 22:26 (laatste wijziging 14/05/2009 22:37)
Avatar van mickeygNieuw lid Hallo,

ik ben bezig met een smileys beheer.. heb het vaker gezien bij phpbb enzo.
kunnen jullie mij een voorbeeld geven hoe ik dit fix.. ik wil alle velden opslaan in het database.

plaatje:
http://www.gii-solutions.nl/smile.png

tabel:
  1. CREATE TABLE `emoticons` (
  2. id int(20) NOT NULL AUTO_INCREMENT,
  3. emote VARCHAR(10) NOT NULL,
  4. image VARCHAR(30) NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) TYPE=MYISAM;";


en de form:
  1. $bewerk = $_GET["bewerk"];
  2.  
  3. if(isset($_POST['smilieid']))
  4. {
  5.  
  6. $emote = addslashes(htmlspecialchars($_POST['emote']));
  7. $id = $_POST["id"];
  8.  
  9. mysql_query("UPDATE emoticons SET emote='$emote' WHERE id = '$id'");
  10.  
  11. //$strQuery = "UPDATE emoticons SET emote='$emote' WHERE $where";
  12. //mysql_query($strQuery);
  13.  
  14. header("Location: admin.php?msg=SMILEY: Gegevens zijn succesvol gewijzigd.");
  15. // header("Location: admin.php?admin=smileys");
  16.  
  17.  
  18. }else{
  19.  
  20. <form method='Post' action='admin.php?admin=smileys'>
  21. <table style='width: 700px' class='fborder'>
  22. <tr>
  23. <td style='width:25%' align='center' class='forumheader3'><b>Naam</b></td>
  24. <td style='width:25%' class='forumheader3'><b>Afbeelding</b></td>
  25. <td style='width:45%' class='forumheader3'><b>Smiley Code</b></td>
  26. <td style='width:5%' class='forumheader3'></td>
  27. </tr>";
  28.  
  29. $query2 = mysql_query("SELECT * FROM `emoticons`");
  30.  
  31. while($row = mysql_fetch_assoc($query2))
  32. {
  33. echo"
  34. <tr>
  35. <td style='width:25%' align='center' class='forumheader3'>".$row['image']."</td>
  36. <td style='width:25%' class='forumheader3'><img src='".$siteURL."images/smile/".$row['image']."'></td>
  37. <td style='width:45%' class='forumheader3'><input name='emote' class='text' type='text' value='".$row['emote']."' id='emote' style='width: 99%;'>
  38. </td>
  39. <td style='width:5%' class='forumheader3'><input class='text' type='button' onclick='submit();' id='smilieid' name='smilieid' value='".$row['id']."' style='width: 99%;'></td>
  40. </tr>";
  41. }
  42.  
  43. <tr>
  44. <td class='forumheader3' colspan='4'><input type='submit' name='plaats' value='Wijzigingen Opslaan' class='button' style='width:150px;'></td>
  45. </tr>
  46. </table></form>";
  47.  
  48. }


het opslaan heb ik GEEN idee van.. heb maar wat geprobeerd.
heb al veel gemaakt voor mijn site maar dit lukt me echt niet!

heel erg bedankt voor jullie hulp
mick

ps, is het mogelijk om meerdere snel codes te maken per emoticon?
bijv door het te scheiden met een "," ofzo?

en hoe sla je dat op, hoe lees je dit dan weer uit?

14 antwoorden

Gesponsorde links
Offline Abbas - 14/05/2009 22:36
Avatar van Abbas Gouden medaille

Crew .NET
Lees dan eerst en vooral eens een paar tutorials in de categorie SQL om te leren hoe je data kan opslaan in een database en hoe je er ook data weer kan uithalen. In het PHP-scripts gedeelte kan je dan weer scripts vinden over smileys. Die kan je dan ontrafelen en leren hoe dergelijke functies werken. 
Offline WouterPSV - 14/05/2009 22:36 (laatste wijziging 14/05/2009 22:38)
Avatar van WouterPSV Lid
  1. UPDATE emoticons SET emote='$emote', emote1='$emote1', emote2='$emote2' WHERE id


Volgens mij bedoel je dit.

EDIT:

Lol @ titjes. Ben het ermee eens, even tutorial lezen en je weet het zo. Anders dit nog ff proberen.
Offline mickeyg - 14/05/2009 22:42 (laatste wijziging 14/05/2009 22:42)
Avatar van mickeyg Nieuw lid ik weet hoe ik met php en mysql moet werken.. heb een heel systeem zelf geschreven zit alleen vast met dit stukje..

ieder id heeft een eigen icon en eigen plaatje.. meer niet.

ik KAN coden.. alleen dit stukje kom ik niet uit

http://beta.gii-solutions.nl
dus.. (trouwens een beta test site.. dus let niet op de content haha)

wel bedankt voor de snelle reacties!
iemand oplossingen?
Offline WouterPSV - 14/05/2009 22:43
Avatar van WouterPSV Lid Check mijn vorige post....
Offline Abbas - 14/05/2009 22:51
Avatar van Abbas Gouden medaille

Crew .NET
Je moet me niet proberen overtuigen dat je kan scripten, ik beweer ook nergens dat je het niet kan. Maar als er toch zaken zijn waar je niet bekend mee bent moet je tutorials lezen, scripts ontrafelen, ... om nog meer kennis te hebben en in dit geval: je probleem te kunnen oplossen! 
Offline mickeyg - 14/05/2009 22:52
Avatar van mickeyg Nieuw lid maar wat als ik er een nieuwe emoticon bij doe..
want mijn tabel is:

  1. CREATE TABLE `emoticons` (
  2. id int(20) NOT NULL AUTO_INCREMENT,
  3. emote VARCHAR(10) NOT NULL,
  4. image VARCHAR(30) NOT NULL,
  5. PRIMARY KEY (`id`)
  6. ) TYPE=MYISAM;";


en die veranderd niet.. daarom doe ik alles zo in t tabel zetten:
  1. mysql_query("INSERT INTO emoticons (id, emote, image) VALUES ('1', ':)', 'smile.gif')");
  2. mysql_query("INSERT INTO emoticons (id, emote, image) VALUES ('2', ':D', 'biggrin.gif')");
  3. mysql_query("INSERT INTO emoticons (id, emote, image) VALUES ('3', ';)', 'wink.gif')");


want dan moet ik eigelijk een ander soort tabel maken toch?
leg jouw idee eens uit?
Offline WouterPSV - 14/05/2009 23:01
Avatar van WouterPSV Lid
mickeyg schreef:
ieder id heeft een eigen icon en eigen plaatje.. meer niet.


Mijn idee klopt dus niet. ik heb het met één id, en dan meerder icons. Maar dan krijg je als ik het goed heb redundantie.

Ik moet je op dit moment dus het antwoord even verschuldigd blijven.  
Offline mickeyg - 14/05/2009 23:17 (laatste wijziging 15/05/2009 02:25)
Avatar van mickeyg Nieuw lid
WouterPSV schreef:
[..quote..]

Mijn idee klopt dus niet. ik heb het met één id, en dan meerder icons. Maar dan krijg je als ik het goed heb redundantie.

Ik moet je op dit moment dus het antwoord even verschuldigd blijven.  


het is niet erg hoor, is menselijk dat we elkaar soms niet begrijpen toch..

ik wacht even andere reacties af! bedankt!


nu wat later, nog niet gelukt.. raar .. ik wil gewoon dat hij alle id's update die ik in de lijst heb.. toch kom ik er niet uit..  


@2.06:
heb nu dit, die foreach zorgt er wel voor dat hij iedere smilie appart doet.. als ik alle id's ook in die foreach kan krijgen kan ik daarin ook een update doen.. dan zou het werken..

tips?

code is here:
  1. <?php
  2.  
  3. include ('header.php');
  4.  
  5. if(isset($_POST['submit']))
  6. {
  7. foreach($_POST['emote'] as $checked => $value)
  8. {
  9. echo "DEBUG: de smilie is nu opgeslagen als ".$value."<br>";
  10. }
  11. }
  12. else
  13. {
  14. <form method='post' action=''>
  15.  
  16. <table style='width: 700px' class='fborder'>
  17. <tr>
  18. <td style='width:15%' align='center' class='forumheader3'><b>Naam</b></td>
  19. <td style='width:15%' class='forumheader3'><b>Afbeelding</b></td>
  20. <td style='width:65%' class='forumheader3'><b>Smiley Code</b></td>
  21. </tr>";
  22.  
  23. $query2 = mysql_query("SELECT * FROM `emoticons`");
  24.  
  25. while($row = mysql_fetch_assoc($query2))
  26. {
  27. echo"
  28. <tr>
  29. <td style='width:15%' align='center' class='forumheader3'><input name='id[]' type='hidden' value='".$row['id']."'> ".$row['id']." ".$row['image']."</td>
  30. <td style='width:15%' class='forumheader3'><img src='".$siteURL."images/smile/".$row['image']."'></td>
  31. <td style='width:65%' class='forumheader3'><input name='emote[]' class='text' type='text' value='".$row['emote']."' id='emote' style='width: 99%;'></td>
  32. </tr>";
  33. }
  34.  
  35. </table>
  36. <input type='submit' name='submit' value='Verstuur'>
  37. </form>";
  38. }
  39.  
  40. include ('footer.php');
  41.  
  42. ?>




het is gefixt!!! het is wel noobie gedaan maar het werkt!

  1. <?php
  2.  
  3. include ('header.php');
  4.  
  5. if(isset($_POST['submit']))
  6. {
  7. foreach($_POST['emote'] as $checked => $value)
  8. {
  9. $id = $checked + 1;
  10. mysql_query("UPDATE emoticons SET emote='$value' WHERE id = '$id'");
  11. echo "DEBUG: ".$id." ".$checked." de smilie is nu opgeslagen als ".$value."<br>";
  12. }
  13. }
  14. else
  15. {
  16. <form method='post' action=''>
  17.  
  18. <table style='width: 700px' class='fborder'>
  19. <tr>
  20. <td style='width:15%' align='center' class='forumheader3'><b>Naam</b></td>
  21. <td style='width:15%' class='forumheader3'><b>Afbeelding</b></td>
  22. <td style='width:65%' class='forumheader3'><b>Smiley Code</b></td>
  23. </tr>";
  24.  
  25. $query2 = mysql_query("SELECT * FROM `emoticons`");
  26.  
  27. while($row = mysql_fetch_assoc($query2))
  28. {
  29. echo"
  30. <tr>
  31. <td style='width:15%' align='center' class='forumheader3'><input name='id[]' type='hidden' value='".$row['id']."'> ".$row['id']." ".$row['image']."</td>
  32. <td style='width:15%' class='forumheader3'><img src='".$siteURL."images/smile/".$row['image']."'></td>
  33. <td style='width:65%' class='forumheader3'><input name='emote[]' class='text' type='text' value='".$row['emote']."' id='emote' style='width: 99%;'></td>
  34. </tr>";
  35. }
  36.  
  37. </table>
  38. <input type='submit' name='submit' value='Verstuur'>
  39. </form>";
  40. }
  41.  
  42. include ('footer.php');
  43.  
  44. ?>
Offline Abbas - 15/05/2009 02:18 (laatste wijziging 15/05/2009 02:19)
Avatar van Abbas Gouden medaille

Crew .NET
Als je nu eens telt hoeveel elementen je in je array hebt en dan met een for-loop door beide arrays gaat in plaats van te werken met een foreach() door maar één van je arrays dan kan je de waarde en het ID ineens ophalen uit de beide arrays. Snap je? Een voorbeeld om het duidelijk te maken:

  1. //aantal elementen uit je smiley-array tellen
  2. $aantal = count($ArrayEmoticons);
  3.  
  4. //for-loop door je array
  5. for($i = 0; $i < $aantal; $i++)
  6. {
  7. //naam en id uit de arrays ophalen
  8. echo emote[$i];
  9. echo " - ";
  10. echo id[$i];
  11. echo "<br />";
  12. }

In plaats van dan een echo() te doen gebruik jij die dan in je SQL-query. Hopelijk begrijp je het! 
Offline mickeyg - 15/05/2009 02:26 (laatste wijziging 15/05/2009 02:36)
Avatar van mickeyg Nieuw lid :O die is ook goed!

hmm, heb nu 2 manieren die werken.. bedankt!!
helemaal goed!

deze werkt nu op t moment:
  1. <?php
  2.  
  3. include ('header.php');
  4.  
  5. if(isset($_POST['submit']))
  6. {
  7. foreach($_POST['emote'] as $checked => $value)
  8. {
  9. $id = $checked + 1;
  10. mysql_query("UPDATE emoticons SET emote='$value' WHERE id = '$id'");
  11. echo "DEBUG: ".$id." ".$checked." de smilie is nu opgeslagen als ".$value."<br>";
  12. }
  13. }
  14. else
  15. {
  16. <form method='post' action=''>
  17.  
  18. <table style='width: 700px' class='fborder'>
  19. <tr>
  20. <td style='width:15%' align='center' class='forumheader3'><b>Naam</b></td>
  21. <td style='width:15%' class='forumheader3'><b>Afbeelding</b></td>
  22. <td style='width:65%' class='forumheader3'><b>Smiley Code</b></td>
  23. </tr>";
  24.  
  25. $query2 = mysql_query("SELECT * FROM `emoticons`");
  26.  
  27. while($row = mysql_fetch_assoc($query2))
  28. {
  29. echo"
  30. <tr>
  31. <td style='width:15%' align='center' class='forumheader3'><input name='id[]' type='hidden' value='".$row['id']."'> ".$row['id']." ".$row['image']."</td>
  32. <td style='width:15%' class='forumheader3'><img src='".$siteURL."images/smile/".$row['image']."'></td>
  33. <td style='width:65%' class='forumheader3'><input name='emote[]' class='text' type='text' value='".$row['emote']."' id='emote' style='width: 99%;'></td>
  34. </tr>";
  35. }
  36.  
  37. </table>
  38. <input type='submit' name='submit' value='Verstuur'>
  39. </form>";
  40. }
  41.  
  42. include ('footer.php');
  43.  
  44. ?>





Ik heb nog 1 vraagje, nu ik de smileys in mijn database heb wil ik mijn oude java functie wel blijven gebruiken.. is het modelijk om de Array() te vullen met alle smilies en de plaatjes Array met die van de plaatjes van die smilies? haha ik doe moeilijk.. het kan misschien wel makkelijker.

voorbeeld:
  1. // Hij zoekt naar deze tekst:
  2. $smiley_text = array("dit heb je niet nodig",
  3. ":)", ":P", ":(", ":D",
  4. ":=", "(A)", ":@", ":+",
  5. ":S", "x_x", "do'h", ":|",
  6. ":')", "^_^", "(6)", "(I)",
  7. "._.", "(K)", ":9", "(L)", "=@", "(mg)", "(8)", ":O", "8O", "xD", ":roll", ":$",
  8. "(U)", ":W", ";)", ":wtf", ":yawn", ":tss", "(H)", "(h)", ":dj:");
  9.  
  10. // Hij verplaats die tekst met dit:
  11. $smiley_replace = array("dit heb je niet nodig",
  12. '<img src="'.$siteURL.'images/smile/smile.gif">',
  13. '<img src="'.$siteURL.'images/smile/tong.gif">',
  14. '<img src="'.$siteURL.'images/smile/frown.gif">',
  15. '<img src="'.$siteURL.'images/smile/biggrin.gif">',
  16. '<img src="'.$siteURL.'images/smile/alien.gif">',
  17. '<img src="'.$siteURL.'images/smile/angel.gif">',
  18. '<img src="'.$siteURL.'images/smile/angry.gif">',
  19. '<img src="'.$siteURL.'images/smile/clown.gif">',
  20. '<img src="'.$siteURL.'images/smile/confused.gif">',
  21. '<img src="'.$siteURL.'images/smile/death.gif">',
  22. '<img src="'.$siteURL.'images/smile/doh.gif">',
  23. '<img src="'.$siteURL.'images/smile/eek.gif">',
  24. '<img src="'.$siteURL.'images/smile/emo.gif">',
  25. '<img src="'.$siteURL.'images/smile/happy.gif">',
  26. '<img src="'.$siteURL.'images/smile/heh.gif">',
  27. '<img src="'.$siteURL.'images/smile/idee.gif">',
  28. '<img src="'.$siteURL.'images/smile/justwow.gif">',
  29. '<img src="'.$siteURL.'images/smile/kiss.gif">',
  30. '<img src="'.$siteURL.'images/smile/lekkerrr.gif">',
  31. '<img src="'.$siteURL.'images/smile/love.gif">',
  32. '<img src="'.$siteURL.'images/smile/mad.gif">',
  33. '<img src="'.$siteURL.'images/smile/mg.gif">',
  34. '<img src="'.$siteURL.'images/smile/music.gif">',
  35. '<img src="'.$siteURL.'images/smile/oh.gif">',
  36. '<img src="'.$siteURL.'images/smile/pup.gif">',
  37. '<img src="'.$siteURL.'images/smile/rofl.gif">',
  38. '<img src="'.$siteURL.'images/smile/roll.gif">',
  39. '<img src="'.$siteURL.'images/smile/shy.gif">',
  40. '<img src="'.$siteURL.'images/smile/uit.gif">',
  41. '<img src="'.$siteURL.'images/smile/whine.gif">',
  42. '<img src="'.$siteURL.'images/smile/wink.gif">',
  43. '<img src="'.$siteURL.'images/smile/wtf.gif">',
  44. '<img src="'.$siteURL.'images/smile/yawn.gif">',
  45. '<img src="'.$siteURL.'images/smile/tss.gif">',
  46. '<img src="'.$siteURL.'images/smile/cool.gif">',
  47. '<img src="'.$siteURL.'images/smile/cool.gif">',
  48. '<img src="'.$siteURL.'images/smile/dj.gif">');
Offline Abbas - 15/05/2009 02:38
Avatar van Abbas Gouden medaille

Crew .NET
Ik snap je laatste vraag niet! En waarom die code? 
Offline mickeyg - 15/05/2009 03:11 (laatste wijziging 15/05/2009 03:12)
Avatar van mickeyg Nieuw lid ik dacht dan heb je meer beeld van wat ik doe..


die code die ik gaf.. daarmee echo ik zeg maar

  1. echo swu("tekst met smilies en bb hier");


maar nu heb ik zelf al die smilies daarin geschreven.. en wil nu dat het vanuit het database in die functie komt.. (en omdat het database telkens meer smilies krijgt.. moet hij automatisch de array langer maken.. daar hoef ik niks voor te doen )

snap je?
ik wil gewoon dat mijn smilies automatisch geupdate worden in de functie nadat ze zijn toegevoegd/veranderd in t database ,

wel bedankt voor je geduld en hulp!!
Offline Abbas - 15/05/2009 03:55
Avatar van Abbas Gouden medaille

Crew .NET
Bij het ophalen van de gegevens/smileys maak je gewoon die array aan en weet je toch automatisch je grootte aan de hand van hoeveel items er opgehaald worden?! 

En als je er nieuwe invoegt doe je gewoon de vorige actie, gewoon opnieuw ophalen en in de array steken dus! 
Offline mickeyg - 15/05/2009 13:15 (laatste wijziging 16/05/2009 02:19)
Avatar van mickeyg Nieuw lid
titjes schreef:
Bij het ophalen van de gegevens/smileys maak je gewoon die array aan en weet je toch automatisch je grootte aan de hand van hoeveel items er opgehaald worden?! 

En als je er nieuwe invoegt doe je gewoon de vorige actie, gewoon opnieuw ophalen en in de array steken dus! 


als ik vanavond ga coden, dan ga ik daar eventjes mee stoeien.. moet daar vast wel uit komen ;).. nogmaals bedankt he! ik laat het wel weten als het niet/wel lukt! 



EDIT:
damn ben nu een uurtje bezig geweest om het te proberen... maar is nog niet gelukt.. kun je een voorbeeldje geven?

ik weet hoe ik de output moet maken..
  1. $emote = mysql_query("SELECT * FROM emoticons") or die(mysql_error());
  2. $emoterows = mysql_num_rows($emote);
  3.  
  4. while($emoticons = mysql_fetch_array($emote)) {
  5.  
  6. echo"'".$emoticons['emote']."', ";
  7.  
  8. }


maar hoe lees ik die uit in deze array?
  1. // Hij zoekt naar deze tekst:
  2. $smiley_text = array("dit heb je niet nodig",
  3. ":)", ":P", ":(", ":D",
  4. ":=", "(A)", ":@", ":+",
  5. ":S", "x_x", "do'h", ":|",
  6. ":')", "^_^", "(6)", "(I)",
  7. "._.", "(K)", ":9", "(L)", "=@", "(mg)", "(8)", ":O", "8O", "xD", ":roll", ":$",
  8. "(U)", ":W", ";)", ":wtf", ":yawn", ":tss", "(H)", "(h)", ":dj:");


heb het opgelost!
  1. $emote = mysql_query("SELECT * FROM emoticons") or die(mysql_error());
  2. $emoterows = mysql_num_rows($emote);
  3.  
  4. while($emoticons = mysql_fetch_array($emote)) {
  5.  
  6. $text = str_replace("".$emoticons['emote']."", "<img src='".$siteURL."images/smile/".$emoticons['image']."'>", $text);
  7.  
  8. }


dit heb ik in die functie gezet ipv de 2 arrays.. en het werkt! het update automatisch!! 

thanks!! je tip deed de truuk!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.49s