Hoi, ik ben een php beginner, dus mijn scriptje zal wel aan alle kanten rammelen...
Ik ben bezig met een script dat een xml file parsed en daarna bepaalde waardes in een MySQL database stopt. De waardes uit de xml file kan ik in variabelen stoppen en ook gebruiken, in echo bijvoorbeeld. Dit werkt.
Echter, als ik de waarden in een query gebruik blijft de query leeg.
Wat doe ik verkeerd?

Hier het stukje script:


function contents($parser, $data){
global $current, $Datum, $SpelerID, $SpelerNaam, $SpelerNummer, $Leeftijd;
global $MarktWaarde, $TSI, $Vorm, $Uitspraak, $Ervaring, $Leiderschap, $Salaris, $IsBuitenlands, $Populairiteit;
global $Aggresiviteit, $Eerlijkheid, $CompDoelPunten, $CupDoelPunten, $FriendlyGoals, $CarGoals, $CarHattricks, $Specialiteit, $Transferlijst;
global $NatTeamID, $LandID, $CapsAantal, $CapsOnder20, $Kaarten, $Blesure, $Conditie, $Keepen, $SpelMaken, $Scoren, $Passen;
global $VleugelSpel, $Verdedigen, $SpelHervatten, $TrainersType, $TrainersLevel;

if ($current == "FETCHEDDATE"){$Datum = "$data"; }
if ($current == "PLAYERID"){$SpelerID = "$data"; }
if ($current == "PLAYERNAME"){$SpelerNaam = "$data"; }
if ($current == "PLAYERNUMBER"){$SpelerNummer = "$data"; }
if ($current == "AGE"){$Leeftijd = "$data"; }
if ($current == "MARKETVALUE"){$naam = "$data"; }
if ($current == "TSI"){ $TSI = "$data"; }
if ($current == "PLAYERFORM"){$Vorm = "$data"; }
if ($current == "STATEMENT"){ $Uitspraak = "$data"; }
if ($current == "EXPERIENCE"){$Ervaring = "$data"; }
if ($current == "LEADERSHIP"){$LeiderSchap = "$data"; }
if ($current == "SALARY"){$Salaris = "$data"; }
if ($current == "ISABROAD"){$IsBuitenlands = "$data"; }
if ($current == "AGREEABILITY"){$Populairiteit = "$data"; }
if ($current == "AGGRESSIVENESS"){$Aggresiviteit = "$data"; }
if ($current == "HONESTY"){$Eerlijkheid = "$data"; }
if ($current == "LEAGUEGOALS"){$CompDoelPunten = "$data"; }
if ($current == "CUPGOALS"){$CupDoelPunten = "$data"; }
if ($current == "FRIENDLIESGOALS"){$FriendlyGoals = "$data"; }
if ($current == "CAREERGOALS"){$CarGoals = "$data"; }
if ($current == "CARREERHATTRICKS"){$CarHattricks = "$data"; }
if ($current == "SPECIALITY"){$Specialiteit = "$data"; }
if ($current == "TRANSFERLISTED"){$Transferlijst = "$data"; }
if ($current == "NATIONALTEAMID"){$NatTeamID = "$data"; }
if ($current == "COUNTRYID"){$LandID = "$data"; }
if ($current == "CAPS"){$CapsAantal = "$data"; }
if ($current == "CAPSU20"){$CapsOnder20 = "$data"; }
if ($current == "CARDS"){$Kaarten = "$data"; }
if ($current == "INJURYLEVEL"){$Blesure = "$data"; }
if ($current == "STAMINASKILL"){$Conditie = "$data"; }
if ($current == "KEEPERSKILL"){$Keepen = "$data"; }
if ($current == "PLAYMAKERSKILL"){$SpelMaken = "$data"; }
if ($current == "SCORERSKILL"){$Scoren = "$data"; }
if ($current == "PASSINGSKILL"){$Passen = "$data"; }
if ($current == "WINGERSKILL"){$VleugelSpel = "$data"; }
if ($current == "DEFENDERSKILL"){$Verdedigen= "$data"; }
if ($current == "SETPIECESSKILL"){$SpelHervatten = "$data"; }
if ($current == "TRAINERTYPE"){$TrainersType = "$data"; }
if ($current == "TRAINERSKILL"){$TrainersLevel = "$data"; }

$query = "INSERT INTO spelers (PlayerID, PlayerName, PlayerNumber, Age, MarketValue, TSI, PlayerForm, Statement, Experience, Leadership, Salary, IsAbroad, Agreeability, Aggressiveness, Honesty, LeagueGoals, CupGoals, FriendliesGoals, CareerGoals, CareerHattricks, Specialty, TransferListed, NationalTeamID, CountryID, Caps, CapsU20, Cards, InjuryLevel, StaminaSkill, KeeperSkill, PlaymakerSkill, ScorerSkill, PassingSkill, WingerSkill, DefenderSkill, SetPiecesSkill, TrainerType, TrainerSkill)" .
"VALUES ('$SpelerID', '$SpelerNaam', '$SpelerNummer', '$Leeftijd', '$MarktWaarde', '$TSI', '$Vorm', '$Uitspraak', '$Ervaring', '$Leiderschap', '$Salaris', '$IsBuitenlands', '$Populairiteit', '$Aggresiviteit', '$Eerlijkheid', '$CompDoelPunten', '$CupDoelPunten', '$FriendlyGoals', '$CarGoals', '$CarHattricks', '$Specialiteit', '$Transferlijst', '$NatTeamID', '$LandID', '$CapsAantal', '$CapsOnder20', '$Kaarten', '$Blesure', '$Conditie', '$Keepen', '$SpelMaken', '$Scoren', '$Passen', '$VleugelSpel', '$Verdedigen', '$SpelHervatten', '$TrainersType', '$TrainersLevel')";

mysql_query($query) or die('Error, query failed. ' . mysql_error());
}

