Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Hilfe Hilfe [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Hilfe Hilfe


 
Schneggo
30-07-2002, 15:41 
 
Habs geändert, so wie vorher angegeben wurde also mit $row["id_abteilung"]' >$row["name"]

Folgender Fehler wird ausgegeben:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in /usr/local/httpd/htdocs/phpMyInventory/uf07.php on line 14


<html>
<body>

<table>
<tr>
<td width='115'>Department:</td>
<td width='300'>
<select name='cboAbteilung'>
<?$db = mysql_connect();
$res = mysql_db_query("inventory", "select * from Abteilung");?>

while($row = mysql_fetch_array($res))
{
<? echo "<option value='$row["id_abteilung"]' >$row["name"]</option> "?>}

<?mysql_close($db);?>
</select>

</td>
</tr>
</table>

</body>
</html>

 
Schneggo
30-07-2002, 15:54 
 
<html>
<body>

<table>
<tr>
<td width='115'>Department:</td>
<td width='300'>
<select name='cboAbteilung'>
<?$db = mysql_connect();
$res = mysql_db_query("inventory", "select * from Abteilung");?>

while($row = mysql_fetch_array($res))
{
<? echo "<option value=" . $row["id_abteilung"] . " > " . $row["name"] . "</option> "; }?>

<?mysql_close($db);?>
</select>

</td>
</tr>
</table>

</body>
</html>

 
Schneggo
30-07-2002, 15:55 
 
Folgender Fehler wird ausgegeben

Parse error: parse error in /usr/local/httpd/htdocs/phpMyInventory/uf07.php on line 14

 
Schneggo
30-07-2002, 16:03 
 
So, und jetzt bringt er zwar keinen Fehler mehr, aber er gibt im Auswahlmenü nix aus. Woran kann das jetzt schon wieder liegen??


<html>
<body>

<table>
<tr>
<td width='115'>Department:</td>
<td width='300'>
<select name='cboAbteilung'>
<?
$db = mysql_connect();
$res = mysql_db_query("inventory", "select * from Abteilung");

while($row = mysql_fetch_array($res)){
echo "<option value=" . $row["id_abteilung"] . " >" . $row["name"] . "</option> "; }

mysql_close($db);
?>
</select>

</td>
</tr>
</table>

</body>
</html>

 
Pleitegeier
30-07-2002, 16:10 
 
was machst du hier eigentlich? :)

 
Titus
30-07-2002, 19:29 
 
Er versucht, Zeit zu sparen.
Sind eventuell keine Daten in der Tabelle?
Ist der Tabellenname richtig geschrieben (Groß/Kleinschreibung!)

Wie sieht denn der HTML-Quelltext der fertigen Seite aus?

 
Schneggo
01-08-2002, 07:37 
 
Das ist der komplette Text, wollte es ausprobieren, aber es funktioniert einfach nicht.

Die Tabelle ist mit Inhalten gefüllt. Richtig geschrieben ist sie auch.

 
Schneggo
01-08-2002, 07:52 
 
Jetzt hab ichs mal ohne Auswahlmenue probiert. Sonder mit einer Tabelle. Und, es gibt wieder tausend Fehler:

Warning: Supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/phpMyInventory/uf07.php on line 12

Datenbank
Tabelle
Datensätze:

Warning: Supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/phpMyInventory/uf07.php on line 23

Warning: Division by zero in /usr/local/httpd/htdocs/phpMyInventory/uf07.php on line 26


<html>
<body>
<?php
/* Verbindung aufnehmen */
$con = mysql_connect('localhost' ,'inventory', '20074054');

/* Datensätze ermitteln */
$dataresult = mysql_db_query($inventory,
"select * from " . $Abteilung);

/* Anzahl der Datensätze ermitteln */
$numdata = mysql_num_rows($dataresult);

/* Überschrift ausgeben */
echo "<h3>Datenbank $inventory</h3>";
echo "<h4>Tabelle $Abteilung</h4>";
echo "$numdata Datensätze:<p>";

