Gå til innhold

Har et spørsmål angående forum!


Anbefalte innlegg

Videoannonse
Annonse
Skrevet (endret)

jeg pleier å bruke mysql funksjonen now()

 

altså

mysql_query('INSERT INTO tabell VALUES(0, \'something\', now())');

Endret av grimjoey
Skrevet

$resultat = mysql_query($sql);

Bytt ut den med

$resultat = mysql_query($sql) or die( mysql_error() );

Bruk "or die( mysql_error() );" etter alle spørringer (mysql_query) under utviklingstiden :)

Skrevet (endret)

For å svare på spm ditt php_user; for å hente ut kun et felt lager du en query slik:

 

$result = mysql_query('SELECT topic_id FROM forum_topic WHERE \'something\' = \'something\';');

 

dersom du forventer kun 1 rad:

$row = mysql_fetch_row($result); // $row er et array med alle feltene i raden

$row = $row[0]; // i dette tilfellet er det kun 1 felt altså $row[0]

 

dersom du forventer flere rader kan du legge de i et array:

while($row = mysql_fetch_row($result)) {

$rows[] = $row[0];

}

 

syntaksen: $variabel[] = 'noe';

betyr: lag et array dersom det ikke eksisterer og/eller legg til 'noe'.

 

kan sammenliknes med $string .= 'streng'; som er det samme som $string = $string.'streng';

 

edit: bortsett fra at $string må allerede være laget for å bruke .= syntaks. $rows trenger ikke være laget. og i $rows[] får hver ting du legger til på denne måten sin egen index.

Endret av grimjoey
Skrevet (endret)

Enda en feilmelding:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

 

 

Med denne koden: Hva er feil nå ?

 

<?php

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


# | MYSQL INNSTILLINGER | #
$server = "**";
$dbnavn = "**";
$dbpass = "**";
$dbtable = "**";


# | KOBLER TIL | #
mysql_connect($server, $dbnavn, $dbpass) or die (mysql_error());
mysql_select_db($dbtable) or die (mysql_error());

$topic_id=$_POST['topic_id'];
$topic=$_POST['topic'];
$tut=$_POST['tut'];



$sql = "INSERT INTO forum_topic2(topic_id, topic, tut) VALUES('$topic_id','$topic','$tut'";
$resultat = mysql_query($sql) or die( mysql_error() );

if($resultat) {
echo "Velykket!<br>";
echo "<a href=k.php>Trykk her for å se det nye forumet!</a>";
}
else {
echo "Noe feil skjedde";
}
mysql_close();
}

?>
<form action="<?php echo $_SERVER['php_self']; ?>" method="post">
Tittel:<br />
<input type="text" name="topic_id" /><br />
Forklaring til posten: (tekst under tittelen)<br />
<input type="text" name="topic" /><br />
Post:
<textarea cols="30" rows="10" name="tut"></textarea><br />
<input type="submit" value="Send" name="ok" />
</form>

Endret av php_user
Skrevet

Det ble vist noe krøll med nyhetssystemet også :p Hva er feil nå ? Det er i kode 2 det er noe feil nå trur jeg ?

 

 

Her er feilmeldingen:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/110mb.com/s/u/p/p/o/r/t/-/support-u/htdocs/sider/index.php on line 40

 

 

to koder:

 

1:

<?php

	  ##########################################################
	  #														#
	  # NYHETS SYSTEM AV http://support-u.110mb.com			#
	  # er det noe feil ? Ta kontakt! [email protected]   #
	  #														#
	  ##########################################################

//	  MYSQL DATABASEN:

#		 CREATE TABLE `nyheter` (
#		 tittel` VARCHAR( 255 ) NOT NULL ,
#		 `tekst` LONGTEXT NOT NULL ,
#		 `mail` VARCHAR( 255 ) NOT NULL
#		 ) TYPE = MYISAM;



## MYSQL KONFIGURAJON

$server = "**"; // Din server/host her
$db = "**";			// Mysql Brukernavn
$pass = "**";			   // Mysql Passord
$db2 = "**";		   // Databasen din

// Kobler til

mysql_connect($server, $db, $pass) or die("Kunne ikke koble til mysql serveren/hosten");
mysql_select_db($db2) or die("Fant ikke databasen du har angitt");

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

// Alle feltene = post
$tittel = $_POST['tittel'];
$tekst = $_POST['tekst'];
$mail = $_POST['mail'];

// Litt str_replace
$tekst = str_replace("<","<", $tekst);
$tekst = preg_replace ('/\[b\](.*?)\[\/b\]/is', '<b>$1</b>', $tekst); // Fet skrift
$tekst = preg_replace ('/\[u\](.*?)\[\/u\]/is', '<u>$1</u>', $tekst); // Understreket Skrift
$tekst = preg_replace ('/\[i\](.*?)\[\/i\]/is', '<i>$1</i>', $tekst); // Kursiv skrift
// Link:
$tekst = preg_replace("#\[url=([^\"']+?)\](.+?)\[/url\]#is", "<a href=\"http://$1\">$2</a>", $tekst);


