| Suchen | |
|
#1
|
|||
|
|||
|
Hallo,
ich möchte nach einem Login eine Abfrage an die DB machen ob diese ID bereits existiert. Wenn das der Fall ist soll eine Meldung erscheinen Sie habe bereits bla bla.. Jetzt habe ich das Problem wenn die user ID noch nicht in der Tabelle existiert ein Formular mit frage erscheint welches in 8 themen unterteilt ist. Nach dem der user das 1. Thema beantwortet hat und auf den Submit button klickt erscheint das 2.Thema mit den fragen. Klickt er dann wieder auf den Submit kommt die Fehlermeldung das er bereits bla bla... Logisch nach dem ersten Thema wurde die user_ID ja bereits in die DB eingetragen. Wie kann ich es anstellen das er die Abfrage der ID nur beim einloggen vornimmt und nicht jedesmal nach dem er den Submit Button klickt ? Hier mal der CODE: PHP Quellcode:
<?PHP
session_start(); include ("header.html"); include("connect.inc.php"); if (!session_is_registered('username')) { die ("<font face=\"Verdana\" font size=\"2\">Sorry, aber sie haben sich wohl nicht eigeloggt, oder ?"); } //------------- Der User hat bereits an der Umfrage teilgenommen?--------------- $query = mysql_query("SELECT * FROM antworten WHERE user_ID = '".$ID."'"); if(mysql_num_rows($query) != 0) { echo "<FONT FACE=\"Verdana\" SIZE=\"2\">"; echo "Sorry, Sie haben bereits an der Umfrage teilgenommen!"; echo " "; echo "<input type=\"button\" name=\"logout\" value=\"logout\" onClick=\"location.href='logout.php'\">"; echo "</FONT>"; } else { //------------ Wenn nicht wird das Formular zum abstimmen angezeigt.------------ if(isset($_POST[nextThema])) { if($_POST[nextThema] == "leer") { echo "<FONT FACE=\"Verdana\" SIZE=\"2\" COLOR=\"#336699\">[b]Auf Wiedersehen![/b] "; echo "<input type=\"button\" name=\"logout\" value=\"logout\" onClick=\"location.href='logout.php'\">"; return; }else $index=$_POST[nextThema]; reset ($_POST); while (list ($key, $val) = each ($_POST)) { $frage=explode("-",$key); if($frage[0]=="ant") mysql_query("insert into antworten (fragen_ID, ant_moe_ID, user_ID) VALUES ('".$frage[1]."','".$val."','".$ID."')"); } } else $index=1;// 1. aufruf... noch kein "nächstes thema" gesetzt $nextindex=-1; ?> <FORM name="frmRegister" method="POST" action="<? echo $PHP_SELF ?>"> <? $result = mysql_query("SELECT * FROM user WHERE ID = '".$ID."'"); while ($daten = mysql_fetch_array($result)) { echo "<FONT FACE=\"Verdana\" SIZE=\"2\">"; echo "Sie sind eingeloggt als:\n[b]<u><FONT COLOR=\"#FF9900\">"; echo $daten[1]; echo "\n"; echo $daten[3]; echo "\n"; echo $daten[2]; echo "[/b]</u></font>"; $i=0; $result1 = mysql_query("SELECT * FROM themen WHERE ID>= '".$index."' LIMIT 2"); while ($trow = mysql_fetch_array($result1)) { if($i == 0) { echo "<u>[b]"; echo "<FONT COLOR=\"#336699\">"; echo " "; echo $trow['thema']; echo "</u>[/b]</FONT>"; $i++; } else $nextindex=$trow['ID'];//hier steht die nächste themenid drin } $result2 = mysql_query("SELECT * FROM fragen WHERE themen_ID = '".$index."'") OR die(mysql_error()); while($frow=mysql_fetch_array($result2)) { echo " [b]"; echo "<FONT FACE=\"Verdana\" SIZE=\"2\">"; echo " "; echo $frow['frage']; echo "[/b] "; $result3 = mysql_query("SELECT * FROM ant_moe") OR die(mysql_error()); while($rw=mysql_fetch_array($result3)) { echo "<FONT FACE=\"Verdana\" SIZE=\"2\">"; echo "<input type=\"radio\" name=\"ant-".$frow[0]."\" value=\"".$rw[0]."\">\n"; echo $rw[1]; echo "</font>"; } } } echo " "; if($nextindex != -1)// nur wenn es neue themen gibt muss man das feld einfügen echo'<input type=hidden name="nextThema" value="'.$nextindex.'">'; else // ansonsten letzte seite echo'<input type=hidden name="nextThema" value="leer">'; echo '<input type="submit" value="Weiter" onclick="return checkForm()" >'; } echo "</FORM>"; ?> |
|
#2
|
|||
|
|||
|
Wie werden die Antworten gespeichert? Kannst du nicht zuaätzlich prüfen, ob eine bestimmte Seite schon gemacht wurde?
|
|
#3
|
|||
|
|||
|
Aua das tut weh....
Klar kann ich das. *versteck* Danke dir |
|
#4
|
|||
|
|||
|
hmmm noch eine Frage.
Mir fällt jetzt erst auf das in dem Script das letzte Thema nicht eingetragen wird. Ich suche jetzt schon seid über 2 std. warum das so ist. Vielleicht bin ich ja auch schon Blind. Wäre für jeden Tip dankbar. |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| MySQL Abfrage: insert und select in einer Abfrage | phil0r | Datenbanken | 9 | 08.11.2006 16:12 |
| [MySQL Abfrage] in abfrage daten einer anderen Tabelle einlesen | Donar | Datenbanken | 6 | 18.02.2006 19:29 |
| db-abfrage mit php befehl verlinken+keine abfrage doppelt | Superkebap | PHP | 3 | 23.03.2005 19:15 |
| Zwei Abfrage in einer Abfrage erstellen | Vintaurus | Datenbanken | 0 | 07.03.2005 15:13 |
| Php-formular! Hilfe bei "einer If-abfrage in der If-abfrage" | brotherlouie23 | PHP | 5 | 15.02.2005 15:43 |