kein MySQL Zugriff ohne Error

Gesperrt
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

kein MySQL Zugriff ohne Error

Beitrag von JulianH. »

Hi Leute...

ich hab nen ziemlich merkwürdiges Problem...
Ich habe ein Modul gebaut, das Wörter in eine extra MySQL Datenbank schreibt.....Zuvor füllt der User ein Formular aus welches dann ausgewertet wird und an die DB weitergegeben wird....

Wenn ich jetzt aber auf "Submit" klicke....schreibt er nicht in die Datenbank......und das ohne einen Mucks zu sagen...

Es steht nichts! in der errorlog.txt drin, noch ist in der Statuszeile etwas zu erkennen...
An meiner Datenbank hat sich natürlich auch nichts getan...

Hat jemand eine Idee?
Auf Wunsch poste ich den Code..

Gruß
Julian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

sieh dir dein insert statement an und schau ob die daten dann wirklich zur verfügung stehen.
*** make your own tools (wishlist :: thx)
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

ich habe jetzt ein paar Sachen getestet....
also z.b. einfach eine falsche datenbank angegeben...oder eine Spalte aufgerufen die es nicht gibt....usw.

im Normalfall...gibt "mysql_result" ein FALSE zurück wenn keine Ergebnis besteht....
Es komtm aber weder ein TRUE noch ein FALSE an !!!

Ich weis echt nicht mehr weiter...

Julian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

ein mysql_query hast du vorher aber schon ausgeführt oder ?
poste mal dein script...
*** make your own tools (wishlist :: thx)
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

hallo emergence,

ich poste jetzt nur den PHP Teil...der andere teil ist überflüssig...

so wie es dort ist, kommt es auch in meinem Modul vor...

Code: Alles auswählen

<?php