/* Felder ermitteln */
$fdresult = mysql_list_fields($inventory, $Abteilung);

/* Anzahl der Felder ermitteln */
$numfds = mysql_num_fields($fdresult);

/* Ausgabebreite für die Felder ermitteln */
$avwidth = 100 / $numfds;

/* Tabelle beginnen, alle Feldnamen ausgeben */
echo "<table width='100%' border><tr>";
for ($f=0; $f<$numfds; $f++)
{
$fdname[$f] = mysql_field_name ($fdresult, $f);
echo "<td bgcolor='#c3c3c3'>$fdname[$f]</td>";
}

echo "</tr>";

/* Schleife über alle Datensätze */
for ($i=0; $i<$numdata; $i++)
{
echo "<tr>";

/* Schleife über alle Felder */
for ($f=0; $f<$numfds; $f++)
{
/* Feldinhalt ermitteln, ausgeben*/
$data = mysql_result($dataresult, $i, $fdname[$f]);
if ($data=="") $data = "&nbsp;";
echo "<td width='$avwidth%'>$data</td>";
}
echo "</tr>";
}

echo "</table>";
mysql_close($con);
?>
</body>
</html>

 
Wotan
01-08-2002, 07:53 
 
Mach mal ein Dump der tabelle mit Struktur und Daten und schick mir das mal mit dem Script zu. Werde mal sehen was sich machen läst.

 
Schneggo
01-08-2002, 07:57 
 
Wenn du mir sagst, wie ein "dump" geht?! Bin absolut neu in dem Themenbereich

 
Wotan
01-08-2002, 07:59 
 
Hast du PHPMyAdmin auf dem Web laufen?

 
Schneggo
01-08-2002, 08:02 
 
ja hab ich, und was muss ich jetzt machen? habs geöffnet

 
Wotan
01-08-2002, 08:08 
 
Du hast doch gerade das Posting db Copy gelesen. Da steht glaube ich alles drin.

Du ruftst die tabelle im PHPMyAdmin auf, scrollst ein wenig runter.
Dort findest du dann eine tabelle wo in etwa folgendes steht:
Nur Struktur
Struktur und Daten
Nur Daten

auf der anderen Seite steht senden.

Du machst die Hacken in "Struktur und Daten" und in "Senden" und klickst dann auf OK.

Nur noch das File speichern und mir samt Script-Dateien zu schicken, an wotan@php-resource.de.

Kann aber 1-2 Stunden daueren bis ich mich darum kümmern kann.

 
hand
01-08-2002, 08:17 
 
Sind die Variablen $inventory bzw. $Abteilung belegt?


// Kannst untmittelbar hinter <? einfügen
// Schauen wir mal, ob die Variablen übethapt belegt sind
if (!isset($inventory)) {
print "Variable Inventory ist nicht belegt !!<br>";
$inventory = "inventory";
}
if (!isset($Abteilung)) {
print "Variable Abteilung ist nicht belegt !!<br>";
$Abteilung = "Abteilung";
}


ad mysqldump für WAMP:

1. DOS Eingabeaufforderung öffnen
2. In das MySQL-Installationsverzeichnis/bin wechseln
3. C:\WAMP\mysql\bin>mysqldump datenbankname > filename.dmp
C:\WAMP\mysql\bin>

Jetzt wurden die Daten der Datenbank abgezogen und in das File filename.dmp gestellt.

[Pfoa, Wotan ist auch schon wieder online :p - und ich schon wieder zu spät]

 
Schneggo
01-08-2002, 08:20 
 
Danke "hand", das mit dem Dump hab ich jetzt kapiert. Wär ja eigentlich ganz einfach gewesen, wenn man hald lesen könnte :D

Die Variablen sind schon belegt. Keine Ahnung. Der bringt immer den Fehler, wenn ich was zuweisen will.

 
hand
01-08-2002, 08:22 
 
