webForumDet fria alternativet

hjälp mig snälla!!!!

PHP

8 svar · 357 visningar · startad av mr.mainline

Medlem sedan feb. 2003777 inlägg
Frågan#1

ska jag ändra något i denna del av koden?

// Skapa koppling mot MySQL
$db_conn = mysql_pconnect($db_host, $db_user, $db_pass);
if ( !$db_conn ) {
die('Kan inte skapa koppling mot MySQL');
}

// Välj databas
if ( !mysql_select_db($db_name) ) {
die('Kan inte välja databas.');
}

jag får inte det att funka om ni kollar på
http://www.freddeholm.com/publiceringssystem.php
så när jag ska lägga till ett inlägg och klickar på länken så händer ingenting.

Medlem sedan mars 20025 907 inlägg
#2

Du får nog visa mer kod du. Med koden du visar så skapar du en anslutning till databasen, men du gör inget mer.

Mer kod tack!
.. och bättre rubriksättning

Medlem sedan feb. 2003777 inlägg
#3

ok,här kommer allt det andra.
<?php
// Inloggningsuppgifter för databasen, skriv in dina egna uppgifter här
$db_user = '*******'; // Användarnamn
$db_pass = '*******'; // Lösenord
$db_host = 'localhost'; // Serverns namn (räcker ofta med bara localhost)
$db_name = '*******'; // Namn på databasen

// Titel på sidan
$page_title = 'PHP;

// Skapa koppling mot MySQL
$db_conn = mysql_pconnect($db_host, $db_user, $db_pass);
if ( !$db_conn ) {
die('Kan inte skapa koppling mot MySQL');
}

// Välj databas
if ( !mysql_select_db($db_name) ) {
die('Kan inte välja databas.');
}

// Visa formulär för nytt inlägg eller uppdatering av inlägg
function show_form($data=array()) {
global $PHP_SELF;
$mode = sizeof($data) > 0 ? 'Uppdatera' : 'Spara';
?><html><body>
<form action="<?php echo $PHP_SELF ?>" method="post">
<input type="hidden" name="id" value="<?php echo !empty($data['id']) ? $data['id'] : '' ?>">
<table>
<tr>
<th align="left">Rubrik</th>
<td><input name="header" type="text" value="<?php echo !empty($data['header']) ? $data['header'] : '' ?>"></td>
</tr>
<tr>
<th align="left" valign="top">Brödtext</th>
<td><textarea name="body" cols="50" rows="8"><?php echo !empty($data['body']) ? $data['body'] : '' ?></textarea></td>
</tr>
<tr>
<td colspan="2" align="right"><input name="mode" type="submit" value="<?php echo $mode ?>"></td>
</tr>
</table>
</form>
<?php
}

// Hämta och lista inlägg
function list_items() {
global $PHP_SELF;

// Hämta id, rubrik, brödtext och datum för samtliga inlägg i databasen. Sortera i
// fallande datumordning.
$sql = 'SELECT id, header, body, inserted FROM items ORDER BY inserted DESC';
if ( !($result = mysql_query($sql)) ) {
die('Kan inte lista inlägg i databasen! ' . mysql_error() . ' : ' . mysql_errno());
}

// Visa länk för att lägga till ett nytt inlägg
echo '<a href="'.$PHP_SELF.'?add=1">Nytt inlägg</a><br>';

// Kontrollera antalet rader
if ( mysql_num_rows($result) < 1) {
die('Kan inte hitta några inlägg i databasen!');
}
?>
<table border="0">
<tr>
<th>Rubrik</th>
<th>Inlagd</th>
<th> </th>
</tr>
<?php
// Hämta en rad i taget från databasen, fortsätt tills inga fler rader finns att hämta
while ( $row = mysql_fetch_array($result) ) {
$view_url = $PHP_SELF . '?view=' . $row['id']; // URL för att titta på ett visst inlägg
$edit_url = $PHP_SELF . '?edit=' . $row['id']; // URL för att redigera ett visst inlägg
$delete_url = $PHP_SELF . '?delete=' . $row['id']; // URL för att ta bort ett visst inlägg
?>
<tr>
<td><?php echo $row['header'] ?></td>
<td><?php echo $row['inserted'] ?></td>
<td><a href="<?php echo $view_url ?>">visa</a> |
<a href="<?php echo $edit_url ?>">redigera</a> |
<a href="<?php echo $delete_url ?>">radera</a></td>
</tr>
<?php
}
echo "</table>";
}

// Visa inlägg
function view_item($data) {
global $PHP_SELF;
echo '<h4>'.htmlentities($data['header']).' ('.$data['inserted'].')</h4>';
echo '<p>'.nl2br(htmlspecialchars($data['body'])).'</p>';
echo '<a href="'.$PHP_SELF.'">lista</a>';
}

// Hämta ett inlägg från databasen
function fetch_item($id) {
$sql = 'SELECT id, header, body, inserted FROM items WHERE id='.$id;
if ( !($result = mysql_query($sql)) ) {
die('Kan inte hämta inlägg från databasen! ' . mysql_error() . ' : ' . mysql_errno());
}

if ( mysql_num_rows($result) != 1) {
die('Kan inte hitta det valda inlägget i databasen!');
}

$row = mysql_fetch_array($result);

return $row;
}

// Lägg in ett nytt inlägg i databasen
function add_item($header, $body) {
$sql = "INSERT INTO items (header, body, inserted) VALUES ('$header', '$body', NOW())";
if ( !mysql_query($sql) ) {
die('Kan inte lägga in data i databasen! ' . mysql_error() . ' : ' . mysql_errno());
}
}

