Kom-pa-TI-bilitet
Problem med PHP/MySQL
Lägg till följande snutt direkt efter <?php:
error_reporting(E_ALL);
ini_set('display_errors', '1');
Det bör göra att du får ett meddelande med vad som går fel.
edit: jag tror du ska ha ett : efter ditt while-statement.
Det var ; i stället för : som ställde till det! Tack för hjälpen!
Och så fort det går bra så blir det problem igen...
När jag kör index-sidan i webbläsaren (där alla poster visas) så dupliceras "body"-delen som visar själva posten. Den visas både med en länk som består av två punkter som ska bli en "läs mer", detta är som jag vill ha det och även som en full post, vilket inte är meningen. Titeln på posten visas som den ska däremot, dvs en gång. Har gått igenom den flera gånger men ser inte vad som är fel.
Koden ser ut såhär:
<?php
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
//connect to database
include('includes/db_connect.php');
$query = $db->prepare("SELECT post_id, title, LEFT(body, 100) AS body, category FROM posts INNER JOIN categories ON categories.category_id=posts.category_id order by post_id desc");
$query->execute();
$query->bind_result($post_id, $title, $body, $category);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<style>
#container
{
margin: auto;
width: 500px;
}
</style>
<body>
<div id="container">
<?php
while($query->fetch()):
$lastspace = strrpos($body, ' ');
?>
<article>
<h2><?php echo $title?></h2>
<p><?php echo substr($body, 0, $lastspace)."<a href='post.php?id=$post_id'>..</a>"?></p>
<p><?php echo $body?></p>
<p>Category: <?php echo $category?></p>
</article>
<?php endwhile?>
</div>
</body>
</html>
Och så fort det går bra så blir det problem igen...
När jag kör index-sidan i webbläsaren (där alla poster visas) så dupliceras "body"-delen som visar själva posten. Den visas både med en länk som består av två punkter som ska bli en "läs mer", detta är som jag vill ha det och även som en full post, vilket inte är meningen. Titeln på posten visas som den ska däremot, dvs en gång. Har gått igenom den flera gånger men ser inte vad som är fel.
Om du inte vill visa hela posten så låt bli att eka ut den genom att ta bort raden <p><?php echo $body?></p>
Kom-pa-TI-bilitet
Tittade på det men tänkte att jag ville visa body-delen och att det berodde på något annat. Det gjorde det inte och det fungerar fint när jag tog bort raden.
Har nu stött på problem igen. På sidan som visar varje enskild post ska det gå att lämna kommentarer, jag får meddelande att kommentaren är mottagen när jag skriver något i formuläret. Men jag kan inte visa kommentarerna på sidan, de läggs heller inte till i databastabellen. Något tips på vad jag kan ha missat?
Koden ser ut såhär:
<?php
if(!isset($_GET['id'])) {
header('Location: index.php');
exit();
}else{
$id = $_GET['id'];
}
include('includes/db_connect.php');
if(!is_numeric($id)) {
header('Location: index.php');
}
$sql = "SELECT title, body FROM posts WHERE post_id='$id'";
$query = $db->query($sql);
if($query->num_rows !=1) {
header('Location: index.php');
exit();
}
if(isset($_POST['submit'])) {
$email = $_POST['email'];
$name = $_POST['name'];
$comment = $_POST['comment'];
if($email && $name && $comment) {
$email = $db->real_escape_string($email);
$name = $db->real_escape_string($name);
$id = $db->real_escape_string($id);
$comment = $db->real_escape_string($comment);
if($addComment = $db->prepare("INSERT INTO comments(name, post_id, email_add, comment) VALUES (?,?,?,?)")) {
$addComment->bind_param('aaaa', $id, $name, $email, $comment);
$addComment->execute();
echo "Comment was added";
$addComment->close();
}else{
echo "Error";
}
}else{
echo "Error";
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div id="container">
<div id="post">
<?php
$row = $query->fetch_object();
echo "<h2>".$row->title."</h2>";
echo "<p>".$row->body."</p>";
?>
</div>
<hr />
<div id="addcomments">
<form action="<?php echo $_SERVER['PHP_SELF']."?id=$id"?>" method="post">
<div>
<label>Email</label><input type="text" name="email" />
</div>
<div>
<label>Name</label><input type="text" name="name" />
</div>
<div>
<label>Comment</label><textarea name="comment"></textarea>
</div>
<input type="submit" name="submit" value="Submit" />
</form>
</div>
<div id="comments">
<?php
$query = $db->query("SELECT * FROM comments WHERE post_id='$id' ORDER BY comment_id DESC");
while($row = $query->fetch_object()):
?>
<div>
<h5><?php echo $name?></h5>
<blockquote><?php echo $row->comment?></blockquote>
</div>
<?php endwhile;?>
</div>
</div>
</body>
</html>
Är osäker på den första if($addComment-delen. Kan det vara där något är fel?
- Idag Sony läcker uppgifter i rättegång – så stort är Call of Duty 2
- Igår Nvidia: "Energieffektiva RTX 4060 sparar hundralappar" 36
- Igår MSI Geforce RTX 4060 Ventus 2X OC – bra prestanda vid 1080p men medioker kylare 45
- Igår Noctua släpper monteringsram för "deliddade" Ryzen 7000-processorer 15
- Igår Nvidias nästa arkitektur för Geforce kommer år 2025 58
- Igår Veckans fråga: Vilket operativsystem föredrar du? 81
- Igår Bilar med smarta inslag ger fler dumma fel 58
- 27 / 6 Telekombranschen: "Smarta glasögon ersätter telefoner inom fem år" 88
- 26 / 6 Lastpass-användare rasar – kan inte logga in 59
- 26 / 6 Inet frågar SweClockers – Vad skulle du vilja förbättra på Inet.se? 53
- Bildvisnings program6
- Dator från Inet (30k~)1
- Kommer flytta till stan och mitt wifi kommer säkert synas av hundratals människor varje dag. Vilken router ska jag köpa och hur ska den ställas in?7
- Vilken serie såg du senast?1253
- Fästingar.3
- Nytt chassi, Kolink Void RGB Midi Tower95
- Fel post (dödsbo)10
- Veckans fråga: Vilket operativsystem föredrar du?81
- Wordle på svenska - ordlig.se5942
- Vilken YH-Utbildning rekommenderar ni att tacka JA till?0
- Säljes LG 27'' UltraGear 27GP950 4K Nano IPS 160 Hz HDMI 2.1
- Säljes Star Wars Jedi AMD kod
- Säljes Trasig Xiaomi Mi Electric Scooter (M365) Svart
- Säljes 5800x3D + x570 Meg Unify + be quiet! Dark Rock Slim
- Säljes AMD ASUS DUAL RX6700XT
- Säljes Dell OptiPlex 7010
- Säljes Datordelar: i5 9600k + 1070 GTX mm.
- Säljes 1080 TI | Vattenblock | 1TB SSD | Apple Watch 4 Stainless | Hörlurar | Mikrofon
- Säljes Intressekoll: Xbox Series S 512Gb samt Switch Oled 64Gb Vit
- Säljes Gamingdator RTX 3090, i9-10900K, 32GB ram
- Sony läcker uppgifter i rättegång – så stort är Call of Duty3
- Nvidia: "Energieffektiva RTX 4060 sparar hundralappar"36
- MSI Geforce RTX 4060 Ventus 2X OC – bra prestanda vid 1080p men medioker kylare45
- Veckans fråga: Vilket operativsystem föredrar du?81
- Bilar med smarta inslag ger fler dumma fel58
- Noctua släpper monteringsram för "deliddade" Ryzen 7000-processorer15
- Nvidias nästa arkitektur för Geforce kommer år 202558
- Microsoft vill strömma Windows från molnet72
- Starfield utvecklas med AMD:s välsignelse150
- Telekombranschen: "Smarta glasögon ersätter telefoner inom fem år"88
Externa nyheter
Spelnyheter från FZ
- Över tre miljoner exemplar av Final Fantasy XVI har skeppats och sålts idag
- Sony råkar avslöja spelbudgetar och annat på grund av dålig märkpenna idag
- Alan Wake och CoD: Kallt krig snart på PS Plus igår
- Red Dead Redemption åldersmärkt igen i Korea – det spekuleras i remaster igår
- Fallout London flyttas för att slippa Starfield-konkurrensen igår