Jag har ingen lösning på dittproblem, men jag undrar fortfarande varför du skapar en massa kolumner i databasen. Det verkar - och du får ursäkta ordvalet - verkligen tokigt.
mvh
Databaser & SQLur Databashanterare & SQL
5 svar · 245 visningar · startad av Web-Tor
Har en sida som dumpar en MySQL-databas på en HTML-sida. Efter att jag skapat ett stort antal kolumner i databasen så får jag ett felmeddelande på sidan:
Database dbSaab
Warning: Supplied argument is not a valid MySQL result resource in C:\Inetpub\wwwroot\dump.php on line 25
Om jag sedan väntar ett par minuter och uppdaterar sidan så får jag inga felmeddelande.
Koden runt linje 25 är:
for ($i=0; $i < $num_tables; $i++) {
$arr_tablenames[$i] = mysql_tablename($tables, $i);
$arr_num_fields[$i] = mysql_num_fields(mysql_db_query($dbname, "select * from $arr_tablenames[$i]", $id_link));
}
Hur kommer det sig att felet försvinner efter ett tag?
/Tor
PS. Kollar jag på databasen via kommandoprompten så ser allt bra ut. DS.
------------------
TorWeb
-------------------
[Redigerat av Web-Tor den 10 nov 2000]
Jag har ingen lösning på dittproblem, men jag undrar fortfarande varför du skapar en massa kolumner i databasen. Det verkar - och du får ursäkta ordvalet - verkligen tokigt.
mvh
Vad är det för tokigt med att skapa kolumner i en databas? Det är ju så man får plats med informationen i den, eller?
I detta fall är det för att användaren, som representerar en viss avdelning, skall kunna rapportera procentsatser för ett antal veckor. Eftersom jag inte vet vilken avdelning personen jobbar på (och kolumnen måste ha det namnet) så kan jag inte skapa kolumnerna i förväg. Antalet veckor (och därmed antalet kolumner) bestäms också av användaren.
Klarnar det…? :l
/Tor
------------------
TorWeb
-------------------
Självklart ska man skapa kolumner för att lagra data, men själva kolumnerna/tabellerna ska inte vara ett sätt att lagra och organisera data. Man ska inte generalisera, men tabeller ska egentligen bara skapas när man skapar själva databasen, inte som ett resultat av dynamisk programkörning. Man riskerar databasens säkerhet och prestanda genom att bolla med den dynamiskt, och det ger också en massa programmeringstekniskt strul i onödan.
Om du använder kolumnnamnet för att hålla reda vilken avdelning och vecka det är så kan du lika gärna ha dessa värden som kolumner i en tabell.
I stället för ...
SELECT blabla from USA2345 ......
så blir det
SELECT blabla from tabellen WHERE AVD='USA' AND THEWEEK=2345
Detta kommer att bli snabbare, det blir lättare att söka, mindre programmeringsproblem, lättare att göra summeringar etc.
mvh
[Redigerat av emission den 21 nov 2000]
Gött! ;)