2017-06-09 3 views
0

Ich aktualisiere eine einzelne Spalte mit vielen Werten mit Komma zwischen ihnen. sie funktionieren gut. aber wenn dieselbe Spalte von einem anderen Benutzer aktualisiert wird, wird der von früheren Benutzern eingegebene Wert gelöscht. Ich möchte Werte des vorherigen Benutzers auch mit dem Einfügen eines neuen Benutzerwerts beibehalten. und i dont auch den gleichen Wert wieder wiederholt werden soll, da die Werte i mit M sind eindeutige IDs ..Wie aktualisiert man eine einzelne db-Spalte, ohne die vorherigen Daten zu löschen?

  // update student list 


$venue = ($_GET['venue']); 
$district = ($_GET['dis']); 
if(isset($_POST['submit'])) 
//print_r ($_POST); 
{ 
    @$std_list=implode(',',$_POST['std_list']); 


    if(empty($std_list)) 
    { 
     $error = 1; 
     $get_value = "Please select you event students."; 
    } 

    else 
    { 

    //$query = mysql_query("INSERT INTO events (std_list) 
//VALUES('".$std_list."')") or die(mysql_error()); 
    $query = mysql_query("UPDATE events SET std_list='".$std_list."' WHERE 
id='".$district."' ") or die(mysql_error()); 
    //echo "$msg"; 
    echo "Students list submitted successfully"; 
    } 
} 

wenn jede Abfrage, die Sie wieder fragen. Werte, die ich einfüge, sind nur ganze Zahlen. Die gleiche Ganzzahl kann nicht von zwei verschiedenen Benutzern verwendet werden.

+0

Verwenden Sie keine CSV-Felder, verwenden Sie eine 'events_students' -Tabelle – Steve

+0

hat Sie nicht ??? plz durchdacht – yogesh

+0

Entfernen Sie die Spalte 'std_list' in der Ereignistabelle. Erstellen Sie eine neue Tabelle mit dem Namen 'events_students'. Wenn Sie einem Ereignis einen neuen Schüler hinzufügen möchten, fügen Sie einen Datensatz zu dieser Tabelle hinzu. Seine Standard-Datenbank Normalisierung und es existiert, um solche Probleme zu lösen. Es bedeutet auch, dass Sie Abfragen wie alle Ereignisse finden können, die ein bestimmter Student besucht. – Steve

Antwort

0

versuchen Sie das?

$query = mysql_query("UPDATE events SET std_list = CONCAT(std_list, '".$std_list."') WHERE 
id='".$district."' ") or die(mysql_error()); 
+0

Danke, das funktioniert, aber es fügt auch doppelten Wert ein, der bereits in dieser Spalte ist – yogesh

+0

Was meinen Sie mit doppeltem Wert? hmm. Die obige Anweisung nimmt immer die Werte, hängt Ihre Werte an und aktualisiert die Spalte mit den neuen Werten. Wenn Sie den doppelten Wert überprüfen möchten, bevor Sie die Spalte aktualisieren, müssen Sie die Spalte auswählen und mit php vergleichen. –

+0

Ich möchte Vergleich an zwei Stellen verwenden ist eins 1. Ich vergleiche dies -> if ($ ctegoryy ['id'] == $ user ['std_list']) <- aber die Werte in $ user [' std_list '] sind wie 4,5,6, also funktioniert der Vergleich nicht und der zweite ist und das ist update query -> $ query = mysql_query ("UPDATE Ereignisse SET std_list = CONCAT (std_list,',". $ user [ 'std_list']. "') WHERE id ='". $ district. "'") oder sterben (mysql_error()); <- – yogesh

Verwandte Themen