script stellt keine verbinfung zur DB her

EddieG

Erfahrenes Mitglied
script sschreibt daten nicht in db

hi,
habe eine datei gemacht die bei einem formualr includet wird für den db zugrif,
Code:
<?php
 function mysqlconnect()
    {
	$status	=	mysql_connect("localhost", "username", "password");
	    
	    if ( ! $status )
	    {
		    die("Konnte die Datenbank nicht erreichen!");
	    }
		
	    $status	=	mysql_select_db("ladder" );
	    
	    if ( ! $status )
	    {
		    die("Konnte die Datenbank nicht &&amp;auml;ndern: " . mysql_error() );
	    }
    }
    
    function howmany()
    {
	$query	=	"SELECT ID FROM ladder";
	
	$result	=	mysql_query( $query );
	
	if ( ! $result )
	{
	    die("Konnte die Anzahl der Datens&auml;tze nicht bestimmen!");
	}
	
	return mysql_num_rows( $result );
    
    }
	


?>
das ist der code wo für die db wichtig ist aus dem formular
Code:
<?php
//zum Eintragen neur datensätze in das ladder ranking
   include("functions.inc.php");

//prüfen ob sich die seite selbst aufgerufen hat
if ( isset($_REQUEST["do"]) && $_REQUEST["do"] == "insert" ) 
{
//pflichtfed Kontrolle
	// Pflichtfeldkontrolle
	    
	$error_msg	=	"";
	
		if ( $_REQUEST["form_username"] == "" )
			{
			$error_msg = "Bitte geben Sie den Gewinner an.<br>";
						}

						if ( $_REQUEST["form_rasseg"] == "" )
			{
			$error_msg .= "Bitte geben Sie die Rasse des Gewinners an.<br>";
						}
						if ( $_REQUEST["form_rassev"] == "" )
			{
			$error_msg .= "Bitte geben Sie die Rasse des Verlierers an.<br>";
						}
						if ( $_REQUEST["form_map"] == "" )
			{
			$error_msg .= "Bitte geben Sie den Map Namen an.<br>";
						}
						if ( $_REQUEST["form_rep"] == "" )
			{
			$error_msg .= "Bitte geben Sie den Replay Pfad an.<br>";
						}
		
		if ( $error_msg == "")
		{
	//Alles OK
	
			//DatenbankZugriff
					mysqlconnect();
					//INSERT
					$query = "INSERT INTO ladder (username, rasseg, rassev, mapname,replay,pkt ) VALUES ( ";
					$query .= " '" . $_REQUEST["form_username"] . "', ";
					$query .= " '" . $_REQUEST["form_rasseg"] . "', ";
					$query .= " '" . $_REQUEST["form_pkt"] . "', ";
					$query .= " '" . $_REQUEST["form_rassev"] . "', ";
					$query .= " '" . $_REQUEST["form_mapname"] . "', ";
					$query .= " '" . $_REQUEST["form_rep"] . "', ";
					$query .= " ) ";
	    
	    // In die Datenbank eintragen
	    $result	=	mysql_query( $query );
	    
	    if ( ! $result )
	    {
		die("Konnte den Datensatz nicht eintragen: " . mysql_error() );
	    }
	    
	    // Wechsel auf main
	    header("Location: rankings.php");
	    die;
	    
	}
	
	
	
    }



?>

wo ist der fehler er connected nicht zur db es heisst

Konnte den Datensatz nicht eintragen: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
 
Zuletzt bearbeitet:
Hi,

die Datenbank ist nicht vorhanden oder der User hat keine Zugriffsrechte dafür.

Ganz klar geht PHP in die if-Abfrage rein:

PHP:
$status	=	mysql_select_db("ladder" );
	    
	    if ( ! $status )
	    {
		    die("Konnte die Datenbank nicht &&amp;auml;ndern: " . mysql_error() );
	    }

Also ist $status = false um dann in der if-Abfrage True zu werden.




Edit:

Gerade hieß es noch "Konnte die Datenbank nicht &&amp;auml;ndern:" und nun "Konnte den Datensatz nicht eintragen"
Was jetzt!?
 
Zuletzt bearbeitet:
ich teste es immer erst im xampp und da heist die db anders als wie aufm websapce also somit das jetzige mit

Konnte den Datensatz nicht eintragen: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use
 
Also ich würde dir empfehlen das INSERT query ein bisschen übersichtlicher zu schreiben:

PHP:
$query = "INSERT INTO 
	ladder (
	
			username, 
			rasseg, 
			rassev, 
			mapname,
			replay,
			pkt
			
			) VALUES (
			
			'". $_REQUEST["form_username"] ."',
			'". $_REQUEST["form_rasseg"] ."',
			'". $_REQUEST["form_pkt"] ."',
			'". $_REQUEST["form_rassev"] ."',
			'". $_REQUEST["form_mapname"] ."',
			'". $_REQUEST["form_rep"] ."'
			
			)";

Das Komma bei

PHP:
$query .= " '" . $_REQUEST["form_rep"] . "'--->, <---";

ist zu viel.

Nochwas: beim Übergeben von Formulardaten nimm $_POST
 
Zurück