seamonsterMedlem sedan maj 200852 inlägg
Hejsan. Håller på att lära mig SQLite just nu, men har lite problem.
Med SQLiteManager har jag skapat databasen 'domination' och tablet 'Havsmonstret'.

Sedan har jag en php fil med följande kod:
<?php
$dbhandle = sqlite_open('sqlitedb');
$result = sqlite_array_query($dbhandle, 'SELECT kill FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
echo $result
?>
Det är vad jag har försökt luska ut. Nu när jag sedan kör detta scriptet får jag ett error;
Warning: sqlite_query(): no such table: Havsmonstret in ***PATH*** on line 3
Vad är det jag har gjort för fel? Tablet finns ju faktiskt.
/Seamonster
Peter SMedlem sedan dec. 20025 484 inlägg
Det ser inte ut som att du öppnar någon anslutning mot "domination"; snarare ansluter du mot någonting som heter "sqlitedb".
seamonsterMedlem sedan maj 200852 inlägg
Du har helt rätt... Varför såg jag inte det?
Nu får jag ett annat svar;
"Resource id #3 "
Varför det? 'kill' har valuet 255...
Peter SMedlem sedan dec. 20025 484 inlägg
När får du det meddelandet?
seamonsterMedlem sedan maj 200852 inlägg
När jag kör php filen i Firefox.
macwizMedlem sedan sep. 200811 inlägg
Du får värdet på hela array:n, inte på innehållet i den.
Peter SMedlem sedan dec. 20025 484 inlägg
Precis, du får använda t.ex. $result['kill'] när du skriver ut värdet (dock kan det vara bra att innan göra någon typ av koll för huruvida något resultat faktiskt returnerades).
seamonsterMedlem sedan maj 200852 inlägg
Okej. En liten updatering;
På koden:
<?php
$dbhandle = sqlite_open('domination');
$result = sqlite_array_query($dbhandle, 'SELECT * FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
echo $result
?>
får jag svaret: "Array".
Om jag lägger till ['kill'] på $result får jag ett helt blankt svar. Inget.
Det verkar dock inte som jag får kontakt med databasen... Hur använder jag 'or die' och error message?
drewMedlem sedan mars 2007748 inlägg
Testa
$dbhandle = sqlite_open('domination') or die(sqlite_error_string());
SoMeOnEMedlem sedan nov. 200294 inlägg
Du saknar en loop:
<?php
$dbhandle = sqlite_open('domination') or die(sqlite_error_string());
$result = sqlite_array_query($dbhandle, 'SELECT * FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
foreach ($result as $entry) {
echo $entry['kill']."\n";
}
?>
seamonsterMedlem sedan maj 200852 inlägg
Yah. Nu funkade det.
Dock funkar det inte riktigt som det är tänkt, den koden echoar:
"657 255 255 255 255 255 "
Valuet av kill är "255". De andra valuesen i databasen har 555, 755 och 1055.
SoMeOnEMedlem sedan nov. 200294 inlägg
Testa att dumpa arrayen med var_dump();
<?php
$dbhandle = sqlite_open('domination') or die(sqlite_error_string());
$result = sqlite_array_query($dbhandle, 'SELECT * FROM Havsmonstret LIMIT 0, 20', SQLITE_ASSOC);
sqlite_close($dbhandle);
var_dump($result);
?>
kolla sedan på "vissa källa" på sidan så står det allt vad arrayen innehåller. Ifall det ser fel ut där är det antagligen något fel utanför php, att du har gjort något fel i databasen eller i själva frågan. Jag har aldrig använt sqlite så kan också vara så att det skiljer sig på något sätt från MySql som inte jag känner till.