L
Lukas1468
Guest
Wie diese funktionieren ist mit klar ich weis nur nicht wie ich diese hier einfüge und umsetzte
Gruß Lukas
Gruß Lukas
Lukas1468
Guest
Posting-Frequenz: 14µHz
Hast du dir $_POST['cat'] ausgeben lassen um zu bestätigen, dass die Kategorien nicht übertragen werden? Wenn nein, mach das. Wenn ja ist irgendwas anderes kaputt (weil das was ich bzgl. diesem Schritt sehe korrekt ist).Die Kategorien werden noch nicht übergeben
Weil dein Code das nicht aussagt. Computer sind dumm, sie folgen exakt deinen Anweisungen.und in der Beitrag-Kategorie-Tabelle eingetragen
Wie vorher schon gesagt:ich bekomme das Array der Checkboxen nicht in die Eintragenfunktion
Du kennst (lt. Eigenaussage) Arrays und foreach, du solltest also keinerlei Probleme mit der Umsetzung meines Vorschlages haben.Entweder musst du also in cat_cont() durch das Array gehen oder in deinem letzten else-Zweig vom Eintragen-Code.
Dann sagt dein Code das nicht aus. Du hast für diesen Anwendungsfall noch keinen Code gepostet, also kann ich auch keine weiteren Lösungen vorschlagen. Für das genannte Problem mit ID = 0 habe ich mehrere Ansätze umrissen.die ID des Beitrages wird ebenfalls nicht in die Beitrag-Kategorie-Tabelle eingetragen
Lukas1468
Guest
Posting-Frequenz: 14µHz
Für das genannte Problem mit ID = 0 habe ich mehrere Ansätze umrissen.
Dein Code zeigt zu wenig um die Fehlerquelle eingrenzen zu können. Arbeitest du mit MySQL? Benutzt du Transaktionen? Falls ja, musst du lastInsertId abfragen bevor du den Commit durchführst.
Falls du eine Klasse benutzt und die automatisch für dich nach jedem Query commitet, könntest du (abhängig vom DBMS) bspw. bei MySQL LAST_INSERT_ID() anfragen, obwohl das in Ausnahmefällen zu Fehlern führen könnte.
Lukas1468
Guest
$id_beitrag = $DB_con->lastInsertId();
$cat = $_POST['cat'];
elseif($cat){
foreach($cat as $id_kateg) {
$id_kateg = implode(',', $cat);
}
}
if($quer->cat_cont($id_beitrag, $id_kateg) {
header(Location:getin.php?=true);
}
Posting-Frequenz: 14µHz
foreach($cat as $id_kateg) {
$quer->cat_cont($id_beitrag, $id_kateg);
}
bekommst, wurde cat nicht im POST-Array übermittelt. Das musst du natürlich garantieren bzw. fehlerbehandeln.Undefined index: cat
Lukas1468
Guest
public function query_check() {
$stmt = $this->db->query("SELECT * FROM category");
foreach($stmt as $row) {
echo "<form action='' method='post'>";
echo "<p><input type='checkbox' name='cat[]' value='".$row['cat_id']."'>".$row['cat_rowname']."</p>";
echo "</form>";
}
}
Lukas1468
Guest
Posting-Frequenz: 14µHz
Benutzt du Transaktionen? Falls ja, musst du lastInsertId abfragen bevor du den Commit durchführst.
Falls du eine Klasse benutzt und die automatisch für dich nach jedem Query commitet, könntest du (abhängig vom DBMS) bspw. bei MySQL LAST_INSERT_ID() anfragen, obwohl das in Ausnahmefällen zu Fehlern führen könnte.
Lukas1468
Guest
Posting-Frequenz: 14µHz
Mein Ansatz löst das Problem. Er hat einen Link auf die Dokumentation. Ich weiß wirklich nicht, wie ich es anders formulieren kann.könntest du (abhängig vom DBMS) bspw. bei MySQL LAST_INSERT_ID() anfragen, obwohl das in Ausnahmefällen zu Fehlern führen könnte.
Lukas1468
Guest
die(var_dump($DB_con->lastInsertId()));
tring(1) "0"
SQLSTATE[42000]: Syntax error or access violation: 1064 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 'INSET INTO catgorie_content(id_beitrag, id_kateg) VALUES ('0', '1')' at line 1
Posting-Frequenz: 14µHz
Lukas1468
Guest
public function cat_cont($id_kateg) {
try {
$cat_cont = $this->db->prepare("INSET INTO catgorie_content(id_beitrag, id_kateg) VALUES (:id_beitrag, :id_kateg)");
$cat_cont->bindparam(":id_beitrag", $id_beitrag);
$cat_cont->bindparam(":id_kateg", $id_kateg);
$id_beitrag = $this->db->lastInsertId();
$cat_cont->execute();
return $cat_cont;
} catch (PDOException $e) {
echo $e->getMessage();
}
}
Posting-Frequenz: 14µHz
Lukas1468
Guest
<?php
require_once 'config/dbconfig.php';
session_start();
if(!$user->is_loggedin()!="") {
$user->redirect('login.php');
}
$uname = $_SESSION['user_name'];
$stmt = $DB_con->prepare("SELECT * FROM users WHERE user_name=:uname");
$stmt->execute(array(":uname"=>$uname));
$userRow = $stmt->fetch(PDO::FETCH_ASSOC);
if(isset($_POST["eintragen"])) {
$betreff = trim($_POST['betreff']);
$content = trim($_POST['content']);
$c_mail = trim($_POST['c_mail']);
$s_name = $_SESSION['user_name'];
$cat = $_POST['cat'];
if($betreff == "") {
$error[] = "Bitte geben Sie einen Betreff ein !";
}
elseif($content == "") {
$error[] = "Bitte füllen sie den Textberech aus !";
}
elseif($c_mail == "") {
$error[] = "Bitte geben Sie eine Kontakt Email Adresse ein";
}
elseif(!filter_var($c_mail, FILTER_VALIDATE_EMAIL)) {
$error[] = "Bitte geben Sie eine verfügbare E-Mail Adresse ein !";
}
elseif(strlen($betreff) < 10) {
$error[] = "Der Betreff muss mindestens 10 Zeichen haben !";
}
elseif(strlen($content) < 50) {
$error[] = "Das Textfeld muss mindestens 50 Zeichen haben ";
}
elseif((count($cat) > 3)) {
$error[] = "Bitte nur maximal 3 Kategorien auswähl";
}
elseif((count($cat) == 0)) {
$error[] = "Bitte wählen sie eine Kategorie aus";
}
elseif ($cat) {
foreach($cat as $id_kateg) {
//$query->cat_cont($id_kateg);
}
}
else {
if($query->beitrag($betreff, $content, $s_name, $c_mail)) {
$user->redirect('getin.php?=true');
}
//$user->redirect('getin.php?=true');
}
}
$query->cat_cont($id_beitrag, $id_kateg);
$id_beitrag = $DB_con->lastInsertId();
//die(var_dump($DB_con->lastInsertId()));
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>Schwarzes-Web-Brett</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/ico" href="img/cuw.ico">
<link href="css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<div class="container">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Navigation ein-/ausblenden</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="index.php">Schwarzes Web-Brett</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="index.php">Start</a></li>
<li class="active"><a href="">Anzeige Aufgeben</a></li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<?php error_reporting(0); echo $uname; ?>
<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="dashboard.php">Dashboard</a></li>
<li><a href="profil.php">Profil</a></li>
<li><a href="login.php">Anmelden</a></li>
<li role="separator" class="divider"></li>
<li><a href="logout.php?logout=true">Abmelden</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</div>
<div class="container">
<div class="row clearfix">
<div class="page-header">
<h1 align="center">Neuen Eintrag anlegen</h1>
</div>
<br>
<div class="col-md-6">
<?php
if(isset($error)) {
foreach($error as $error) {
echo "<div class='alert alert-danger'>";
echo "<i class='glyphicon glyphicon-warning-sign'></i> $error";
echo "</div>";
}
}
elseif(isset($_GET['true'])) {
echo "<div class='alert alert-success'>";
echo "<i class='glyphicon glyphicon-ok-sign'></i> Dein Eintrag wurde erstellt <a href='index.php'>hier </a>einsehen";
echo "</div>";
}
?>
<h4>Bitte füllen Sie das gesamte Formular aus !</h4>
<form class="form-horizontal" action="" method="post">
<div class="form-group">
<label for="inputbetreff" class="col-sm-2 controll-label"></label>
<input name="betreff" class="form-control" id="inputbetreff" maxlength="60" placeholder="Betreff min. 10 Zeichen max. 60 Zeichen">
<label for="uname" class="col-sm-2 controll-label"></label>
<input name="uname" class="form-control" id="uname" maxlength="40" placeholder=Nickname:<?php echo " $uname"; ?> disabled>
<label for="c_mail" class="col-sm-2 controll-label"></label>
<input name="c_mail" class="form-control" id="c_mail" maxlength="40" placeholder="Kontakt Email-Adresse">
<label for="inputtext" class="col-sm-2 controll-label"></label>
<textarea cols="50" rows="10" name="content" class="form-control" id="inputtext" maxlength="255" placeholder="Texteingabe min. 50 Zeichen max. 255 Zeichen"></textarea>
<br/>
<button class="btn btn-success btn-block" name="eintragen" type="submit">Neuer Eintrag</button>
<button class="btn btn-danger btn-block" type="submit">Löschen</button>
<br/>
</div>
</div>
<div class="col-md-4 col-md-offset-2">
<h4>Nur maximal drei Kategorien auswählen!</h4>
<br/>
<?php
$getout->query_check();
?>
</form>
</div>
</div>
</div>
<footer class="navbar navbar-inverse navbar-fixed-bottom">
<div class="container">
<p class="text-muted">Schwarzes-Web-Brett</p>
</div>
</footer>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/scripts.js"></script>
</body>
</html>
public function cat_cont($id_kateg, $id_beitrag) {
try {
$cat_cont = $this->db->prepare("INSET INTO catgorie_content(id_beitrag, id_kateg) VALUES (:id_beitrag, :id_kateg)");
$cat_cont->bindparam(":id_beitrag", $id_beitrag);
$cat_cont->bindparam(":id_kateg", $id_kateg);
$cat_cont->execute();
return $cat_cont;
} catch (PDOException $e) {
echo $e->getMessage();
die();
}
}
Posting-Frequenz: 14µHz
elseif ($cat) {
foreach($cat as $id_kateg) {
//$query->cat_cont($id_kateg);
}
}
else {
if($query->beitrag($betreff, $content, $s_name, $c_mail)) {
$user->redirect('getin.php?=true');
}
//$user->redirect('getin.php?=true');
}
else {
if($query->beitrag($betreff, $content, $s_name, $c_mail)) {
$user->redirect('getin.php?=true');
}
foreach($cat as $id_kateg) {
$query->cat_cont($id_beitrag, $id_kateg);
}
}
else {
if($query->beitrag($betreff, $content, $s_name, $c_mail)) {
foreach($cat as $id_kateg) {
$query->cat_cont($id_beitrag, $id_kateg);
}
$user->redirect('getin.php?=true');
}
}
else {
if($query->beitrag($betreff, $content, $s_name, $c_mail)) {
$stmt = $DB_con->prepare("SELECT LAST_INSERT_ID() as letzteid");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$id_beitrag = $row["letzteid"];
foreach($cat as $id_kateg) {
$query->cat_cont($id_beitrag, $id_kateg);
}
$user->redirect('getin.php?=true');
}
}
else {
if($query->beitrag($betreff, $content, $s_name, $c_mail)) {
if($cat) {
$stmt = $DB_con->prepare("SELECT LAST_INSERT_ID() as letzteid");
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$id_beitrag = $row["letzteid"];
foreach($cat as $id_kateg) {
$query->cat_cont($id_beitrag, $id_kateg);
}
}
$user->redirect('getin.php?=true');
}
}
Willkommen auf PSD-Tutorials.de
In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.
Nächster neuer Gratisinhalt
Statistik des Forums