Du must schon das richtige zuweisen, nicht irgendwas !
Wie und wo weist Du eigentlich zu? Die Tabelle muß es geben, sonst kommt mitunetr der Fehler, den Du hast.
Machs einmal direkt im Skript ....

 
Schneggo
01-08-2002, 08:25 
 
Das ist schon alles richtig zugewiesen. Nur mir ist das hald aufgefallen, dass er genau in diesen 3 Zeilen Fehler bringt.

Zeile 13
$numdata = mysql_num_rows($dataresult);

Zeile 24
$numfds = mysql_num_fields($fdresult);

Zeile 27
$avwidth = 100 / $numfds;

Das hab ich damit gemeint

 
Schneggo
01-08-2002, 08:29 
 
Es hat funktioniert. Peinlich Peinlich. Hab echt vergessen, die Variablen zu belegen.

 
Schneggo
01-08-2002, 08:32 
 
vielleicht kriegen wir das auswahlmenue auch noch hin, das ich eigentlich bräuchte?

 
hand
01-08-2002, 08:43 
 
<html>
<body>

<table>
<tr>
<td width='115'>Department:</td>
<td width='300'>
<select name='cboAbteilung'>
<?
$db = mysql_connect('localhost' ,'inventory', '20074054');
$res = mysql_db_query("inventory", "select * from Abteilung");
while($row = mysql_fetch_array($res)){
echo "<option value='$row[id_abteilung]'>$row[name] &nbsp;</option>";
}
mysql_close($db);
?>
</select>

</td>
</tr>
</table>

</body>
</html>

Probier es mal und sag was rauskommt.

 
Wotan
01-08-2002, 08:47 
 
Hier kommt der Code mit laufenden Select-Feld.

<html>
<body>
<?php
// Die Informationen werden aus der Datenbank geholt
$db = mysql_connect('localhost' ,'root', 'test');
$res = mysql_db_query("schneggo", "select * from Abteilung");

// Die Datensätze werden einzeln gelesen
while($temp = mysql_fetch_array($res))
{
// Key für den zweidim. Array ermitteln
$ax = $temp["id_abteilung"];

// Die Informationen aus dem Datensatz werden
// über den Key im zweidim. Array gespeichert
$tab[$ax]["name"] = $temp["name"];
}

// Alle Datensätze mit allen Inhalten anzeigen
while(list($dsname,$dswert) = each($tab))
{
// Der Key wird ausgegeben
echo "$dsname : ";

// Informationen aus dem Datensatz ausgeben
while(list($name,$wert) = each($dswert))
{
echo "$wert ";
}
echo "<p>";
}

// Einzelne Beispiel-Informationen werden angezeigt
echo $tab["2297"]["name"] . "<p>";
?>
</body>
</html>

//Code mit Auswahlmenue der nicht funktioniert. Gibt nix aus. Fehler kommt keiner
<html>
<body>

<table>
<tr>
<td width="115">Department:</td>
<td width="300">
<select name="cboAbteilung">
<?
$ret = mysql_db_query("schneggo", "select * from Abteilung");
while($row = mysql_fetch_array($ret))
{
echo "<option value='$row[id_abteilung]'>$row[name]</option>";
}
?>
</select>

</td>
</tr>
</table>

</body>
</html>

ACHTUNG habe die Var für die Datenbank-Verbindung geänder auf meine System. SERVER-NAME, BENUTZERNAME, PASSWORT und DATENBANKNAME musst du wieder auf deine Daten einstellen.

 
Schneggo
01-08-2002, 08:48 
 
Hey, es geht!!! :D

Was hast du geändert??

 
Wotan
01-08-2002, 08:51 
 
Original geschrieben von Wotan
$db = mysql_connect('localhost' ,'root', 'test');
$res = mysql_db_query("schneggo", "select * from Abteilung");

