Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  11 834
Hei! Driver på med et lite program til en nettside som skal publisere nyheter og slikt med ingress og hele pakka ved hjelp av mysql. Har funnet eksempel i webprogrammering i PHP, og tenkte å lage min egne versjon av det, særlig siden jeg ikke trengte alt som sto der.

Det som er problemet, er at regstrer.php (der man skriver inn nyhet og alt) ikke vil skrive noe til tabellen min i databasen!

http://pastebin.com/m38228f72 koden til registrer.php

Kan noen hjelpe meg?:P har brukt 3 timer på dette nå, men det blir liksom så mye at jeg detter ut midt inni på et eller annet tidspunkt:P

I tabellen "nyheter" har jeg følgende rows:
nyhetsid (auto_increment og primary)
title - text
ingress - text
nyheten - text
lenke_mer_info - varchar(100)
bildenavn - varchar(20)
dato_innlegging - timestamp
Du har rett og slett en skrivefeil, som gjør at koden din bestandig returnerer 'true' på en feilmelding.

Linje 57: $feil = fale;

Skriver du om den til '$feil = false;' så ordner det seg.
Sist endret av s1gh; 25. februar 2009 kl. 01:06.
AH lol! takk

Ja, det funker som bare det nå! Har et par andre problemer jeg trenger tips til; visning av eventuelt bilde og timestampen. Har prøvd flere versjoner av echo "<img src=" . $rad['bildefil'] . ">";, men uten hell; den prøver å vise et bilde, men viser ingen ting! timestampen viser bare 00:00:00 0000-00-00 uansett hva jeg gjør, men den klarer jeg og fikse selv
Sist endret av cromoglic; 25. februar 2009 kl. 09:33. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
▼ ... noen uker senere ... ▼
Trådstarter

Kode

$sql = "SELECT * FROM nyheter WHERE dato_innlegging <= NOW()
	ORDER BY dato_innlegging DESC, nyhetsid DESC";
	
$result = mysql_query($sql);
$antall = mysql_num_rows($result);
for ($i = 0; $i<$antall; $i++) {
	$rad = mysql_fetch_array($result);
	$nyhetsid = $rad['nyhetsid'];
	$query = "SELECT * FROM nyheter WHERE nyhetsid = $nyhetsid";
	$run = mysql_query($query);
	$antallet = mysql_num_rows($run);
	if(!$run) {
		die(mysql_error());
	} else {
		$raden = mysql_fetch_array($run);
		if($_GET['id'] == $nyhetsid) {
			echo "<hr />";
			echo "<h1>{$raden['title']} - {$raden['dato_innlegging']}</h1>";
			echo "<br />";
			echo $raden['ingress'] . " " . $raden['nyheten'];
			die();
		} else {
			die("Fant ikke nyhet. Feil?");
		}
	}
}
noen som kan hjelpe meg å finne feil der? Det funker på den siste nyheten, men alle de andre får "Fant ikke nyhet. Feil?. Poenget er altså at om en trykker les mer på en av nyhetene, skal kun nyheten en har trykt les mer på vises, ikke alle sammen!
Du har både variabelen "$rad" og "$raden". Skal de begge være der?
Trådstarter
Den het $rad først,men jeg tenkte kanskje det skapte trøbbel, så jeg ga den nytt navn.. Men den er vel neppe problemet, vel?
Ah, så ikke før nå at du hadde funksjoner på begge variablene! Da kan ikke jeg hjelpe.
Trådstarter
Hehe, okay Vel, prøvde meg på å skrive den om litt, med et litt interessant resultat.

Kode

$result = mysql_query($sql);
$antall = mysql_num_rows($result);
for ($i = 0; $i<$antall; $i++) {
	$rad = mysql_fetch_array($result);
	$nyhetsid = $rad['nyhetsid'];
	if(!$run) {
		die(mysql_error());
	} else {
		if(isset($_GET['id'])) {
			$nyhetsid = $_GET['id'];
			$query = "SELECT * FROM nyheter WHERE nyhetsid = $nyhetsid";
			$run = mysql_query($query);
			$raden = mysql_fetch_array($run);
			echo "<hr />";
			echo "<h1>{$raden['title']} - {$raden['dato_innlegging']}</h1>";
			echo "<br />";
			echo $raden['ingress'] . " " . $raden['nyheten'];
			die();
		} else {
			die("Fant ikke nyhet. Feil?");
		}
	}
}
slik ser den ut nå, vet det er mye rot og mye unødvendig her, men nå er problemet at den ikke viser noen nyhet whatsoever på noen av linkene - får opp en blank side. Vet ikke om jeg skal feire eller sørge, men kan noen hjelpe til?

Kode

<?php
if(!$run) {
    die(mysql_error());
}
?>
Hvor kommer $run fra? Jeg tipper feilen er at den ikke finner $run (som ikke er vist i koden over) og at du derfor dreper scriptet med en mysql_error. Grunnen til at du får en blank side kan være at du ikke har noen feilmelding i mysql, og at den derfor dreper siden med en blank beskjed. (Det er med andre ord ingen sammenheng mellom $run og mysql_error())
Trådstarter
HAHA, det var den run-greia! - Den kom fra noe jeg prøvde før, og så hadde jeg glemt og fjerne den!

Du er et geni, takk skal du ha! Har du lyst å hjelpe meg med en siste ting med dette nyhetsscriptet? har et lite problem med slettefunksjonen, skjønner du...

Problemet er at når jeg går på filen for endring og/eller sletting av nyheter, har jeg laget et system som viser ingress, tittel og publiseringsdato på nyhetene i en tabell, og en slettefunksjon for hver, men slettefunksjonen funker ikke! Jeg får ingen errors, ennå jeg har satt die(); til die(mysql_error());... Får "nyheten ble sletter, ca. som satt i koden... Vel, her er en pastebin-link til koden: http://pastebin.com/m5c92b09

Kode

$run = mysql_query($query);
På linje 42, hvor får du $query fra?
Lite kontroversiell
ticks's Avatar
Vel, for det første er ikke $query satt når denne snutten kommer:

Kode

		$run = mysql_query($query);
		if(!$run) {
			die(mysql_error());
		}
		else {
Du skal nok endre det til $q, så skal det fungere. Til neste gang råder jeg deg til å faktisk lese gjennom koden din. De fleste feilene du opplever og poster om her er små bagateller...

EDIT: For sein.
Sist endret av ticks; 23. mars 2009 kl. 18:16.