Daten werden nicht in DB geschrieben

Kann ich mir gut vorstellen das du das nicht verstehst... Ich drück mich auch immer echt e aus!

Also meine Frage ist die:

Kann ich es einfach so machen:

PHP:
<?
$dbhost="localhost"; 
$mydb=""; 
$dbuser=""; 
$dbpasswd="";

$db=mysql_connect($dbhost, $dbuser, $dbpasswd); 
mysql_select_db($mydb, $db);

 if ($result = mysql_query ("SELECT user_id, pname FROM projekt_gep"))
 {
    while ($line = mysql_fetch_array ($result, MYSQL_ASSOC))
    {
    echo "<a href=test.php?Id=" . $line["user_id"] . ">" . $line["pname"] . "</a>","<br>";
    }
 }
?>

Würde das so funktionieren wenn ich einfach die User_id auswähle und dann als Liste ausgeben lasse?

Bei diesem Script habe ich mämlich das Problem dass man wenn man auf den Link klickt nich zu dem Formular kommt indem die daten reingeladen werden solln.

Verstehst du mich jetzt vielleicht etwas besser?
 
Ok, so langsam weiß ich glaube ich, worauf du hinauswillst...

PHP:
<?php

if(!isset($_GET['id'])) {
$sql = mysql_query("SELECT id, name FROM table");

while($row = mysql_fetch_assoc($sql)) {
  echo '<pre>';
  echo '<a href="./test.php?id='.$row['id'].'">'.$row['name'].'</a>';
  echo '</pre>';
}
} else {
$sql = mysql_query("SELECT name, details1, details2 FROM table WHERE id = '".intval($_GET['id'])."' LIMIT 1");
$row = mysql_fetch_array($sql);

# und jetzt das Formular und value="" mit den $row Inhalten füllen
}
?>
Hoffe habe das jetzt richtig verstanden...
 
Mhm ja ich glaub du weist was ich meine...

Schonmal vielen vielen Dank das du dir die mühe mit mir gemacht hast!

Könntest du mir aber vielleicht den else-Zweig kommentieren weil ich da nicht genau versteh was du da machst! Leider...

" # und jetzt das Formular und value="" mit den $row Inhalten füllen "

Kannst du mir vielleicht auch das noch etwas genauer erklären?
 
Zuletzt bearbeitet:
PHP:
<?php

if(!isset($_GET['id'])) {
$sql = mysql_query("SELECT id, name FROM table");

while($row = mysql_fetch_assoc($sql)) {
  echo '<pre>';
  echo '<a href="./test.php?id='.$row['id'].'">'.$row['name'].'</a>';
  echo '</pre>';
}
} else {
$sql = mysql_query("SELECT name, details1, details2 FROM table WHERE id = '".intval($_GET['id'])."' LIMIT 1");
$row = mysql_fetch_array($sql);

# und jetzt das Formular und value="" mit den $row Inhalten füllen
}
?>

Ok, die SQL Anweisung dürfte klar sein, du holst halt alle Daten raus, die du brauchst. Und das nur dort, wo die id = die Id aus der URL ist. intval ist dafür da um sicherzustellen, dass dort wirklich nur eine Zahl drin ist! Sollten es Buchstaben, SQL Anweisungungen o. ä. sein, so kommt eine 0 als Ergebnis heraus, dies könntest du natürlich auch in einer gesonderten Bedingung noch abfangen.
Da es nur ein Ergebnis sein kann (ids können ja nicht doppelt vorhanden sein[bzw. SOLLTEN sie nicht]) brauchen wir keine Schleife, sondern es reicht die einfache Zuweisung von mysql_fetch_array().
Und nun erstellst du einfach dein Formular und füllst es mit den Werten, so z. B.
PHP:
# [...]
} else {
$sql = mysql_query("SELECT name, details1, details2 FROM table WHERE id = '".intval($_GET['id'])."' LIMIT 1");
$row = mysql_fetch_array($sql);

?>
<form action="..." method="post">
<input type="text" name="usr_name" value="<?php echo $row['name']; ?>"><br/>
<input type="text" name="usr_details1" value="<?php echo $row['details1']; ?>">
etc.
<?php
}
?>
 
Hallo!

Leider Funktioniert dies noch nicht so ganz:

Hier der Code:

PHP:
<?
session_start ();  

// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank"); 
}

