Community

9dots.de Webdesign Board

 

 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 

 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 


Codingfragen (Bin Anfänger)
Gehe zu Seite 1, 2  Weiter
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    9dots.de Webdesign Community Foren-Übersicht -> Coding-Support
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 19.12.2004, 19:58    Titel: Codingfragen (Bin Anfänger) Antworten mit Zitat
So nachdem ich mich mit anfänglichen Startschwierigkeiten und Präsentationen von einfachen Scripts hier im Forum weiterhin intensiv mit PHP/MySQL auseinandergesetzt hab, hab ich es geschafft ein einfaches Mitglieder-Script mit Login und zum Test nur 3 Feldern (Name + eMail + Join Datum) zu coden.
Das Daten hinzufügen bereitet keine weiteren Probleme. Aber jetzt wird es für einen Einsteiger wie mich etwas problematisch. Deswegen wende ich mich an die erfahrenen Coder aus dem 9dots-Forum Winken

1. Problem
ich möchte, dass die Members (2 zum Test eingetragen) in einer 3-Spalten-Tabelle absteigend aufgelistet werden. Allerdings ergibt sich bei diesem Code
Zitat:

// Datenausgabe

$qry = "SELECT id, member, email, einstieg FROM mitglieder";
$show = mysql_query($qry);
while($row = mysql_fetch_object($show))
{
include "header.php";
echo "
<tr>
<td width=\"33%\"><font face=\"Verdana\" size=\"1\">$row->member<br></font></td>
<td width=\"33%\"><font face=\"Verdana\" size=\"1\">$row->email<br></font></td>
<td width=\"34%\"><font face=\"Verdana\" size=\"1\">$row->einstieg<br></font></td>
</tr>
</table>
";

}
?>

folgendes Problem:

Zitat:

So soll es aussehen:

_______Name_________|________eMail________|________Einstieg________
1. Member | 1. Membermail | Einstieg 1. Member
2. Member | 2. Membermail | Einstieg 2. Member

usw.

So sieht es leider aus:

_______Name_________|________eMail________|________Einstieg________
1. Member | 1. Membermail | Einstieg 1. Member
_______Name_________|________eMail________|________Einstieg________
2. Member | 2. Membermail | Einstieg 2. Member



Wo liegt der Fehler?

-----------

2. Problem:

Ich möchte bei einem Member über die MySQL-Update Funktion beispielsweise einen Member editieren. Dazu möchte ich erst alle Member in einem DropDown-Formularfeld auflisten. und wenn man einen Member ausgewählt hat soll man auf OK klicken und gelangt zu einer neuen Seite wo in 2 Formularfelder schon die bestehenden Daten die ich editieren möchte aufgelistet sind.

Frage: Wie stelle ich es an, dass ich alle Member in einem DropDown Feld rowe, einen Member somit auswählen kann, auf OK klicke und dementsprechend auf die besagte neue Seite gelange wo die Daten des Members (eMail + Einstieg) in einem normalen Formularfeld zum editieren gerowt sind. Wenn ich diese geändert hab, soll alles über MySQL UPDATE aktualisiert werden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 19.12.2004, 20:39    Titel: Antworten mit Zitat
Zu 1: Du hast in der Schleife nen Tag drin! Dann macht er immer ne neue Tabelle, das bringt nicht das gewünschte Ergebnis! Also machst du folgendes:

Zitat:
(table border="0" width="" height="") ( also halt die Tabelle definieren)
(tr)
(td)Name(/td)(td)Email(/td)(td)Eintrag(/td)
(/tr)


PHP Teil
Hier deine Schleife
Ende PHP Teil


(/table)



Du musst natürlich die runden klammern durch spitze ersetzen. Hab das nur gemacht, weil es sonst Probleme mit dem Posting gab Smilie