if ($edit)
{

echo "Geben Sie eins oder mehrere Stichwörter zur jeweiligen Gruppe ein.<br>

  <form action=\"\" name=\"eingabe\" method=\"post\" onSubmit=\"return chkFormular()\">
  <pre>
  <input type=\"text\" name=\"rezept\" >Rezept-Stichwort<br>
  <input type=\"text\" name=\"zutat\" >Zutaten-Stichwort<br>
  <input type=\"text\" name=\"art\">Art des Rezeptes (Dessert)<br>
  <input type=\"text\" name=\"aufwand\">Aufwand (mittel/schwer)<br>
  <input type=\"submit\" name=\"senden\" value=\"Speichern\"><br>
  </pre>
  </form>
  ";

$db = mysql_connect()
    OR die ('ERROR');



     /*Art und Aufwand des Rezeptes-----------Rezept wird geschrieben----------------------------------------------*/

    if (isset($senden) && ($art!="" && $aufwand!=""))
	{
	$awd = "$aufwand";
    $art_rzp = "$art";
	echo "Das Rezept ist unter der Kategorie: $art_rzp und ist im Artikel Nr.<b>$idart</b> gespeichert.<br>";
	echo "Der Aufwand bzw. Schwierigkeitsgrad beträgt : $awd und ist in Artikel Nr.<b>$idart</b> gespeichert.<br>";
	
	/*-A-----SELECT ContenidoDB Titel des Artikels-------------*/
	$qryTitel = "SELECT title FROM con_art_lang where idart= $idart";
	$resTitel = mysql_db_query("leer",$qryTitel);
	$title = mysql_result($resTitel,0);



	/*-B-----INSERT Tabelle Rezept -------------------------------*/
           $qryRezept = "INSERT INTO rezept (rzp_name,rzp_art,rzp_aufwand,rzp_conartid) VALUES ($title,$art,$aufwand,$idart)";
           $resRezept = mysql_db_query("leer",$qryRezept);

	}
                else exit;
                // TODO FEHLERMELDUNG

    /*Rezept-Stichwörter---------------------------------------------------------------------------------------*/
                
    if (isset($senden) && $rezept!="")
	{
	$kwd_art = "r";
	$rzp = "$rezept";
	$exRezept = explode ("," , $rzp);

                echo "Das Rezept ist durch : ";
                foreach ($exRezept as $value) 
  		{
    	                $r++;
		echo "<b>$value, </b>"; 
  		}
               echo "im Artikel Nr.<b>$idart</b> zu finden.<br>";

               echo "Im Feld: <br>";
               for ($i=0;$i<$r;$i++) 
		{
    	                echo "$i steht das Wort: $exRezept[$i].<br>";  
		
		/*-F-----INSERT Tabelle keyword---------------------------------*/
		$qryKeyword = "INSERT INTO keyword (kwd_art,kwd_text) VALUES ($kwd_art,$exRezept[$i])";
		$resKeyword = mysql_db_query("kochbuch",$qryKeyword);

		/*-C-----SELECT Tabelle keyword-----------------------------*/
		$qryKWD = "SELECT max(kwd_id) FROM keyword";
		$resKWD = mysql_db_query("kochbuch",$qryKWD);
		$rhk_kwdid = mysql_result($resKWD,0);

		/*-D-----SELECT Tabelle rezept----------------------------------*/
		$qryREZ = "SELECT max(rzp_ID) FROM rezept";
		$resREZ = mysql_db_query("kochbuch",$qryREZ);
		$rzp_ID = mysql_result($resREZ,0);

		/*-E-----INSERT Tabelle rezept_hat_keyword-------------------*/
		$qryRHK = "INSERT INTO rezept_hat_keyword (rhk_rzpid,rhk_kwdid) VALUES ($rzp_ID,$rhk_kwdid)";
		$resRHK = mysql_db_query("kochbuch",$qryRHK);
 
  		}
    echo "<br>";
    }
    else exit;
                
    /*Zutaten-Stichwörter---------------------------------------------------------------------------------------*/

    if (isset($senden) && $zutat!="")
	{
	$kwd_art = "z";
                $zut = "$zutat";
	$exZutat = explode ("," , $zut);

                echo "Durch Eingabe von folgenden Zutaten: ";
                foreach ($exZutat as $value) 
  		{
    	                $z++;
		echo "<b>$value, </b>"; 
  		}
                echo "kann man den Artikel Nr.<b>$idart</b> finden.<br>";

                echo "Im Feld: <br>";
	for ($i=0;$i<$z;$i++) 
  		{
		echo "$i steht das Wort: $exZutat[$i].<br>";  

		/*-F-----INSERT Tabelle keyword---------------------------------*/
		$qry_kwd = "INSERT INTO keyword (kwd_art,kwd_text) VALUES ($kwd_art,$exZutat[$i])";
		$res_kwd = mysql_db_query("kochbuch",$qry_kwd);

		/*-C-----SELECT Tabelle keyword-----------------------------*/
		$qry_keyword = "SELECT max(kwd_id) FROM keyword";
		$res_keyword = mysql_db_query("kochbuch",$qry_keyword);
		$rhk_kwdid = mysql_result($res_keyword,0);

		/*-D-----SELECT Tabelle rezept----------------------------------*/
		$qry_rez = "SELECT max(rzp_ID) FROM rezept";
		$res_rez = mysql_db_query("kochbuch",$qry_rez);
		$rzp_ID = mysql_result($res_rez,0);

		/*-E-----INSERT Tabelle rezept_hat_keyword-------------------*/
		$qry_rhk = "INSERT INTO rezept_hat_keyword (rhk_rzpid,rhk_kwdid) VALUES ($rzp_ID,$rhk_kwdid)";
		$res_rhk = mysql_db_query("kochbuch",$qry_rhk);
 
  		}
    echo "<br>";
    }
    else exit;
}

?>


so....mal sehen ob ihr du was findest.......rein theoretisch müsste es so gehen......die QUERYS haben im MySQL Shell ja funktioniert...

Gruß
Julian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

testen kann ich es bei mir ja nicht, dafür ist es zu spezifisch aufgebaut.

ähm, die zwei dbs heissen kochbuch und leer ? wie auch immer