// Sender infoen til databasen:
$sql = "INSERT INTO nyheter(tittel, tekst, mail)VALUES('$tittel','$tekst','$mail')";
$resultat = mysql_query($sql);

if($resultat) {
echo "Velykket<br>";
echo "<META NAME=\"refresh\" content=3;URL=\"http://support-u.110mb.com\">";
}
else {
echo "Det er noe feil med mysql-instillingene dine!";
}
mysql_close();
}
?>

 

 

 

 

2.:

<?php

	  ##########################################################
	  #														#
	  # NYHETS SYSTEM AV http://support-u.110mb.com			#
	  # er det noe feil ? Ta kontakt! [email protected]   #
	  #														#
	  ##########################################################

//	  MYSQL DATABASEN:

#		 CREATE TABLE `nyheter` (
#		 tittel` VARCHAR( 255 ) NOT NULL ,
#		 `tekst` LONGTEXT NOT NULL ,
#		 `mail` VARCHAR( 255 ) NOT NULL
#		 ) TYPE = MYISAM;



## MYSQL KONFIGURAJON

$server = "**"; // Din server/host her
$db = "**";			// Mysql Brukernavn
$pass = "**";			   // Mysql Passord
$db2 = "**";		   // Databasen din
$tbl_navn = "**";			 // Table navn

// Kobler til

mysql_connect($server, $db, $pass) or die("Kunne ikke koble til mysql serveren/hosten");
mysql_select_db($db2) or die("Fant ikke databasen du har angitt");

$sql="SELECT * FROM $tbl_navn ORDER BY id DESC";

$resultat=mysql_query($sql);
?>


<?php
while($rows=mysql_fetch_array($resultat)){ // Start looping table row
?>


  <div class="entry-title"><? echo $rows['tittel']; ?></div>
  <div class="date"><? echo $rows['mail']; ?></div>
  <p><? echo $rows['tekst']; ?></p>
  <p>
<?php
// Exit looping and close connection
}
mysql_close();
?>

Skrevet

Sleng på 'or die(mysql_error())' etter 'mysql_query(...) or die ...

 

 

Merk: 'or die(mysql_error())' skal ikke være der når scriptet er ferdig. Om det skulle oppstå feil og noen ondsinnede hackere ser dette kan det være til stor hjelp for de.

Skrevet (endret)

ALTER TABLE `nyheter` ADD `id` INT( 11 ) NOT NULL FIRST;

 

 

Nå funker det :)

 

Lagd et nyhetssystem :new_woot:

 

 

Men endre nyhet funksjon... Noen som har forslag til hva jeg kan se på da ?

Endret av php_user
Skrevet (endret)

<?php

if (isset($_POST['submit_endre_nyhet'])) {
 $id = (int)$_POST['id']
 $overskrift = $_POST['overskrift'];
 $nyhet = $_POST['nyhet'];
 mysql_query("UPDATE nyheter SET overskrift = \'$overskrift\', nyhet = \'$nyhet\' WHERE id = $id;"); // husk å validere input
} else {

 $nyhetId = $_GET['nyhet'];

 $res = mysql_query('SELECT * FROM nyheter WHERE id = '.(int)$nyhetId.';');
 $array = mysql_fetch_row($result);

 echo "
<form action=\"\" method=\"POST\">
 Id: <input type=\"text\" name=\"id\" value=\"$array[0]\" readonly=\"readonly\"/><br />
 Overskrift: <input type=\"text\" name=\"overskrift\" value=\"$array[1]\" /><br />
 Nyhet: <input type=\"text\" name=\"nyhet\" value=\"$array[2]\" /><br />
 <input type=\"submit\" name=\"submit_endre_nyhet\" value=\"Lagre endring\" />
</form>
";
}

 

kanskje noe slikt. utestet. litt usikker på om jeg har rett syntaks på UPDATE statement.

 

mysql_fetch_row() returnerer et numerert array med alle feltene. så i dette tilfelle forutsetter bruken av $array[x] at du har kun disse feltene i tabellen:

 

id overskrift nyhet

Endret av grimjoey
Skrevet (endret)

Funket ikke :hmm: Skjermen ble helt hvit - Og det ble ikke noe endret i nyheten....

 

 

Kan jeg kansje lage noe ut av denne:??? Er det mulig ??

UPDATE xoops_bb_posts_text
SET post_text=(
REPLACE (post_text,
'morphix.sourceforge.net',
'www.morphix.org'));

Endret av php_user

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...