// Uppdatera ett inlägg i databasen
function update_item($id, $header, $body) {
$sql = "UPDATE items SET header='$header', body='$body' WHERE id=$id";
if ( !mysql_query($sql) ) {
die('Kan inte uppdatera inlägget! ' . mysql_error() . ' : ' . mysql_errno());
}
}

// Ta bort ett inlägg från databasen
function delete_item($id) {
$sql = 'DELETE FROM items WHERE id='.$id;
if ( !mysql_query($sql) ) {
die('Kan inte radera inlägget! ' . mysql_error() . ' : ' . mysql_errno());
}
}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<head>
<title><?php echo $page_title ?></title>
</head>

<?php

// Visa formulär om någon har klickat på länken för att
// lägga in ett nytt inlägg.
if ( isset($add) ) {
show_form();

// Om någon har valt att visa ett inlägg, hämta det
// från databasen och visa på skärmen.
} elseif ( isset($view) ) {
$item = fetch_item($view);
view_item($item);

// När någon väljer att redigera ett inlägg, hämta det
// från databasen och visa det i formuläret.
} elseif ( isset($edit) ) {
$item = fetch_item($edit);
show_form($item);

} else {
// Ta bort inlägget om något klickat på radera-länken.
if ( isset($delete) ) {
delete_item($delete);

// Spara inlägget i databasen när någon klickar på knappen Spara.
} elseif ( isset($mode) && $mode == 'Spara' ) {
add_item($header, $body);

// Uppdatera inlägget i databasen när någon klickar på knappen Uppdatera.
} elseif ( isset($mode) && $mode == 'Uppdatera' ) {
update_item($id, $header, $body);
}

// Visa en lista över inlägg efter ovanstående tre funktioner eller när
// inget val har gjorts av användaren.
list_items();
}

?>

Medlem sedan mars 20024 456 inlägg
#4

Red/ Ok, såg inte att du han visa koden, Tog bort mitt inlägg...

Medlem sedan mars 20025 907 inlägg
#5

Tippar på att register_globals är avstängt på servern!
Vad händer om du byter ut

if ( isset($add) ) {
show_form();

mot

if ( isset($_GET['add']) ) {
show_form();

?

Medlem sedan feb. 2003777 inlägg
#6

Jo nu fick jag upp formuläret,och efter jag sparat så tömdes formuläret,var ser jag resultatet? av var jag skrev??

Medlem sedan mars 20025 907 inlägg
#7

Ändra följande kodstycke:

<?php

// Visa formulär om någon har klickat på länken för att
// lägga in ett nytt inlägg.
if ( isset($add) ) {
show_form();

// Om någon har valt att visa ett inlägg, hämta det
// från databasen och visa på skärmen.
} elseif ( isset($view) ) {
$item = fetch_item($view);
view_item($item);

// När någon väljer att redigera ett inlägg, hämta det
// från databasen och visa det i formuläret.
} elseif ( isset($edit) ) {
$item = fetch_item($edit);
show_form($item);

} else {
// Ta bort inlägget om något klickat på radera-länken.
if ( isset($delete) ) {
delete_item($delete);

// Spara inlägget i databasen när någon klickar på knappen Spara.
} elseif ( isset($mode) && $mode == 'Spara' ) {
add_item($header, $body);

// Uppdatera inlägget i databasen när någon klickar på knappen Uppdatera.
} elseif ( isset($mode) && $mode == 'Uppdatera' ) {
update_item($id, $header, $body);
}

// Visa en lista över inlägg efter ovanstående tre funktioner eller när
// inget val har gjorts av användaren.
list_items();
}

?>

till

<?php

// Visa formulär om någon har klickat på länken för att
// lägga in ett nytt inlägg.
if ( isset($_GET['add']) ) {
show_form();

// Om någon har valt att visa ett inlägg, hämta det
// från databasen och visa på skärmen.
} elseif ( isset($_GET['view']) ) {
$item = fetch_item($_GET['view']);
view_item($item);

// När någon väljer att redigera ett inlägg, hämta det
// från databasen och visa det i formuläret.
} elseif ( isset($_GET['edit']) ) {
$item = fetch_item($_GET['edit']);
show_form($item);

} else {
// Ta bort inlägget om något klickat på radera-länken.
if ( isset($_GET['delete']) ) {
delete_item($_GET['delete']);

// Spara inlägget i databasen när någon klickar på knappen Spara.
} elseif ( isset($_GET['mode']) && $_GET['mode'] == 'Spara' ) {
add_item($_POST['header'], $_POST['body']);

// Uppdatera inlägget i databasen när någon klickar på knappen Uppdatera.
} elseif ( isset($_GET['mode']) && $_GET['mode'] == 'Uppdatera' ) {
update_item($_POST['id'], $_POST['header'], $_POST['body']);
}

// Visa en lista över inlägg efter ovanstående tre funktioner eller när
// inget val har gjorts av användaren.
list_items();
}

?>
Medlem sedan feb. 2003777 inlägg
#8

nopp fortfarande samma, måste jag inte ändra koden någonstans så att databasen vet vilken tabell som gäller?

Medlem sedan mars 20025 907 inlägg
#9

Byt ut raden $PHP_SELF till $_SERVER["PHP_SELF"] på ett antal ställen. Sen byter du ut $_GET['mode'] till $_POST['mode'] i min kod ovan. Sen är det säkert något annat fel också, men det lär du ju upptäcka.

/r Det står redan vilken tabell datan ska hämtas från (items).

261 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)