Hier oben habe ich das mysql_close($db) raus genommen.
<select name="cboAbteilung">
<?
Hier habe ich auf eine anderen Datenbank Var umgestellt
$ret = mysql_db_query("schneggo", "select * from Abteilung");
while($row = mysql_fetch_array($ret))
{
Habe diese Zeile auch noch geändert.
echo "<option value='$row[id_abteilung]'>$row[name]</option>";
}
?>
</select>
Hier unten habe ich das mysql_close() raus genommen.

 
Schneggo
01-08-2002, 08:55 
 
Das vorher war eigentlich an "hand" gerichtet, denn der hat es auch geschafft. :)

Aber jetzt hab ich gleich 2 Lösungen. Vielen Dank an euch beide.

 
Schneggo
01-08-2002, 10:39 
 
Also, jetzt haut ja soweit alles hin.

Wie mach ich es jetzt, dass er mir die Auswahl anerkennt. In einem normalen Auswahlmenue gebe ich ja an, 1 ist das 2 ist das usw. Aber wie erkennt er das jetzt??

Muss ich das über die "id_abteilung" machen??
Sage ich dann if = "id_abteilung" 1 dann weise das zu und wenn gleich 2 dann weise das zu???

 
Wotan
01-08-2002, 10:51 
 
???? Ich steht irgentwie auf dem Schlauch, mit dem was du da erzählst.

 
hand
01-08-2002, 11:18 
 
Du hast Dein Formularfeld so definiert <select name='cboAbteilung'>
Also kann der Inhalt im aufgerufenen Skript über die Variable $cboAbteilung abgearbeitet werden

Was Du dann miot der Info machst ist Deine Sache:


<?php

if ($cboAbteilung == "abc") {
print "Heute tu ich was";
}
// oder
switch ($cboAbteilung) {
case "1":
print "Abteilung 1 hast ausgewählt";
break;
case "2":
print "Abteilung 2 hast ausgewählt";
break;
default:
print "Keine gültige Abteilunghast ausgewählt";
}
?>

 
Schneggo
01-08-2002, 11:26 
 
Egal! Ich probier noch 1 Tag rum, wenns nicht klappt, dann erklär ich es dir genauer.

Aber wie kann ich jetzt
<option value=''>&nbsp;</option>
einbauen??

Shit der zeigt des net an. Versuchs mal so:
<option value=''>&!nbsp!;</option>

! nicht beachten

 
Schneggo
01-08-2002, 11:28 
 
zu "HAND"

ja genau, dass hab ich gemeint. Case ist wohl die bessere Methode. Vielen Dank.

 
Schneggo
01-08-2002, 11:41 
 
Habs gelöst! Vielleicht keine besonders gute Lösung aber immerhin eine.

Hab in der Datenbank die erste Abteilung mit keinem Text belegt.

Als Code hab ich dann folgendes genommen.

If($cboAbteilung == "1" AND $strError == "") {
$strError = "Please select a department.";
} Else {
$intAbteilung = $cboAbteilung;
}

 
Wotan
01-08-2002, 12:43 
 
Die lösung ist besser:

<select name="cboAbteilung">
<option selected>Bitte wählen sie aus</option>

<?
$ret = mysql_db_query("schneggo", "select * from Abteilung");
while($row = mysql_fetch_array($ret))
{
echo "<option value='$row[id_abteilung]'>$row[name]</option>";
}
?>
</select>

 
Schneggo
01-08-2002, 12:57 
 
Also, aufs neue.

Wenn ich einen User erstelle, dann wird er in der DB korrekt erzeugt. Nur wenn ich jetzt die Userdaten ändern möchte, dann zeigt er mir die Abteilung die ich vorher ausgewählt habe nicht an. Wie gesagt, in der Datenbank steht es korrekt drinnen.
Wo liegt jetzt da mein Fehler? Ist bestimmt nur eine Kleinigkeit, oder??

Hier mal das komplette Programm


<?
$intSecurity = 0;
$intTimeOut = 900;
$intSecFolder = TRUE;
$strPageTitle = "Create a new user";