bekommst du überhaupt den titel des artikels raus ?
ich würde nach jedem query mal ein echo reinbauen damit man überhaupt sieht wie die einzelnen queries in php zusammengebaut werden.

was bei mir aber funktioniert ist das:

Code: Alles auswählen

<?php

   $query = "SELECT title FROM con_art_lang where idart= $idart"; 
   $result = mysql_db_query("contenido",$query); 
   $title = mysql_result($result,0);
   echo "title: '".$title."'";

?>
*** make your own tools (wishlist :: thx)
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

ähm, die zwei dbs heissen kochbuch und leer ? wie auch immer
ja, da ich eine kochbuch DB habe und....da Contenido zu Anfang eine leere DB haben wollte..habe ich der Contenido DB den Namen "leer" gegeben.....ich weis nicht sehr creativ....
bekommst du überhaupt den titel des artikels raus ?
ja...den hole ich mir aus der Contenido DB aus der tabelle "con_art_lang"..



Was mir vorhin noch augefallen ist, ist das ich bei den INSERTS ein paar Hochkomma vergessen hab....die sind nun berichtigt.....
ich würde nach jedem query mal ein echo reinbauen
habe ich auch schon gemacht....gibt er jetzt alles richtig aus...nur er schreibt es weder rein noch schmeißt er nen Fehler..

danke erstmal....ich hoffe du hast vieleicht nochn Tip (oder wer anders)

Gruß
Julian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

JulianH. hat geschrieben:gibt er jetzt alles richtig aus...nur er schreibt es weder rein noch schmeißt er nen Fehler..
versuchs mal auf ein query einzugrenzen welches nicht ausgeführt wird.
*** make your own tools (wishlist :: thx)
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

Code: Alles auswählen

/*-B-----INSERT Tabelle Rezept -------------------------------*/
           $qryRezept = "INSERT INTO rezept (rzp_name,rzp_art,rzp_aufwand,rzp_conartid) VALUES ('$title','$art_rzp','$awd',$idart)";
           $resRezept = mysql_db_query("leer",$qryRezept);
die anderen Querys gehen jetzt.....

"rzp_name" = Name des Artikel aus der Contenido DB (wird bei mir zum Titel des Rezeptes..
"rzp_art" = ist die Rezeptart
"rzp_aufwand" = ist halt der Aufwand
"rzp_conartid" = ist die Artikelnummer aus Contenido

------------------------------------------------------------------------

gruß
Julian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

schreib mal folgendes

Code: Alles auswählen

/*-B-----INSERT Tabelle Rezept -------------------------------*/
           $qryRezept = "INSERT INTO rezept (rzp_name,rzp_art,rzp_aufwand,rzp_conartid) VALUES ('$title','$art_rzp','$awd',$idart)";
           $resRezept = mysql_db_query("leer",$qryRezept);
           echo mysql_errno() . ": " . mysql_error() . "\n";
JulianH. hat geschrieben:die anderen Querys gehen jetzt.....
sehr schön
*** make your own tools (wishlist :: thx)
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

wenn kein mysql fehler gemeldet wird kannst du auch folgendes hineinschreiben:
printf ("Last inserted record has id %d\n", mysql_insert_id());
*** make your own tools (wishlist :: thx)
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

ich idiot !!!!!

oh gott wie bloed muss man sein ahhhhhh :x

ich trottel muss ja meine DB "kochbuch" nehmen und nicht in die Contenido DB INSERTEN...

maann

mom...
ich test jetzt mal mit dem anderen...

gruß
Julian
JulianH.
Beiträge: 71
Registriert: Mo 10. Mai 2004, 09:41
Kontaktdaten:

Beitrag von JulianH. »

ok,ok...

puh..... es geht.....
man.man,man.....ich hab den Wald vor Bäumen nicht gesehn....

vielmals dank....

gruß
Julian
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

schön, dann mach ich mal hier zu.
*** make your own tools (wishlist :: thx)
Gesperrt