php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 03-06-2009, 19:49
guskg
 Registrierter Benutzer
Links : Onlinestatus : guskg ist offline
Registriert seit: Jun 2009
Beiträge: 4
guskg befindet sich auf einem aufstrebenden Ast
Unhappy Daten in MSSql ändern

Hallo zusammen

Ich bin neu hier und habe ein (für mich) grosses Problem.
Ich habe schon alle PHP Foren durchforstet aber irgendwie fehl mir der durchblick gerade total und ich soll die Arbeit bald abgeben.

1. Ich habe eine Seite wo ich die SQL Daten in einer Tabelle auslese. Auf dieser Seite habe ich in jeder Zeile einen submit button eingefügt der dafür sorgt das die Seite zum bearbeiten des Eintrags geöffnet wird. das Funktioniert auch nur das auf der seite dann keine Daten angezeigt werden.

2. Auf der zweiten Seite habe ich ein Drop down Menü wo ich den Eintrag in die voreingestellten Kriterien ändern kann. Dann ist wieder ein Button zum bestätigen udn auf der nächsten Seite kommt der UPDATE Befehl für die Datenbank.

Das Projekt holt die Daten aus einer sehr verschachtelten MS-SQL Datenbank.

Hier die Codeansicht der ersten Seite mit der Tabelle.

employer.php

PHP-Code:
                <?php
                    error_reporting
(E_ALL);
                    include(
"db_connect.php");//Datenbankverbindung
                    
if(isset($_POST['sword']))//Suchfunktion
                    