Include("../includes/security.inc.php");
Include("../includes/functions.inc.php");
Include("../includes/db.inc.php");

If ($HTTP_POST_VARS["btnSubmit"] != "") {
$strUserID = validateText("User ID", $txtUserID, 3, 20, TRUE, FALSE);
$strFirstName = validateText("First Name", $txtFirstName, 2, 40, TRUE, FALSE);
$strMiddleInit = validateText("Middle Initial", $txtMiddleInit, 1, 1, FALSE, FALSE);
$strLastName = validateText("Last Name", $txtLastName, 2, 40, TRUE, FALSE);
$strEmail = validateEmail("Email Address", $txtEmail, TRUE);
If ($cboLevel == "" AND $strError == "") {
$strError = "Please select a security level.";
} Else {
$intLevel = $cboLevel;
}

If($cboAbteilung == "1" AND $strError == "") {
$strError = "Please select a department.";
} Else {
$intAbteilung = $cboAbteilung;
}





If ($strError == "") {
$strSQL = "SELECT id FROM tblSecurity WHERE userID='$strUserID'";
$result = dbquery($strSQL);
$intFound = mysql_num_rows($result);
If ($intFound != 0) {
$strError = "That userID already exists.";
} Else {
$strSQL = "SELECT id FROM tblSecurity WHERE email='$strEmail'";
$result = dbquery($strSQL);
$intFound = mysql_num_rows($result);
If ($intFound != 0) {
$strError = "That email address already exists.";
} Else {
If ($intLevel != 3) {
$strTempString = "ABCDEFGHIJKLMNPQRSTUVWXYZ123456789";
for ($i = 0; $i < 8; $i++) {
srand ((double) microtime() * 1000000);
$intPos = rand(0, 33);
$strTempChar = substr($strTempString, $intPos, 1);
$strPassword = $strPassword.$strTempChar;
}
} Else {
$strPassword = "nonuser1";
}
$strPassword2 = md5($strPassword);
$strSQL = "INSERT INTO tblSecurity (userID, password, firstName, middleInit, lastName, email, securityLevel, fk_abteilung) VALUES ('$strUserID', '$strPassword2', '$strFirstName', '$strMiddleInit', '$strLastName', '$strEmail', $intLevel, $intAbteilung)";
$result = dbquery($strSQL);
$strError = "User '$strUserID' has been added successfully.";
$addSuccessful = TRUE;

If ($intLevel != 3) {
$strURL = makeHomeURL("/security/createUser.php");

$msgBody = "Your phpMyInventory username is '$strUserID' and your temporary password is '$strPassword'. ";
$msgBody .= "You may log in at $strURL.";
mail($strEmail, "phpMyInventory account created: ".date("m-d-Y"), $msgBody);
}
}
}
}
}

Include("../includes/header.inc.php");
declareError(TRUE);
?>

Users created through this tool will automatically be emailed a random password,
which they can then use to log in for the first time. <p>

<u>Explanation of Security Levels</u>: "Full-access" users can do anything, including create and delete users.
You have full access. "Limited-access" users can edit the inventory database in any way <i>except</i> except for
the ability to delete entries or create other users. "Read-only" users can view data in this database, but
not alter it in any way. "No-access" users cannot access this inventory at all; they will not receive an email
containing account information, or anything else that alerts them to the existence of this system. "No-access"
users can still be assigned systems, software, and peripherals.

<p>