Leider hab ich jetzt gerade keine Zeit dir dein Problem Nr.2 zu lösen, da das schon etwas ausführlicher ist, aber ich denke das beantwortet dir jemand anderes Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
unex`9dots
Administrator
Administrator


Angemeldet: 02.08.2003
Beiträge: 1106
Wohnort: Karlsruhe
Interessen: Coding, Segeln, Schwimmen, PC

BeitragVerfasst am: 20.12.2004, 01:41    Titel: Antworten mit Zitat
zum 2.Problem:

also zu erst machst du eben ein Formular mit einer selectbox und einem submit button

<form action="zieldatei.php" method="POST">
<select name="memberid">
-->ALLE MEMBER AUS DABA AUSLESEN
-->IN EINER WHILE SCHLEIFE FUER JEDEN MEMBER EIN OPTION ERSTELLEN
{
<option value="$memberid">$membername</option>
}
</select>
<input type="submit" name="submit1" value="Member bearbeiten">
</form>

dann hast du ja schonmal deine auswahl mit allen membern. wenn du jetzt auf ok klickst kommst du auf die seite zieldatei.php. In der Variablen $_POST['memberid'] befindet sich dann die id des members, anhand der du wieder eine select abfrage an die daba schicken kannst und eben NUR die daten dieses members auslesen kannst damit du diese dann zum edit bereitstellen kannst.

Hoffe es hat geholfen. Die Abfragen und das endgültige Formular kriegst du ja wohl hin.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 20.12.2004, 13:43    Titel: Antworten mit Zitat
Rechtherzlichen Dank euch beiden erstmal Winken Werds nachher mal ausprobieren! Eventuelle Fragen stell ich dann ggf. hier nocheinmal Winken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 20.12.2004, 17:10    Titel: Antworten mit Zitat
@elite, wenn ich es so wie du sagtest folgendermaßen schreibe:

Zitat:

// Datenausgabe

$qry = "SELECT id, member, email, einstieg FROM mitglieder";
$show = mysql_query($qry);
while($row = mysql_fetch_object($show))
{
echo "
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">
<tr>
<td width=\"33%\"><font face=\"Verdana\" size=\"1\">» Member</font></td>
<td width=\"33%\"><font face=\"Verdana\" size=\"1\">» eMail-Adresse</font></td>
<td width=\"34%\"><font face=\"Verdana\" size=\"1\">» Dabei seit</font></td>
</tr>
$row->member $row->email $row->einstieg
</table>
";

}
?>


kommt das dabei raus:

Zitat:

testmember testemail@mail.de 01.01.2005
» Member » eMail-Adresse » Dabei seit
testmember testemail@mail.de 01.01.2005
» Member » eMail-Adresse » Dabei seit


Traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
unex`9dots
Administrator
Administrator


Angemeldet: 02.08.2003
Beiträge: 1106
Wohnort: Karlsruhe
Interessen: Coding, Segeln, Schwimmen, PC

BeitragVerfasst am: 20.12.2004, 17:21    Titel: Antworten mit Zitat
dann schau ich mir eben das 1.Problem auch mal an Smilie


Zitat:

<table>
<tr>
<td width="33%"><font face="Verdana"
size="1">Member:</font></td>
<td width="33%"><font face="Verdana"
size="1">Email:</font></td>
<td width="34%"><font face="Verdana"
size="1">Einstieg:<br></font></td>
</tr>
<?PHP
$abfrage="SELECT * FROM mitglieder"; $ergs=mysql_db_query(DB_name,$abfrage,$verbindung);
while(list($id,$member,$email,$einstieg)=mysql_fetch_row($ergshow13)){
echo"<tr>
<td width=\"33%\"><font face=\"Verdana\"
size=\"1\">$row->$member<br></font></td>
<td width=\"33%\"><font face=\"Verdana\"
size=\"1\">$row->$email<br></font></td>
<td width=\"34%\"><font face=\"Verdana\"
size=\"1\">$row->$einstieg<br></font></td>
</tr>";
}
?>
</table>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 20.12.2004, 18:00    Titel: Antworten mit Zitat
nanos hat folgendes geschrieben:
@elite, wenn ich es so wie du sagtest folgendermaßen schreibe:

Zitat:

testmember testemail@mail.de 01.01.2005
» Member » eMail-Adresse » Dabei seit
testmember testemail@mail.de 01.01.2005
» Member » eMail-Adresse » Dabei seit


Traurig


Hmm ich glaube da hast du meinen ersten Post missverstanden! Ich hatte doch folgendes geschrieben:

Code:
<table border="0" width="" height=""> ( also halt die Tabelle definieren)
<tr>
<td>Name</td><td>Email</td><td>Eintrag</td>
</tr>


PHP Teil
Hier deine Schleife
Ende PHP Teil


</table>



Ich hatte gedacht, dass dir dadurch klar war, dass die Table-Definition und die Überschriften nicht mit in die Schleife sollten ! Weil wenn du das ganze in die Schleife mit reinschreibst:

Code:

// Datenausgabe

$qry = "SELECT id, member, email, einstieg FROM mitglieder";
$show = mysql_query($qry);
while($row = mysql_fetch_object($show))
{
echo "
<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" style=\"border-collapse: collapse\" bordercolor=\"#111111\" width=\"100%\">[/b]
<tr>
[b]<td width=\"33%\"><font face=\"Verdana\" size=\"1\">» Member</font></td>
<td width=\"33%\"><font face=\"Verdana\" size=\"1\">» eMail-Adresse</font></td>
<td width=\"34%\"><font face=\"Verdana\" size=\"1\">» Dabei seit</font></td>
</tr>
$row->member $row->email $row->einstieg
</table>
";

}
?>



dann kann es auch nicht so gehen wie du es gern hättest, da jedesmal eine neue Tabelle angelegt wird für jeden Eintrag ( Das kommt daher, da du das ganze IN der Schleife hattest. Und da die Schleife den Befehl so lange wiederholt bis alle mySQL Datensätze ausgelesen sind, wurde auch für jeden Datensatz eine neue Tabelle angelegt! )!


Lage Rede kurzer Sinn: In die Schleife gehören nur die tr bzw. td Tags die die jeweiligen Memberdaten auflisten, nicht die table definierungen und die Überschriften!


Mfg

elite
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 20.12.2004, 18:05    Titel: Antworten mit Zitat
achso, danke euch beiden nochmal für die mühe Winken
sorry wenn ich mich mit für mich nicht so plausiblen erklärungen noch etwas schwer tue Winken muss das erstmal langsam nachvollziehen können Smilie aber hab das prinzip jetzt verstanden. ist für mich nunmal auch unangetastetes terrain Auf den Arm nehmen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 03.01.2005, 03:21    Titel: Antworten mit Zitat
hab versucht, problem 2 so umzusetzen wie ich es verstanden habe:

Code:

<body>
<?php

//Datenbankverbindung

$connect = mysql_connect ("localhost","root","")
or die ("Keine Verbindung möglich. Bitte überprüfen Sie die Datenbankverbindung!");

mysql_select_db("homepage")
or die ("Die Datenbank existiert nicht!");

$qry = "SELECT id, member FROM mitglieder";
$show = mysql_query($qry);

// Datenausgabe

echo("<form method=\"POST\" action=\"sql_change.php\">");

echo("Name: <select size=\"1\" name=\"id\">");

while($row = mysql_fetch_object($show))
{
echo("<option value=\"id\">$row->member</option>");
}

?>
</select>
<input type="submit" value="Member bearbeiten" name="submit1">
</form>
</body>


soweit bin ich schonmal, hab jetzt nur nicht verstanden, wie es weitergeht..
denn wenn meine sql_change.php so aussieht (zwischen den body-tags):
Code:

<?php

$POST_['id'] = $id;

echo($id);

?>

also wenn ich nur die weitergabe vom formular überprüfen will, steht als ausgabe auf der sql_change.php nur
Code:
id

