MAMP: Problem beim Auslesen aus Mysql DB

Yogy27

Yogy27

Aktives Mitglied
Thread Starter
Dabei seit
13.01.2005
Beiträge
370
Reaktionspunkte
0
Hallo,

und zwar muss ich für die Schule ein einfaches Umfrage Script mit Kommentaren erweitern, dafür hab ich mir Mamp installiert, funzt auch soweit, also PHp wird interpretiert, MYsql läuft und meine Tabbellenstruktur hab ich importiert. Doch nun das Problem, mein Script liest und schreibt keine Daten in die DB. Der User hat aber volle Rechte mit dem das Script Zugreift, weiß jemand Rat ?
 
Sorry, meine Kristallkugel ist in der Reperatur :D

Nee, mal im Ernst: Es hilft ungemein, wenn man einen
Quellcode postet :)
 
So hier werden die variablen in die DB eingespeist

$submitbutton = array_item($_POST, 'submitbutton');
$vote = array_item($_POST, 'opinion');
$com = array_item($_POST, 'eingabe');
$knamee = array_item($_POST, 'knamee');
if($submitbutton=="OK") {
if($vote>=0 && $vote<=4) {
mysql_query("INSERT INTO votelanguage(choice,comment,kname) VALUES($vote,'$com',$knamee)");
}

Das macht er nicht, und auslesen auch nicht, obwohl es vorher auf nem normalen MYsql server auf der Schule noch lief.
 
Keine Ahnung, ob das jetzt der einzige Fehler ist, aber wenn du Variablen in-
nerhalb einzelner Anführungszeichen (') setzt, wird nicht ihr Inhalt, sondern
nur der Name ausgegeben :)

Außerdem fehlt da, wenn nicht nur durch den Codeschnipsel bedingt, den du
da gepostet hast, noch eine schließende geschweifte Klammer....

Also:
Code:
$submitbutton = array_item($_POST, 'submitbutton');
$vote = array_item($_POST, 'opinion');
$com = array_item($_POST, 'eingabe');
$knamee = array_item($_POST, 'knamee');

if($submitbutton=="OK") 
 {
  if($vote>=0 && $vote<=4) 
   {
    mysql_query("INSERT INTO votelanguage(choice, comment, kname) VALUES(".$vote.", ".$com.", ".$knamee.")");
   }
 }
....oder einfach
Code:
mysql_query("INSERT INTO votelanguage(choice, comment, kname) VALUES ($vote, $com, $knamee)");
 
Danke aber das geht soweit, ich denke es liegt einfach an der Datenbank von MAMP.
 
lies doch mal den fehlercode von der mysql_query aus...
oder probier die query in phpmyadmin, damit du mal rauskriegst was daran falsch ist...

öffnest du die DB auch korrekt?
 
Laß Dir die Query als PHP-String auf dem Bildschirm ausgeben, statt sie auszuführen!
Folge damit den Tipps von OneOeight und Du solltest den Fehler finden.
 
Wie macht man das ? Sorry ich bin echt nen ziemlicher noob in mysql, php krams.
 
quick'n'dirty ohne möglichkeien zu Testen würde ich das script so ändern:


PHP:
$submitbutton = array_item($_POST, 'submitbutton');
$vote = array_item($_POST, 'opinion');
$com = array_item($_POST, 'eingabe');
$knamee = array_item($_POST, 'knamee');

if($submitbutton=="OK") 
 {
  if($vote>=0 && $vote<=4) 
   {
      $qry= "INSERT INTO votelanguage(choice, comment, kname) VALUES(".$vote.", ".$com.", ".$knamee.")";
    echo $qry; // Um den Query auszugeben
      mysql_query($qry);
    echo mysql_error(); // Um die MySQL-Fehlermeldung auszugeben
   }
 }

Aber mag mir mal einer die Funktion array_item erklären? Hab die weder bei SelPHP noch im PHP-Hanbduch gefunden...

gruß
Lukas
 
machst du vorher ein mysql_connect und guckst, ob die DB erfolgreich geöffnet wurde?

dann mach doch einfach mal ein
print("INSERT INTO votelanguage(choice,comment,kname) VALUES($vote,'$com',$knamee)");
dann siehst du erstmal was da php draus macht, also ob deine query überhaupt korrect ist...

lies mal http://de2.php.net/mysql_query , das gibt dir doch bei einem INSERT true or false zurück, da siehst du, ob die query erfolg hatte...
 
Danke ich probiers mal aus. So es scheint zu gehen, die beiden werte, also Name und Kommentar hat er drin. Habs nun auf meinem Webserver probiert, da geht auch alles. Liegt also an dem Programm MAMP das ja einen PHP und Mysql server auf meinem Desktop bereitstellt, also liegt da das Problem.

INSERT INTO votelanguage(choice,comment,kname) VALUES(1,'Sehr Toll',Bernd)INSERT INTO votelanguage(choice,comment,kname) VALUES(1,'Sehr Toll',Bernd)INSERT INTO votelanguage(choice,comment,kname) VALUES(1,'Sehr Toll',Bernd)INSERT INTO votelanguage(choice,comment,kname) VALUES(1,'Sehr Toll',Bernd)INSERT INTO votelanguage(choice,comment,kname) VALUES(1,'Sehr Toll',Bernd)
 
Was gibt denn die Funktion votelanguage zurück? Vielleicht liegt da ja der Hase begraben?
Nur so als Theorie...
 
koli.bri schrieb:
Was gibt denn die Funktion votelanguage zurück? Vielleicht liegt da ja der Hase begraben?
Nur so als Theorie...


das ist die relation in die eingefügt wird ;-)
 