<form name="form1" method="POST" action="createUser.php">
<p><table border='0' width='415' cellpadding='2'>
<tr>
<td width='115'>UserID:</td>
<td width='300'><input type="text" name="txtUserID" value="<?echo $strUserID;?>" size="20" maxlength="20"></td>
</tr>
<tr>
<td width='115'>First Name:</td>
<td width='300'><input type="text" name="txtFirstName" value="<?echo $strFirstName;?>" size="40" maxlength="40"></td>
</tr>
<tr>
<td width='115'>Middle Initial:</td>
<td width='300'><input type="text" name="txtMiddleInit" value="<?echo $strMiddleInit;?>" size="1" maxlength="1"></td>
</tr>
<tr>
<td width='115'>Last Name:</td>
<td width='300'><input type="text" name="txtLastName" value="<?echo $strLastName;?>" size="40" maxlength="40"></td>
</tr>
<tr>
<td width='115'>Email:</td>
<td width='300'><input type="text" name="txtEmail" value="<?echo $strEmail;?>" size="40" maxlength="50"></td>
</tr>
<tr>
<td width='115'>Security Level:</td>
<td width='300'>
<select name='cboLevel'>
<option value=''>&nbsp;</option>
<option value='0' <? echo writeSelected($cboLevel, "0"); ?>>Full-access</option>
<option value='1' <? echo writeSelected($cboLevel, "1"); ?>>Limited-access</option>
<option value='2' <? echo writeSelected($cboLevel, "2"); ?>>Read-only</option>
<option value='3' <? echo writeSelected($cboLevel, "3"); ?>>No-access</option>
</select>
</td>
</tr>
<tr>
<td width='115'>Department:</td>
<td width='300'>
<select name='cboAbteilung'>
<?
$db = mysql_connect('localhost' ,'inventory', '20074054');
$res = mysql_db_query("inventory", "select * from Abteilung");
while($row = mysql_fetch_array($res)){
echo "<option value='$row[id_abteilung]'>$row[name] &nbsp;</option>";
}
mysql_close($db);
?>
</select>

</td>
</tr>

</table><p>

<? If (!$addSuccessful) { ?>
<input type="submit" value="Submit" name="btnSubmit">
<input type="reset" value="Reset" name="reset">
<? } ?>
</form>

<?
Include("../includes/footer.inc.php");
?>

 
Wotan
01-08-2002, 13:08 
 
Du musst das:

echo "<option value='$row[id_abteilung]'>$row[name] &nbsp;</option>";


durch das ersetzen:

echo "<option value='$row[id_abteilung]'";
if ($row[id_abteilung] == $intAbteilung)
{
echo " selected ";
}
echo ">$row[name]</option>\n";

Ich hoffe ich hab es jetzt richtig übersetz auf dein Script.

 
Schneggo
01-08-2002, 13:15 
 
Ich wollt gerade meine Lösung präsentieren. Du warst schneller:rolleyes:

 
Wotan
01-08-2002, 13:20 
 
Was hat du für eine Lösung?

 
Schneggo
01-08-2002, 13:26 
 
echo writeSelected($cboAbteilung, $intAbteilung);

Upps, vielleicht noch die Funktion selber:

Function writeSelected($SelectValue,$OurValue) {
If ($SelectValue==$OurValue) {
Return "selected";
}
}

 
Schneggo
02-08-2002, 07:27 
 
Hab gestern hier meine Lösung für ein leeres Auswahlmenuefeld gepostet, leider ergibt sich jetzt folgendes Problem, wenn ich Datensätze lösche, dann werden die neuen vor dem leeren eingefügt. Sprich es wird mir im Auswahlmenue wieder nicht das leere angezeigt. Wer hat eine bessere Lösung?

War meine Lösung:

If($cboAbteilung == "1" AND $strError == "") {
$strError = "Please select a department.";
} Else {
$intAbteilung = $cboAbteilung;
}


Für folgendes Menue soll es gelten:

while($row = mysql_fetch_array($res)){
echo "<option value='$row[id_abteilung]'";

 
Schneggo
02-08-2002, 08:30 
 
Hat sich erledigt.

Richtiger Code lautet:

$res = mysql_db_query("inventory", "select * from Abteilung");
echo "<option value=''>&nbsp;</option>\n";
while($row = mysql_fetch_array($res)){
echo "<option value='$row[id_abteilung]'";

 
Titus
02-08-2002, 17:38 
 
welchen wert hat denn $Abteilung?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.