Traurig
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
unex`9dots
Administrator
Administrator


Angemeldet: 02.08.2003
Beiträge: 1106
Wohnort: Karlsruhe
Interessen: Coding, Segeln, Schwimmen, PC

BeitragVerfasst am: 03.01.2005, 09:08    Titel: Antworten mit Zitat
2 sachen:

in deinen <option....> Objekten des Forulars musst du value=id ändern!

value ist das was dir später in sql_chamge.php gepostet wird. Wenn du das also statisch auf id setzt wundert es mich wenig wenn da auch immer nur id ankommt. Ersetz es durch die jeweilige id die du gerade aus der Datenank ausliest.

zweitens verstehe ich deine sql_change.php nicht.

$POST_['id'] = $id; ist falsch.

$_POST['id'] sollte den Value der ausgewählten option der Selectbox enthalten. Jede weitere Zuweisung ist unnötig. Also einfach in der sql_change.php

echo $_POST['id']; das sollte reichen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 03.01.2005, 13:25    Titel: Antworten mit Zitat
ok also
Code:
echo("<option value=$row->id>$row->member</option>");
?

Dann kommt bei der jeweiligen Memberauswahl jeweils 1, 2, usw. in der sql_change.php an.
und zu der variablenzuweisung: wollte es einfach in eine kürzere variable packen Winken
so und jetzt muss ich einen select-query ausführen, mit der jeweiligen id die übergeben wurde und dann werden die daten des zu editierenden mitglieds ausgegeben (in einem formularfeld - wo ich wieder mit der while-schleife arbeiten muss)?

kann das beim folgenden query so aussehen:
Code:
$qry = "SELECT member, email, einstieg FROM mitglieder WHERE id LIKE $id";

?
oder darf keine variable in der sql-anfrage stehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
rey
Mitglied
Mitglied


Angemeldet: 24.07.2004
Beiträge: 810
Wohnort: Bad Homburg
Interessen: synth ;)

BeitragVerfasst am: 03.01.2005, 13:34    Titel: Antworten mit Zitat
Habe jetzt leider keine Zeit, antworte nur mal schnell auf deine letzte Frage: wenn die Variable deklariert ist, darf sie in der MySQL-Abfrage stehen. PHP wird bei der Anfrage diese Variable ganz einfach durch ihren Wert ersetzen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 03.01.2005, 13:45    Titel: Antworten mit Zitat
Ein Wert wird ja durch das Formular in jedem Fall angegeben, da 'id' ja definiert ist.
Soweit beantwortet das meine Frage, danke! Winken

Außerdem würde mich noch interessieren ob ich meine nächsten Ziele richtig interpretiert habe:
Zitat:
und jetzt muss ich einen select-query ausführen, mit der jeweiligen id die übergeben wurde und dann werden die daten des zu editierenden mitglieds ausgegeben (in einem formularfeld - wo ich wieder mit der while-schleife arbeiten muss)?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
nanos
Mitglied
Mitglied


Angemeldet: 04.06.2004
Beiträge: 1752


BeitragVerfasst am: 03.01.2005, 17:14    Titel: Antworten mit Zitat
soweit so gut funktioniert alles. hätte nicht gedacht, dass es so einfach sein kann. Winken
danke nochmal allen, die mir geholfen haben.
meine abschließende frage: wie ordne ich die member im dropdown-feld nach der id undzwar aufsteigend und nicht absteigend (sowie es jetzt der fall ist).


bislang siehts bei mir so aus:
http://excited.xulu.net/n-cms.jpg

bin eigentlich voll und ganz zufrieden Auf den Arm nehmen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
elite
Mitglied
Mitglied


Angemeldet: 20.07.2004
Beiträge: 1005

Interessen: Coding, DLRG, Radsport

BeitragVerfasst am: 03.01.2005, 17:48    Titel: Antworten mit Zitat
Code:
$qry = "SELECT * FROM $tabelle ORDER BY id DESC";


Nur ein kleines Beispiel! Jetzt würde er mit der höchsten id anfangen und mit der kleinsten aufhören! DESC ist also das Zauberwort Smilie
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    9dots.de Webdesign Community Foren-Übersicht -> Coding-Support Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Board Software by phpBB © 2001, 2005 phpBB Group. Impressum
Dominik Wuttke - Moritz Münchmeyer - Joachim Nagel GbR.
AGB