an MAMP wird es nicht liegen, welche version von php/mysql hat das von dir installierte MAMP und was ist auf dem server?
 
ich tippe auch eher auf einen Verbindungsfehler zur DB ... schau mal ob die DB überhaput connected wird (liefert net mysql_connect auch ein true/false ??)
 
<?php
$mysqlhost="localhost";
$mysqluser="gast";
$mysqlpasswd="******";
$mysqldbname="votelanguage";
$link = mysql_connect($mysqlhost, $mysqluser, $mysqlpasswd);
if ($link == FALSE) {
echo "<p><b>Leider kann keine Verbindung zur Datenbank hergestellt werden.
Daher können die Ergebnisse zur Zeit nicht angezeigt werden.
Bitte versuchen Sie es später noch einmal .</b></p></body></html>";
exit;
}
mysql_select_db($mysqldbname);
?>

Das ist meine Connect.inc und das funzt ja sonst würd er ja sagen kein Connect.

PHP Version ist 4.41 oder so.
 
DB ist auch angelegt ? Ist dein DB Name = Tabellenname ?!? Weil dein Code würde dies voraussetzen ...
 
Mein DBname ist votelanguage so wie in Zeile 5 angegeben.

Das funzt, weil das selbe ja mit anderen Werten auf meinem Server funzt halt nur nicht mit Mamp.
 
timbajr schrieb:
das ist die relation in die eingefügt wird ;-)

*gnarf*....
Ich bin ja total Copy&Pase geschadet... weiß nichtmal, wie man einen SQL-Befehl richtig aufbaut...
Boah, was bin ich blöd....
das ihr nicht direkt gesagt habt "was will jemand mit So einer Frage hier überhaupt" ist ja schon das größte Glück, was ich heute hatte!!!

Boah ne, das ist so peinlich...
tut mir Leid...

*memo an mich selbst* Neue SQL-Schulung beantragen... *memo an mich selbst*
 
Yogy27 schrieb:
Mein DBname ist votelanguage so wie in Zeile 5 angegeben.

Das funzt, weil das selbe ja mit anderen Werten auf meinem Server funzt halt nur nicht mit Mamp.

Und die Tabelle heißt auch votelanguage?
Weil die nächste Vermutung wäre, dass Die Tabelle nicht existiert...
Also nur die Datebank angelegt worden ist, aber die Tabelle "übersehen" worden ist.

weil, ohne irgendwelche Datenbankdesigns kritisieren zu wollen, ein wenig merkwürdig ist es für mich schon, dass die Datenbank so wie die Tabelle heißt...

aber ich hab mich ja eben schon als Idiot geoutet, daher, falls es nicht funzt, bitte nicht übelnehmen ^^

gruß

Lukas

PS.: Jetzt schon als Blinder Idiot geoutet, das wurde ja schon vorher geschrieben *gnarf* Das ist nicht mein Tag...
 
Zurück
Oben Unten