webForumDet fria alternativet

Hjälp med kunskapsbank

PHP

25 svar · 697 visningar · startad av addeweb · sida 2 av 2

Frågan, av addeweb

Hej! Jag vet inte om det går att få hjälp i det här forumet men jag försöker. Har kört fast med en kunskapsbank. Förutom söksidan som fungerar helt perfekt, så finns det en administrationssida där man som kan hantera rubriker som finns i banken. Det finns också en förslagssida med inlämnade förslag från medlemmar som fyller i ett formulär på en annan sida. Administrationssidan fungerar bra men för

Läs frågan i sin helhet →
Medlem sedan jan. 2004216 inlägg
#21

Jag har provat utan hakparenteser som du föreslog men tyvärr fungerar det inte. Det verkar inte spela någon roll om man använder hakparenteser eller inte.

Medlem sedan nov. 20014 054 inlägg
#22

addeweb skrev:

Jag har provat utan hakparenteser som du föreslog men tyvärr fungerar det inte. Det verkar inte spela någon roll om man använder hakparenteser eller inte.

oh oh.. då var det okey med hakparenteser i PHP! :)

hmm.. skumt.. så den gör aldrig updaten i databasen .. :l .. hmm.. skummeliskumm.. tänka sig att det kan vara ett litet sablars fel i koden.. som gör att man kan bli galen! :)

Medlem sedan jan. 2004216 inlägg
#23

Ja, det är hopplöst. Om man tittar på sidan admin.php i
tidigare inlägg som använder hakparenteser i formulär-taggarna
och fungerar bra, så borde det också funka med förslagssidan
men tyvärr gör det inte. Problemet är nog SQL-
frågorna "update....set". Ändrar man manuellt i själva databasen
med Enterprise Manager, dvs sätter en 1:a för en rad i validate-
och deleteit-kolumnerna, så fungerar det att godkänna eller ta
bort samma rad på förslagssidan.

Så här ser det ut i källkoden till filen suggestions.php som
man öppnar i webbläsaren:

Godkänna: <input type="checkbox" name="32" value="1">
<input type="hidden" name="ids" value="32"><br>
Ta bort: <input type="checkbox" name="delete32" value="1">
<input type="hidden" name="deleteids" value="delete32">
  
Godkänna: <input type="checkbox" name="33" value="1">
<input type="hidden" name="ids" value="33"><br>
Ta bort: <input type="checkbox" name="delete33" value="1">
<input type="hidden" name="deleteids" value="delete33">
Medlem sedan jan. 2004216 inlägg
#24

Godkännande och borttag av förslag fungerar. Del av koden nedan:

if(isset($_POST['ids'])){

			$ids_set = implode(", ", $_POST['ids']);
			mssql_query("UPDATE forslag SET validate = 1 WHERE id IN ($ids_set)");
			
			if(isset($_POST['deleteids'])) {
			
			$deleteids_set = implode(", ", $_POST['deleteids']);
			mssql_query("UPDATE forslag SET deleteit = 1 WHERE id IN ($deleteids_set)");

//  Hämta rubriker, beskr från forslag-tabellen och som har validate = 1.
				
				$result = mssql_query("SELECT rubrik, beskr FROM forslag WHERE validate=1");
				while($row = mssql_fetch_array($result)){
				$rubrik = $row['rubrik'];
				$beskr = $row['beskr'];
				
				// Lägga in godkända rubriker med ev beskrivning i kunskapsbanken.
				$result = mssql_query("INSERT INTO kunskapsbank (rubrik,beskr) VALUES('$rubrik', '$beskr')")
				or die("Att lägga in rubriker i banken fungerar ej!");

// Efter dessa rubriker har lagts in i banken, tas de bort från listan
				// ( förslagen markerade för radering raderas också)
				$result=mssql_query("DELETE FROM forslag  WHERE validate=\"1\" OR deleteit=1")
				or die("Att ta bort eller godkänna rubriker fungerar ej!");

En skillnad mot förut är att en likadan rubrik som redan finns i kunskapsbanken inte ersätts av den nya, det innebär alltså att det blir kopior i banken istället. Kanske det är en fördel att administratören slipper kolla först om likadana rubriker finns i banken och kan slå ihop dessa till en enda rubrik. Men om man föredrar det som var förut, hur gör man då? Jag hade REPLACE INTO förut men som inte gick bra ihop med MSSQL. Kanske oviktig i nuläget när det fungerar med godkännande och borttag men jag frågar ändå.

Medlem sedan nov. 20014 054 inlägg
#25

finemang! :)

Medlem sedan jan. 2004216 inlägg
#26

Vill bara avsluta den här tråden med att jag har kommit på en vettig lösning på problemet med kopior i banken. Lösningen är att ha ytterligare ett formulär i banken för den som vill komplettera rubriken med beskrivning. Ett formulär för nya rubriker finns redan. Om rubriken saknar beskrivning, blir rubriken en länkrubrik som går till formuläret med samma rubrik redan ifylld, annars en vanlig rubrik. När adminstratören godkänner rubriken som fått sin beskrivning, då utförs en UPDATE SET-fråga istället för INSERT.

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)