login  Naam:   Wachtwoord: 
Registreer je!
 Forum

INSERT funtie in MySQL class

Offline timo - 08/04/2006 10:08
Avatar van timoPHP ver gevorderde Ik heb weer een probleem met me MySQL class.. ik heb er een insert functie bij geschreven, die moet (natuurlijk) arrays verwerken... dat heb ik met een for loop gedaan... maar als ik een array wil gebruiken om te inserten worden geen enkele waardes+velden meegegeven...
als ik gwn 2 strings gebruik werkt het wel...
hier mijn functie:
  1. <?
  2. function insert($table,$colums,$values)
  3. {
  4. $waardes = "";
  5. $kolommen = "";
  6. if(is_array($colums))
  7. {
  8. $aantal = count($colums);
  9. for($i=0; $i<$aantal, $i++;)
  10. {
  11. if($i==$aantal)
  12. {
  13. $kolommen .= "`".$colums[$i]."`";
  14. }
  15. else
  16. {
  17. $kolommen .= "`".$colums[$i]."`,";
  18. }
  19. }
  20. }
  21. else
  22. {
  23. $kolommen = "`".$colums."`";
  24. }
  25. if(is_array($values))
  26. {
  27. $aantal = count($values);
  28. for($i=0; $i<$aantal, $i++;)
  29. {
  30. if($i==$aantal)
  31. {
  32. $waardes .= "`".$values[$i]."`";
  33. }
  34. else
  35. {
  36. $waardes .= "`".$values[$i]."`,";
  37. }
  38. }
  39. }
  40. else
  41. {
  42. $waardes = "'".$values."'";
  43. }
  44. $sql = "INSERT INTO
  45. ".$table."
  46. (
  47. ".$kolommen."
  48. )
  49. VALUES
  50. (".$waardes.")
  51. ";
  52. if(!mysql_query($sql))
  53. {
  54. $this->log .= "Er trad een fout op bij het uitvoeren van de insert query: ".$sql."<br />".mysql_error()."<br />".mysql_errno()."<br /><br />";
  55. }
  56. }
  57. ?>

ik roep het op via:
  1. <?php
  2. $mysql->insert("paginas",array("pagnaam","paginhoud"),array("timo","timo zit in 1b"));
  3. ?>

6 antwoorden

Gesponsorde links
Offline Voldemort - 08/04/2006 12:30
Avatar van Voldemort PHP ver gevorderde Een for-lus ziet er zo uit:

for($i=0; $i<$aantal; $i++)

Een ; aan het tweede en aan het laatste geen (PHP.net: for)
Offline timo - 08/04/2006 12:39
Avatar van timo PHP ver gevorderde
Citaat:
Notice: Undefined offset: 2 in C:apachefriendsxampphtdocscmsincludesmysql_class.inc.php on line 56

Notice: Undefined offset: 2 in C:apachefriendsxampphtdocscmsincludesmysql_class.inc.php on line 75
Er is/zijn fout(en) opgetreden in het MySQL gedeelte:
Er trad een fout op bij het uitvoeren van de insert query: INSERT INTO paginas ( `` ) VALUES ( '' )
Unknown column '' in 'field list'
1054

...
heb oowk de $i<$aantal veranderd naar $aantal>$i... en bij de if($aantal==$i) 1 = weggehaald..
Offline kokx - 08/04/2006 12:51
Avatar van kokx Onbekend Zet je hele class is op pastebin. Want ik weet niet op welke regel wat staat.
Offline timo - 08/04/2006 12:54
Avatar van timo PHP ver gevorderde http://pastebin.be/801/
Offline Ontani - 08/04/2006 13:03
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
regel 56 moet == zijn
die $waardes is niet correct en zorgt ervoor dat je query niet inorde is.
Offline timo - 08/04/2006 13:13 (laatste wijziging 10/04/2006 15:57)
Avatar van timo PHP ver gevorderde regel 56 is $kolommen .= ... dat kan nooit...

EDIT: opgelost met de for etc weghalen en er een implode van maken:p (zulke simpele dingen denk je soms gwn niet aan;-))
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.225s