Daten aus 2 ter Tabelle Auslesen

counteract

Erfahrenes Mitglied
Hallo!

Ich habe folgendes Problem:

Momentan werden mit Hilfe der user_id, Daten in einer 2. Tabelle gespeichert und auch damit aufgerufen, damit man sie in einem Formular bearbeiten und löschen kann.

Jedoch gibt es dabei ein Problem, wenn nun ein User mehrere Datensätze in die 2. Tabelle schreiben will, dann kann man sie ja nicht eineutig identifizieren. Deshalb habe ich mir überlegt diese Datensätze mit einer zusätzlichen ID zu belegen, die man dann wiederrum auslesen kann, somit erhält man Theoretisch die richtigen Daten des Users und den richtigen Datensatz.

Jedoch ist mir nicht genau klar wie ich diese beiden ID´s in die Abfrage bekomme?

zum besseren Verständis das Script dazu:

PHP:
<?php  
session_start ();  

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

  $sql = "SELECT * FROM `benutzerdaten` WHERE `Id` = '".$_SESSION['session_user_id']."'";  
  $result = mysql_query($sql);   
  $row = mysql_fetch_array($result);  
 
  
  $sql_a = "SELECT * FROM `daten` WHERE `user_id` = '$row[Id]'";  
  $result_a = mysql_query($sql_a);   
  $row_a = mysql_fetch_array($result_a); 

###################################
if ($_POST['daten_senden'])
{
$sql_update = "UPDATE daten SET 	test1			= '$test1',
						test2		= '$test2',
						test3			= 'test3',
						test4			= 'test4',
						test5		= 'test5',
						test6		= '$test6' WHERE user_id = '$user_id'";
$db_update = mysql_query($sql_update);
}

if ($_POST['daten_delet'])
{
$sql_del = "DELETE FROM daten WHERE user_id = '$user_id'";
$db_del = mysql_query($sql_del);
}
?>

Num zum 2. Problem: Wenn man diesen Datensatz erstellt, dann müsste nach jedem erstellten Datensatz sich die daten_id um eins erhöhen. Wie kann man das machen?


MfG

Counteract
 
Die beide zusätzlichen Datenbankabfragen sind gar nicht nötig. Mein Vorschlag:
PHP:
<?php

	session_start();

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

	###################################
	if( $_POST['daten_senden'] ) {
		$query = '
			UPDATE
			        `daten`
			  SET
			        `test1` = "'.mysql_real_escape_string($test1).'",
			        `test2` = "'.mysql_real_escape_string($test2).'",
			        `test3` = "test3",
			        `test4` = "test4",
			        `test5` = "test5",
			        `test6` = "'.mysql_real_escape_string($test6).'"
			  WHERE
			        `user_id` = "'.$_SESSION['session_user_id'].'"
			';
		mysql_query($query);
	}

	if( $_POST['daten_delet'] ) {
		$query = '
			DELETE FROM
			        `daten`
			  WHERE
			        `user_id` = "'.$_SESSION['user_id'].'"
			';
		mysql_query($query);
	}

?>
 
Dass sich die ID automatisch erhöht, lässt sich am besten mit dem „AUTO_INCREMENT“-Spaltenattribut lösen.
 
Wie funktioniert dieses AUTO_INCREMENT bei der erhöhung der ID´s?

Funktioniert dies dann auch wenn mehrere User dieses Formular zur erstellung der datenen in die 2. Tabelle benutzen? Oder beginnt dieses AUTO_INCREMENT dann für jeden User wieder bei 0?

Könnte mir vielleicht noch jemand erklären wie man diese Abfrage dazu schreibt, denn ich komme an diesem Punkt absolut nicht mehr weiter.

Außerdem weis ich nicht genau wie man die Daten aus der Tabelle so ausließt, dass man ein Spalteninhalt als Link geliefert bekommt der dann zu dem Formular weist. Somit könnte man dann die einzelnen Daten-Formulare des Users aufrufen.

Für eine Antwort auf meine Fragen von euch wäre ich sehr sehr dankbar ;)
 
Hallo liebes Forum!

Könnte mir vielleicht jemand bei meinem Problem helfen, weil ich mir keinen besseren Rat weis als euch zu fragen!

Für eine Antwort wäre ich sehr sehr dankbar!

MfG

Counteract
 
Hallo,
counteract hat gesagt.:
Funktioniert dies dann auch wenn mehrere User dieses Formular zur erstellung der datenen in die 2. Tabelle benutzen?
Kurz und knapp: Ja

counteract hat gesagt.:
Außerdem weis ich nicht genau wie man die Daten aus der Tabelle so ausließt, dass man ein Spalteninhalt als Link geliefert bekommt der dann zu dem Formular weist.
Das geht ungefähr so:
PHP:
<?php
    require('connect.php'); // In der Datei connect.php wird eine Verbindung zur Datenbank hergestellt und eine MySQL Tabelle ausgewählt.
    
    $sql = 'SELECT * FROM tabelle'; // Das ist der Query, der die Daten von der Datenbank abfrägt.
    $query = mysql_query($sql) or die(mysql_error()); // Hier wird der Query aus der Variable $sql ausgeführt, falls ein Fehler auftrat, wird dieser
                                                      // ausgegeben und das Script wird beendet.
    
    while ($ds = mysql_fetch_object($query)/* Hier werden die Daten verarbeitet, alternativ kann auch mysql_fetch_assoc() verwendet werden*/){
        echo '<a href="'.$ds->feld1.'">'.$ds->feld2.'</a><br />'; // Hiermit werden die Daten ausgegeben, $ds->feld1 steht für den Inhalt
                                                                  // des Feldes feld1 der Datenbank, bei $ds->feld2 ist es das gleiche.
    }
?>

mfg
forsterm
 
Zuletzt bearbeitet:
Erstmal vielen dank! Jedoch verstehe ich noch nicht wie er nun die Daten als Liste ausgibt und sie mit Links versieht! Wie gibt man die Daten als Links aus? Es soll ja so funktionieren, dass man die daten des Users aus der 2. Tabelle ausliest und dann auf einer Seite als links auflisten lässt, wenn man dann auf den link klickt können die Daten bearbeitet werden! Verstehst du mein Vorhaben?

MfG

Counteract
 
Zurück