if(!isset($_GET['id'])) {
$sql = mysql_query("SELECT user_id, pname FROM projekt_geb");

while($row = mysql_fetch_assoc($sql)) {
  echo '<pre>';
  echo '<a href="./aktuelle_projekte.php?id='.$row['user_id'].'">'.$row['pname'].'</a>';
  echo '</pre>';
}
} else {
$sql = mysql_query("SELECT pname FROM projekt_geb WHERE user_id = '".intval($_GET['user_id'])."' LIMIT 1");
$row = mysql_fetch_array($sql);

}
?>

Wenn ich dieses Script ausführe dann wird nichts ausgegeben, jedoch müsste etwas ausgegeben werden da in der DB die Daten vorhanden sind.

Was ist denn in dem Script falsch

Vielleicht sollte ich zu meinem Problem etwas mehr erklären?!

Also:

Dieses Script soll aus den Daten in der DB eine Liste erstellen und man soll daraus auf ein Formular weitergeleitet werden um seine Daten zu bearbeiten.

Jedoch sollen nur die Daten aufgelistet werden, die den jeweiligen User auch gehören. Somit käme meines Wissens die Möglichkeit mit der Session User ID in betracht.

Leider weis ich nicht genau wie ich dies machen kann. Könnte mir dabei jemand helfen Wäre sehr sehr nett...
 
Versuche es einmal so:

PHP:
//Code vorher.................
if(!isset($_GET['id'])) 
{ 
    $sql = mysql_query("SELECT user_id, pname FROM projekt_geb"); 
    $result = mysql_query($sql) or die(mysql_error());  
    while($row = mysql_fetch_assoc($result)) { 
        echo '<pre>'; 
        echo '<a href="./aktuelle_projekte.php?id='.$row['user_id'].'">'.$row['pname'].'</a>'; 
        echo '</pre>'; 
} 
//Code danach.................
 
PHP:
<? 
// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank"); 
}

if(!isset($_GET['id'])) 
{ 
    $sql = mysql_query("SELECT user_id, pname FROM projekt_geb"); 
    $result = mysql_query($sql) or die(mysql_error()); 

while($row = mysql_fetch_assoc($sql)) {
  echo '<pre>';
  echo '<a href="./aktuelle_projekte.php?id='.$row['user_id'].'">'.$row['pname'].'</a>';
  echo '</pre>';
}
} else {
$sql = mysql_query("SELECT pname FROM projekt_geb WHERE user_id = '".intval($_GET['user_id'])."' LIMIT 1");
$row = mysql_fetch_array($sql);

}
?>

Meinst du das so? Da bekome ich im Formular die Meldung:

Query was empty

Aber dabei wird doch dann das Problem mit dem Auswählen der richtigen User Id um die Liste richtig zu erstellen auch nicht gelöst oder?
 
Ah, du willst die Projekte anzeigen, die dem User gehören? Sag das doch gleich ;)

PHP:
<? 
// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "", "");  
if (!mysql_select_db ("", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank"); 
}

if(!isset($_GET['id'])) 
{ 
    $sql = mysql_query("SELECT user_id, pname FROM projekt_geb WHERE user_id = '".$_SESSION['session_user_id']."'"); 
    $result = mysql_query($sql) or die(mysql_error()); 

while($row = mysql_fetch_assoc($sql)) {
  echo '<pre>';
  echo '<a href="./aktuelle_projekte.php?id='.$row['projekt_id'].'">'.$row['pname'].'</a>';
  echo '</pre>';
}
} else {
$sql = mysql_query("SELECT pname FROM projekt_geb WHERE projekt_id = '".intval($_GET['id'])."' AND user_id = '".$_SESSION['session_user_id']."' LIMIT 1");
$row = mysql_fetch_array($sql);

}
?>

Falls die Projekte keine ID haben, solltest du sie noch hinzufügen, da die Projekte sonst nicht eindeutig zuweisbar sind, falls User doppelte Namen verwenden, etc.
 
Leider bekomme ich dabei immer noch die Meldung:

Query was empty

Liegt es daran das in der DB ein Datensatz fehlt oder an was liegt das

Ich habe das gerade genauso gemacht wie du mir den Code geschickt hast...
 
Du hast immer noch keine Verarbeitung der Funktion mysql_query eingeleitet,
da Du wieder in der Schleife $sql verarbeitest.

Richtig wäre wie ich bereits schrieb:
PHP:
while($row = mysql_fetch_assoc($result)) {
 
Zurück