//------------------------------------------------------------------------

Dit is wat er van mijn query gebrouwen word:

INSERT INTO spelers (PlayerID, PlayerName, PlayerNumber, .......... VALUES ('', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
Tx, Ik ben er inmiddels achter wat er niet goed gaat... weer een stapje verder :)
<?
$query = "INSERT INTO spelers (PlayerID, PlayerName, PlayerNumber, Age, MarketValue, TSI, PlayerForm, Statement, Experience, Leadership, Salary, IsAbroad, Agreeability, Aggressiveness, Honesty, LeagueGoals, CupGoals, FriendliesGoals, CareerGoals, CareerHattricks, Specialty, TransferListed, NationalTeamID, CountryID, Caps, CapsU20, Cards, InjuryLevel, StaminaSkill, KeeperSkill, PlaymakerSkill, ScorerSkill, PassingSkill, WingerSkill, DefenderSkill, SetPiecesSkill, TrainerType, TrainerSkill)" .
"VALUES ('$SpelerID', '$SpelerNaam', '$SpelerNummer', '$Leeftijd', '$MarktWaarde', '$TSI', '$Vorm', '$Uitspraak', '$Ervaring', '$Leiderschap', '$Salaris', '$IsBuitenlands', '$Populairiteit', '$Aggresiviteit', '$Eerlijkheid', '$CompDoelPunten', '$CupDoelPunten', '$FriendlyGoals', '$CarGoals', '$CarHattricks', '$Specialiteit', '$Transferlijst', '$NatTeamID', '$LandID', '$CapsAantal', '$CapsOnder20', '$Kaarten', '$Blesure', '$Conditie', '$Keepen', '$SpelMaken', '$Scoren', '$Passen', '$VleugelSpel', '$Verdedigen', '$SpelHervatten', '$TrainersType', '$TrainersLevel')";
?>
En dit valt in de categorie 'overzichtelijk' ?

Daarnaast is er blijkbaar niet genormaliseerd en wordt de bende nog groter. Dit gaat, behalve het gebrek aan overzicht, nog veel meer problemen opleveren.

Tip: Ga terug naar de tekentafel en ga eerst een goed datamodel opzetten.

Reageren