Hallo PHPHulp

Ik heb de volgende script gemaakt;
<?php
include "connect.php"; //verbinding maken
$query = "SELECT `dbo_SSIOSPlatforms.Name, dbo_SSIMachine.Name, dbo_SSIUser.UserName` FROM `dbo_SSIOSPlatforms, dbo_SSIMachine, dbo_SSIUser`";
//query is aangemaakt
$sql = mysql_query($query);
//query is uitgevoerd
echo"<table border=\"1\">
<tr><td>1</td><td>2</td><td>3</tr>";
while($record = mysql_fetch_assoc($sql)) 
{
echo"<tr><td>".$record->dbo_SSIOSPlatforms.Name."</td><td>".$record->dbo_SSIMachine.Name."</td><td>".$record->dbo_SSIUser.UserName."</td></tr>";
}
echo "</table>";
?>


Ik krijg hierbij deze foutmelding;
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 3.0\www\test.php on line 10

Weten jullie misschien raad? Ik heb zelf het probleem niet kunnen oplossen.

Ik zou het fijn vinden als iemand ernaar zou kunnen kijken.

Met vriendelijke groet,
Jan Volker
probeer hem eens zo:

<?php
$query = "SELECT dbo_SSIOSPlatforms.Name, dbo_SSIMachine.Name, dbo_SSIUser.UserName FROM 'dbo_SSIOSPlatforms, dbo_SSIMachine, dbo_SSIUser'";
?>
Dan klopt de query niet.
Voer de query eens in in PHPmyadmin.

Ik zie in ieder geval al 1 fout. (of zijn het er nou 2?)
Ik had gehoord dat je geen punten in je benamingen mocht gebruiken, of heb ik dat fout gehoord? :)
Mitchell schreef op 03.04.2009 16:43
Ik had gehoord dat je geen punten in je benamingen mocht gebruiken, of heb ik dat fout gehoord? :)
Nee, dat heb je goed gehoord.

Verder ontbreekt foutafhandeling en dus is het logisch dat het fout gaat. Ga dus eerst je script afmaken en dan pas testen. Met een half script is het logisch dat het niet werkt.
Ik ga er van uit dat mijn script altijd de database kan vinden, juiste table kan selecteren, en de gegevens kan krijgen. Dus het gene wat je zou moeten controleren in de invoer van data.
Thijs van den Berg schreef op 03.04.2009 16:51
Ik ga er van uit dat mijn script altijd de database kan vinden, juiste table kan selecteren, en de gegevens kan krijgen.
Grappenmaker ;)

Zie dit topic waar het gebrek aan foutmeldingen ook al voor problemen zorgt. Gossie, dat is een topic van jou!

Dus het gene wat je zou moeten controleren in de invoer van data.
Dat moet je in je PHP-code controleren en je moet controleren of de query ook daadwerkelijk is gelukt. Uiteraard moet de database ook controleren of de data wel in de tabel past, anders ga je nog steeds op je smoelwerk.

Tenzij je geen goed script wilt hebben, dan kun je natuurlijk een eind weg prutsen.
Gebrek aan foutmeldingen? Als ik wist dat md5 32 karakters op sloeg ging het gewoon goed :).
Maar ik begrijp wat je bedoelt.
create temp table test(
pass varchar(20)
);

insert into test(pass) values(md5('mysql sucks'));

Resultaat:
ERROR: value too long for type character varying(20)
SQL status:22001

Toch wel handig die foutmeldingen, of niet dan?
Ja tuurlijk, alsnog als je een keer succesvol met een database connect, hoef je toch niet elke keer te controleren of het gelukt is, lijkt mij. Of is het alsnog beter van wel?

Reageren