{
                    
//Datenbankabfrage mit Suchfunktion in den Spalten Vorname, Nachname und Kartennummer
                    
$user=(mssql_query("SELECT last_name, first_name, card_no, card_status, 
                                        asco.employee.acc_grp_id, cardholder_id, asco.access_groups.acc_grp_id, acc_grp_name 
                                        FROM  asco.employee, asco.access_groups
                                        WHERE asco.employee.acc_grp_id = asco.access_groups.acc_grp_id
                                        AND     (last_name LIKE ('%" 
.utf8_decode($_POST['sword']). "%') 
                                                OR first_name LIKE ('%" 
.utf8_decode($_POST['sword']). "%') 
                                                OR acc_grp_name LIKE ('%" 
.$_POST['sword']. "%')
                                                OR card_no LIKE ('%" 
.$_POST['sword']. "%'))
                                        ORDER BY last_name, first_name"
));
                    }
                    else
                    {
                    
//Datenbankabfrage ohne Suchfunktion. Die komplette Personenliste wird ausgegeben.
                    
$user=(mssql_query("SELECT last_name, first_name, card_no, card_status, 
                                        asco.employee.acc_grp_id, cardholder_id, 
                                        asco.access_groups.acc_grp_id, acc_grp_name 
                                        FROM asco.access_groups, asco.employee
                                        WHERE asco.employee.acc_grp_id = asco.access_groups.acc_grp_id
                                        ORDER BY last_name, first_name"
));
                    }
                
?>
                <!-- Eingabefenster für die Suchfunktion-->
                <form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
                <input name="sword" type="text" /> <input name="suchen" value="Suchen" type="submit" />
                </form>
                
                <!-- Tabelle für die Personenliste-->
                <form action="employer2.php" method="post">
                <table background="http://www.php-resource.de/forum/images/tabemp.jpg" cellspacing=0 width="680px"><!-- image muss hier stehen für IE7 -->
                <br />
                    <caption>
                    <h3>Aktiv<span class="Stil1">-</span>Nachname<span class="Stil1">-----</span>Vorname<span class="Stil1">-------</span>
                    Ausweis<span class="Stil1">--------</span>Berechtigung<span class="Stil1">------------</span></h3>
                    </caption>
                
                <?php
                                    
                
                    
while( $row=mssql_fetch_array($user) )//Ausgabe der Personendaten in die Tabelle. Alle Zeilen vom SELECT
                    
{    
                        echo 
"<tr height=28px background=images/tabemp.jpg>"//image für Firefox und chrome
                        
echo "<td width=5></td>";
                        echo 
"<td width=50><font style=float:left>";
                            if(
$row['card_status'] == '61')//Abfrage ob die Person Aktiv ist
                            
{
                                
?>
                                <a href="javascript:void(0)" onclick="changeStatus(<?php echo (int)$row['cardholder_id']; ?>, 1)">
                                <img src="http://www.php-resource.de/forum/images/icongn.png" width="26" height="20" border="0" />
                                </a>
                                <?php
                                
// Javascript aktiviert
                                // Einbinden der Grafik für Person = aktiv
                            
}
                            else
                            {
                                
?>
                                <a href="javascript:void(0)" onclick="changeStatus(<?php echo (int)$row['cardholder_id']; ?>, 0)">
                                <img src="http://www.php-resource.de/forum/images/iconred.png" width="26" height="20" border="0" />
                                </a>
                                <?php
                                
//Javascript aktiviert
                                // Einbinden der Grafik für Person = gesperrt
                            
}
                        echo 
"&nbsp;</td>";    
                        
// Familienname aufgelistet und utf8 gestellt    
                        
echo "<td width=140><font style=float:left>".utf8_encode($row['last_name'])."&nbsp;</td>";
                        
// Vorname aufgelistet und utf8 gestellt
                        
echo "<td width=140><font style=float:left>".utf8_encode($row['first_name'])."&nbsp;</td>";
                        
// Kartennummer aufgelistet
                        
echo "<td width=140><font style=float:left>".$row['card_no']."&nbsp;</td>";
                        
// Berechtigungsgruppe aufgelistet
                        
echo "<td width=150><font style=float:left>".$row['acc_grp_id']."&nbsp;</td>";
                        echo 
"<td width=50><font style=float:right>"?><input name="recht" id="recht" type='submit' value='Ändern'><?php "</td>";
                        echo 
"<td width=5></td>";
                        echo 
"</tr>";
                        
                    }
                
?>
                </table>
                </form>
Dann wird die zweite Seite geöffnet zum Bearbeiten.
Aber mit dieser Abfrage schaffe ich es nicht das hier auch Daten angezeigt werden.

employer2.php


PHP-Code:
                <?php
                
include('db_connect.php');
                
                
$recht $_POST['recht'];
                
$acc_grp_id $_POST['asco.employee.acc_grp_id'];
                echo 
$recht;
                echo 
$acc_grp_id;


                
$user mssql_query("SELECT last_name, first_name, card_no, card_status, 
                                    asco.employee.acc_grp_id, cardholder_id, 
                                    asco.access_groups.acc_grp_id, acc_grp_name 
                                    FROM asco.access_groups, asco.employee
                                    WHERE asco.employee.acc_grp_id = asco.access_groups.acc_grp_id
                                    AND cardholder_id = '$recht'"
);
                                    
                
$gruppe mssql_query("SELECT acc_grp_name, acc_grp_id FROM asco.access_groups");
 
                if ( ! 
$user )
                {
                    die(
'Ungültige Abfrage: ' mysql_error());
                }
                
?>
                <form action="employer3.php" method="post">
                <table background="http://www.php-resource.de/forum/images/tabemp.jpg" cellspacing=0 width="680px">
                <br />
                    <caption>
                    <div id="stil3">ID<span class="Stil1">-</span>Nachname<span class="Stil1">-----</span>Vorname<span class="Stil1">-------</span>
                    Ausweis<span class="Stil1">--------</span>Berechtigung<span class="Stil1">------------</span></div>
                    </caption>
                
                <?php
                 
while ($ausgabe mssql_fetch_array$user))
                 {
                 echo 
"<tr height=28px background=images/tabemp.jpg>";
                 echo 
"<td width=30>" .$ausgabe['cardholder_id'] . "</td>";
                 echo 
"<td width=150>"utf8_encode($ausgabe['last_name']) . "</td>";
                 echo 
"<td width=150>"utf8_encode($ausgabe['first_name']) . "</td>";
                 echo 
"<td width=150>"$ausgabe['card_no'] . "</td>";
                 echo 
"<td width=150>";
                 echo 
"<select name='accessgroup'>";
                             while (
$data mssql_fetch_array($gruppe))
                            {
                                
$selected "";
                                if (
$ausgabe['acc_grp_id'] == $data['acc_grp_id'])
                                {
                                    
$selected " selected='selected'";
                                }
                                 echo 
"<option value=\"" $data['acc_grp_id'] . "\""$selected">" $data['acc_grp_id'] . "</option>\n";
                            }
                echo
"</select></td>";
                echo 
"<td width=50><font style=float:right>" ?><input name="change" type="submit" value="Speichern" method="post" ><?php "</td>";
                echo 
"</tr>";
                }
                
mssql_free_result$user );
                
?>
                </table>
                </form>
Auf der nächsten Seite werden die Daten in die DB geschrieben.
Hier kommen Error Meldungen.

Notice: Undefined index: test in C:\xampp\htdocs\sipass\employer3.php on line 45
(Ich weiß aber nicht wie ich da den Wert reinkriegen soll.)


wenn mann den sql_query ansieht, sieht man das er leer ist, aber warum?

UPDATE asco.employee SET acc_grp_id = '1' WHERE emp_id = ''


employer3.php

PHP-Code:
<?php
error_reporting
(E_ALL);
// LOGIN SCRIPT
include('db_connect.php');
                
$emp_id $_POST['test'];
                
$acc_grp_id $_POST['accessgroup'];
                
  
//daten bearbeiten 
  
$aendern "UPDATE asco.employee SET 
 
  acc_grp_id = '$acc_grp_id' 
 
  WHERE emp_id = '$emp_id'"
;
 
echo 
"bearbeitet ! <br>";
 
mssql_query($aendern);
echo 
$aendern;

 
?>

Ein Teil des letzen Schrittes mit dem Update funktioniert.
Nur in einer Variable ist kein Wert und sie ist nicht definiert.
Die definierte Var holt ihren Wert aus der employer2.php aus der Tablee vom selectfenster

Wäre echt nett wenn mir jemand weiterhelfen kann.

Geändert von guskg (03-06-2009 um 21:27 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 04-06-2009, 01:07
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von guskg Beitrag anzeigen
Nur in einer Variable ist kein Wert und sie ist nicht definiert.
Geht's noch etwas ungenauer ...?

Was haben deine Kontrollausgaben ergeben, wie sieht das HTML-Formular aus, ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 04-06-2009, 10:46
guskg
 Registrierter Benutzer
Links : Onlinestatus : guskg ist offline
Registriert seit: Jun 2009
Beiträge: 4
guskg befindet sich auf einem aufstrebenden Ast
Standard Alles im Script

Die HTML Ausgabe ist in den Scriptteilen integriert.

Die Fehlermeldungen stehen zwischen den Scrips.

Ich habe jetzt in der Tabellen Ausgabe
vor dem Submitbutton die cardholder ID geschrieben.
Jetzt werden Daten mitübertragen auf die zweite Seite, aber leider immer nur die letzte Zeile der Tabelle.

PHP-Code:
                <?php
                                    


                    
while( $row=mssql_fetch_array($user) )//Ausgabe der Personendaten in die Tabelle. Alle Zeilen vom SELECT
                    
{    
                        echo 
"<tr height=28px background=images/tabemp.jpg>"//image für Firefox und chrome
                        
echo "<td width=5></td>";
                        echo 
"<td width=50><font style=float:left>";
                            if(
$row['card_status'] == '61')//Abfrage ob die Person Aktiv ist
                            
{
                                
?>
                                <a href="javascript:void(0)" onclick="changeStatus(<?php echo (int)$row['cardholder_id']; ?>, 1)">
                                <img src="images/icongn.png" width="26" height="20" border="0" />
                                </a>
                                <?php
                                
// Javascript aktiviert
                                // Einbinden der Grafik für Person = aktiv
                            
}
                            else
                            {
                                
?>
                                <a href="javascript:void(0)" onclick="changeStatus(<?php echo (int)$row['cardholder_id']; ?>, 0)">
                                <img src="images/iconred.png" width="26" height="20" border="0" />
                                </a>
                                <?php
                                
//Javascript aktiviert
                                // Einbinden der Grafik für Person = gesperrt
                            
}
                        echo 
"&nbsp;</td>";    
                        
// Familienname aufgelistet und utf8 gestellt    
                        
echo "<td width=140><font style=float:left>".utf8_encode($row['last_name'])."&nbsp;</td>";
                        
// Vorname aufgelistet und utf8 gestellt
                        
echo "<td width=140><font style=float:left>".utf8_encode($row['first_name'])."&nbsp;</td>";
                        
// Kartennummer aufgelistet
                        
echo "<td width=140><font style=float:left>".$row['card_no']."&nbsp;</td>";
                        
// Berechtigungsgruppe aufgelistet
                        
echo "<td width=150><font style=float:left>".$row['acc_grp_name']."&nbsp;</td>";
                        echo 
"<input type='hidden' name='cardholder_id' value='".$row['cardholder_id']."' />";
                        echo 
"<td width=50><font style=float:right>"?><input name="recht" type='submit' value='Ändern'><?php "</td>";
                        echo 
"<td width=5></td>";
                        echo 
"</tr>";
                        
                        
                    }
                
?>
Ich weis, es kann nicht viel sein, aber ich komme nicht dahinter.
Mit Zitat antworten
  #4 (permalink)  
Alt 04-06-2009, 11:41
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

was ganz normal ist ... wenn man
HTML-Code:
<input type='hidden' name='cardholder_id' (...) />
verwendet in einer schleife ;D probiers es mal mit einem Array.

HTML-Code:
<input type='hidden' name='cardholder_id[]'  (...) />
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #5 (permalink)  
Alt 04-06-2009, 13:20
guskg
 Registrierter Benutzer
Links : Onlinestatus : guskg ist offline
Registriert seit: Jun 2009
Beiträge: 4
guskg befindet sich auf einem aufstrebenden Ast
Standard Das funktioniert nicht

PHP-Code:
      echo "<input type='hidden' name='cardholder_id' value='".$row['cardholder_id']."' />";
      echo "<td width=50><font style=float:right>"?><input name="recht" type='submit' value='Ändern'><?php "</td>";
Meinst du diese Zeile(n) so ändern???

Das funktioniert irgendwie nicht
Mit Zitat antworten
  #6 (permalink)  
Alt 04-06-2009, 14:23
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

was funktioniert irgendwie nicht ? ...
in der While schleife erstellst du ... mehrere Datensätze deren Datensatz ID schreibst du in ein hidden input ... in deinem beitrag sagst du nur die Letzte Datensatz ID kommt an ... damit du auswerten kannst mit welchem Datensatz du etwas machen willst muss das $_POST['cardholder_id'] ein array sein ;D oder es gehört nicht die while schleife da beim absenden des Formulares nur der letzte Hidden input mit übertragen wird weil alle anderen überschrieben werden ;D probier es mal aus


var_dump($_POST['cardholder_id']) mit <input type='hidden' name='cardholder_id' />
und dann mal

var_dump($_POST['cardholder_id']) <input type='hidden' name='cardholder_id[]' (...) />

du wirst einen unterschied feststellen.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
  #7 (permalink)  
Alt 04-06-2009, 16:18
guskg
 Registrierter Benutzer
Links : Onlinestatus : guskg ist offline
Registriert seit: Jun 2009
Beiträge: 4
guskg befindet sich auf einem aufstrebenden Ast
Standard Wollte nur eine Zeile übertragen

Hi

wenn ich deinen Befehl einbinde werden (glaube ich) alle Zeilen übertragen.
Ich habe in jeder Tabellenzeile einen ändern Button und möchte diese Zeile in der der Button ist zum bearbeiten übertragen.

mfg Günter
Mit Zitat antworten
  #8 (permalink)  
Alt 04-06-2009, 16:34
Wyveres
 Registrierter Benutzer
Links : Onlinestatus : Wyveres ist offline
Registriert seit: Dec 2006
Ort: Rügen
Beiträge: 763
Blog-Einträge: 2
Wyveres ist zur Zeit noch ein unbeschriebenes Blatt
Wyveres eine Nachricht über ICQ schicken
Standard

das wird solange nicht gehen bis du den Form Tag in die While mit aufnimmst und somit mehrere Formulare erstellst.
oder
Du irgendwie Definierst welchen Block er nachdem alle daten übertragen wurden auswerten soll.

es ist im Grunde recht simpel. Entweder alle daten oder nur den datensatz block ... so wie du es machst zur Zeit ohne das du array elemente benutzt im namen wirste ewig nur die Daten vom letzten While durchlauf erhalten.

also bau mal die Form tags in die While.
__________________
Bitte Beachten.
Foren-Regeln
Danke
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
php, select, sql, update


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MSSQL Daten vom Typ image auslesen? TiCar SQL / Datenbanken 2 20-09-2006 13:21
[MSSQL] daten aus drucken tsacem SQL / Datenbanken 10 16-09-2005 16:14
[MSSQL] mysqlabfrage mit array-daten x_ray SQL / Datenbanken 5 06-01-2005 14:11
[MSSQL] Daten aus 2 tabellen nyfan SQL / Datenbanken 2 10-03-2004 14:27
[MSSQL] Wie kommen die Daten in die Variablen nyfan SQL / Datenbanken 7 08-03-2004 22:50

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:19 Uhr.