PHP / MySQL Problem

01/18/2013 09:03 CracK-#1
Problem gelöst, danke an douside!
01/18/2013 09:26 douside#2
Versuche Folgendes:

PHP Code:
<?php
$link 
-> Datenbankverbindung

if(isset($_GET['add']) && $_GET['add'] == 'true'){
    if(isset(
$_POST['keywords']) && count($_POST['keywords']) > && isset($_POST['user']) && intval($_POST['user']) > 0){
        
//hinzufügen des eintrages
        
$q "INSERT INTO `keywords_to_users` (`user_id`, `keyword_id`) VALUES ";
        
        
$count count($_POST['keywords']) - 1;
        
        foreach(
$_POST['keywords'] as $key => $value){
            
$q .= " ('".mysql_real_escape_string($_POST['user'])."', '".mysql_real_escape_string($value)."') ";
            if(
$count $key$q .= ", ";
        }
        
        
$result mysql_query($q$link);
        
    }
}

?>
<form action="?add=true" method="POST">
<?php
$q 
"SELECT `keyword_id`, `keyword_name` FROM `keyword` ORDER BY `keyword_name` ASC";
$result mysql_query($q$link);
?>
<select name="keywords[]" size="5">
<?php
while ($row mysql_fetch_assoc($result)) {
    
?>
    <option value="<?php echo $row['keyword_id']; ?>"><?php echo $row['keyword_name']; ?></option>
    <?php
}
?>
</select>

<?php
$q 
"SELECT `user_id`, `user_name` FROM `users` ORDER BY `user_name` ASC";
$result mysql_query($q$link);
?>
<select name="user">
<option value="-1">Bitte Benutzer auswählen...</option>
<?php
while ($row mysql_fetch_assoc($result)) {
    
?>
    <option value="<?php echo $row['user_id']; ?>"><?php echo $row['user_name']; ?></option>
    <?php
}
?>
</select>

<input type="sumit" value="einfügen" />
</form>
01/18/2013 09:36 CracK-#3
vielen Dank für die schnelle Antwort, klappt leider nicht :(



Folgende Tabellen:



Wenn ich den Code 1:1 übernehme kommt folgendes:
(außer die s hinter Keyword entferne)

Code:
<br />
<b>Parse error</b>:  syntax error, unexpected T_IF in <b>C:\xampp\htdocs\pfad\pfad\ausgabe.php</b> on line <b>13</b><br />
line 13: if(isset($_GET['add']) && $_GET['add'] == 'true'){
01/18/2013 09:49 douside#4
Wie sieht deine users Tabelle von der Struktur her aus?

Im generellen sieht es so aus als könnten die Datenbankabfragen nicht ausgeführt werden, sonst würden wenigstens die Keywords ausgegeben werden (jedenfalls ist aus deinem Screenshot zu erkennen das zumindest in der Tabelle keyword ein Eintrag existiert der ausgegeben werden könnte).

Kannst du zusätzlich noch das ganze Script posten, damit man eher den Fehler sehen kann. (Hauptsächlich geht es mir wie die Datenbankverbindung hergestellt wird)

Falls Benutzername & Passwort zu sehen sind, lösche die ggf. oder ersetze diese durch *

Also bitte:
- Screenshot der users Tabellenstruktur
- Dein Script wenn möglich posten
01/18/2013 09:52 CracK-#5
users:

Script kommt per PN.
01/18/2013 10:05 douside#6
Probier jetzt mal folgendes:

PHP Code:
 <?php
include ("include/dbconnect.php");
include (
"include/format.inc.php");
echo 
"<title>Keyword | Address Book</title>";
include (
"include/header.inc.php");


global 
$mysqli,$db_table_prefix


if(isset(
$_GET['add']) && $_GET['add'] == 'true'){
    if(isset(
$_POST['keyword']) && count($_POST['keyword']) > && isset($_POST['user']) && intval($_POST['user']) > 0){
        
        
        
$q "INSERT INTO `".$db_table_prefix."keywords_to_users` (`user_id`, `keyword_id`) VALUES ";
      
        
$count count($_POST['keywords']) - 1;
        
        foreach(
$_POST['keywords'] as $key => $value){
            
$q .= " ('".mysql_real_escape_string($_POST['user'])."', '".mysql_real_escape_string($value)."') ";
            if(
$count $key$q .= ", ";
        }
        
$stmt $mysqli->prepare($q);
        
$stmt->execute();
    }
}

?>
<form action="?add=true" method="POST">
<?php
$stmt 
$mysqli->prepare("SELECT `keyword_id`, `keyword_name` FROM `".$db_table_prefix."keyword` ORDER BY `keyword_name` ASC");
$stmt->execute();
$stmt->bind_result($keyword_id$keyword_name);
?>
<select name="keywords[]" size="5">
<?php
while ($stmt->fetch()){
     
?>
    <option value="<?php echo $keyword_id?>"><?php echo $keyword_name?></option>
    <?php
}
?>
</select>

<?php

$stmt 
$mysqli->prepare("SELECT `user_id`, `username` FROM `".$db_table_prefix."users` ORDER BY `username` ASC");
$stmt->execute();
$stmt->bind_result($user_id$username);
?>
<select name="user">
<option value="-1">Bitte Benutzer auswählen...</option>
<?php
while ($stmt->fetch()){
    
?>
    <option value="<?php echo $user_id?>"><?php echo $user_name?></option>
    <?php
}
?>
</select>

<input type="sumit" value="einfügen" />
</form>
01/18/2013 10:11 CracK-#7
Nichts zu sehen auser der Header ect.

Quelltext steht auch nix drin.. :(