Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

auslesen aus der mysql-db klappt nicht

Hi,

beim Versuch, Name und E-Mail aus der DB mit Hilfe eines vorher gesetzten Cookies auszulesen, scheint etwas nicht zu klappen, da beim Auslesen nichts angezeigt wird (die print Zeilen schon, aber die Infos des Array halt nicht). Korrekt in die DB eingetragen wird alles. Die Tabelle besteht auch nur aus benutzer_id, vorname,email.

Weiss jemand Rat?

hier ein Auszug aus dem Code:


elseif(isset ($benutzer_id)):

mysql_pconnect("localhost","root","") or die("Verbindung
nicht möglich");
mysql_select_db("formtest");

//Abfrage deklarieren und ausführen
$abfrage="select*from benutzer_info where
benutzer_id='$benutzer_id'";
$ergebnis=mysql_query($abfrage) or die("Abfrage nicht
möglich");
$zeile=mysql_fetch_array($ergebnis);
print "Hi".$zeile["vorname"].",<br>";
print "Ihre E-Mail Adresse lautet ".$zeile["email"];

endif;

Hier gehts zum Orginal Eintrag "auslesen aus der mysql-db klappt nicht" im Forum

Antworten

Hi,

mysql_error ist dein Freund.
http://www.php.net/mysql-error

Olli
http://www.phptutorials.de


2.

nicht in diesem fall! es scheint kein mysql fehler zu sein. jedenfalls gibt es keine fehlermeldung. es wird einfach nichts ausgegeben...hier nochmal der ganze quelltext, weil ich momentan mit meinem latein ma ende bin.

<?
//Formular erstellen
$formular="
<form action='formtest.php' method='post'>
<input type='hidden' name='formular_gezeigt' value='y'>
Wie lautet Ihr Vorname?<br>
<input type='text' name='vorname' value=''size='20' maxlength='20'>
<br>
Wie lautet Ihre E-Mail Adresse?<br>
<input type='text' name='email' value=''size='20' maxlength='20'>
<br>
<input type='submit' value='Registrieren!'>
</form>
";

//Wenn das Formular noch nicht angezeigt wurde und der Benutzer über
//keinen Cookie verfügt

if ((! isset ($formular_gezeigt))&&(! isset($benutzer_id))):

print $formular;

//Wenn das Formular angezeigt wurde, die Benutzerinformationen jedoch noch
//nicht verarbeitet wurden

elseif (isset ($formular_gezeigt)&& (!isset($benutzer_id))):


srand((double) microtime()*1000000);
$eindeutige_id=uniqid(rand());
//MySQL-Serveranbindung aufbauen und Benutzerdatenbank auswählen
@mysql_pconnect("localhost","root","") or die("Verbindung nicht möglich");
@mysql_select_db("formtest");

//Abfrage deklarieren und ausführen
$abfrage="Insert into benutzer_info values('$eindeutige_id', '$vorname',
'$email')";

$ergebnis= mysql_query($abfrage) or die("Benutzerinformationen konnten nicht
eingefügt werden!");

//Ablaufdatum für Cookie "benutzer_id" auf einen Monat setzen
setcookie ("benutzer_id", $eindeutige_id, time()+2592000);

print "Herzlichen Glückwunsch $vorname";



//Falls Cookie vorhanden ist, Benutzer-ID zum Extrahieren der Informationen aus
//der Benutzerdatenbank verwenden



elseif(isset ($benutzer_id)):

//MySQL-Serveranbindung aufbauen und Benutzerdatenbank auswählen
mysql_pconnect("localhost","root","") or die(mysql_error());
mysql_select_db("formtest");


//Abfrage deklarieren und ausführen
$abfrage="select*from benutzer_info where benutzer_id='$benutzer_id'";
$ergebnis=mysql_query($abfrage) or die(mysql_error());
$zeile=mysql_fetch_array($ergebnis);
print "Hi".$zeile["vorname"].",<br>";
print "Ihre E-Mail Adresse lautet ".$zeile["email"];
print mysql_error();

//alternatives auslesen:
/* while(list($vorname,$email)=mysql_fetch_row($ergebnis))
{
echo"<table width='70' cellspacing='3' cellpadding='3' bgcolor='red' bordercolordark='black' border='2' rules='rows'>";
echo"<tr>";
echo"<th align='center'>vorname</th>";
echo"<th align='center'>email</th>";
echo"</tr>";
echo"<tr>";
echo"<td align='center'>$vorname</td>";
echo"<td align='center'>$email</td>";
echo"</tr>";

}
echo"</table>";
*/ endif;
?>


3.

ersetze die Zeile
elseif(isset ($benutzer_id)): // Was soll der Doppöepunkt?
durch
else if(isset ($_COOKIE['benutzer_id']))

dann lies noch dieses.
Cookiefunktionen
http://www.php.net/manual/de/function.setcookie.php

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.dclp-faq.de/q/q-sql-select.html


mfg

wolfm@n


4.

Danke, werde ich erstmal versuchen...falls es nicht klappt, dann melde ich mich wieder.


5.

Hi!

Leider funktioniert es mit den oben genannten Tipps immer noch nicht. Das Cookie
wird gesetzt, kann auch mit print_r($_COOKIE); ausgelesen werden, aber die Ausgabe des Namens und der E-Mail aus der mysql Tabelle funktioniert trotzdem nicht.

Hat noch jemand eine Idee?


6.

1. hast Du diese Zeile auch geändert?
$abfrage="select*from benutzer_info where benutzer_id='$benutzer_id'";
in
$abfrage="select vorname, email from benutzer_info where benutzer_id='$_COKKIE['benutzer_id']";
$ergebnis= mysql_query($abfrage) or die("Benutzerinformationen konnten nicht
ausgelesen werden! Fehlermeldung: ".mysql_error());

2. Dein INSERT Stimmt nicht.
Richtig ist: $abfrage="Insert into benutzer_info (eindeutige_id, vorname, email) values('$eindeutige_id', '$vorname',
'$email')";
$ergebnis= mysql_query($abfrage) or die("Benutzerinformationen konnten nicht
eingefügt werden! Fehlermeldung: ".mysql_error());

3. Lass die @ vor mysql_pconnect und mysql_select_db weg. Sie unterdrücken Fehlermeldungen.

4. verwende mysql_connect und nicht mysql_pconnect. Sonst musst Du die Verbindung am Schluss schliessen.
$link="mysql_pconnect("localhost","root","") or die("Verbindung
nicht möglich");
.....
.....
mysql_close($link);

So, nun sollte es funktionieren. Habe es nicht getestet.
Sorry, hatte vorher keine Zeit Deinen Thread genau durchzulesen.

mfg

wolfm@n


7.

Das Problem hat sich inzwischen erledigt. Es lag an ein einer Längenbegrenzung des benutzer_id Feldes in der mysql DB...


Hier gehts zum Orginal Eintrag "auslesen aus der mysql-db klappt nicht" im Forum
 
phpforum.de | Impressum