Datenbank Überprüfung Problem

cinema

Mitglied
Moin.

Als erstes möcht ich mich entschuldigen, falls ich in den falschen Bereich Poste.

Problem:

Ich möchte eine Abgrage über einen Key machen, ob dieser in der Datenbank existiert:

Code:
<?php 
// Datenbankverbindung aufbauen 
$connectionid = mysql_connect ("localhost", "xxxxxt", "xxxxxxxx"); 
if (!mysql_select_db ("web", $connectionid)) 
{ 
  die ("Keine Verbindung zur Datenbank"); 
} 

$sql = "SELECT ". 
    "serials ". 
  "FROM ". 
    "serials ". 
  "WHERE ". 
    "(serials like '".$_REQUEST["serial"]."')"; 

	$result = mysql_query ($sql);
		

if (mysql_num_rows ($result) > 0) 
{ 
	
	header ("Location: Step1.php"); 
} 
else 
{ 
  header ("Location: index.php?fehler=1"); 
} 
?>

Das funktioniert wunderbar.

Nun möchte ich (die Tabelle hat 2 Spalten: "serial" (der Key) und "verwended" (ob der key schon einmal abgefragt wurde)) dass er überprüft, ob der key vorhanden ist, ob in der spalte "verwended" etwas drinnensteht ("ja"). Steht nichts drinne, soll er "ja" reinschreiben, damit man den key nicht mehr verwenden kann.

Ich weiß jetzt nicht genau, wie ich die if abfrage machen soll.

Hoffe auf eine erfolgreiche Hilfe.

LG cinema
 
Antwort

Man kann das direkt in die SQL-Syntax übernehmen, aber das wüsste ich im Moment nicht zu lösen. Ansonsten kannst du einfach noch eine Anfrage senden und zwar in PHP.
PHP:
<?php 
// Datenbankverbindung aufbauen 
$connectionid = mysql_connect("localhost", "xxxxxt", "xxxxxxxx"); 
if(!mysql_select_db("web", $connectionid)) { 
  die("Keine Verbindung zur Datenbank"); 
}

/*************************************************************************************/
// MySQL-Anfrage
$sql =
 'SELECT
    `serials`
  FROM
    `serials`
  WHERE
    `serials` = "'.$_REQUEST['serial'].'"';
/*************************************************************************************/

$result = mysql_query($sql);
		

if(mysql_num_rows($result) > 0) {
  header('Location: Step1.php');

/*************************************************************************************/
// MySQL-Anfrage
$sql =
 'UPDATE
    `serials`
  SET
    `verwendet` = "ja"
  WHERE
    `serial` = "'.$_REQUEST['serial'].'"';
/*************************************************************************************/

  mysql_query($sql);
}
else { 
  header('Location: index.php?fehler=1'); 
} 
?>
 
Du kannst nicht erst den Header senden und dann versuchen mit Mysql noch etwas einzutragen...
Setze den Header unter die Mysql-Anweisung.

€dit: Also so:

PHP:
<?php
// Datenbankverbindung aufbauen
$connectionid = mysql_connect("localhost", "xxxxxt", "xxxxxxxx");
if(!mysql_select_db("web", $connectionid)) {
  die("Keine Verbindung zur Datenbank");
}
 
/*************************************************************************************/
// MySQL-Anfrage
$sql =
 'SELECT
   `serials`
 FROM
   `serials`
 WHERE
   `serials` = "'.$_REQUEST['serial'].'"';
/*************************************************************************************/
 
$result = mysql_query($sql);
       
 
if(mysql_num_rows($result) > 0) {
 
/*************************************************************************************/
// MySQL-Anfrage
$sql =
 'UPDATE
   `serials`
 SET
   `verwendet` = "ja"
 WHERE
   `serial` = "'.$_REQUEST['serial'].'"';
/*************************************************************************************/
 
  mysql_query($sql);

  //Header senden
  header('Location: Step1.php');
}
else {
  header('Location: index.php?fehler=1');
}
?>
 
Zuletzt bearbeitet:
Danke, hat funktioniert. Wie mach ich es jetzt eig., dass am anfang überprüft er ja ob der serial vorhanden ist. Nun soll er auch prüfen ob in der spalte "verwended" "ja" drinnen steht. steht das drinnen, dann den fehler senden.
 
$sql =
'SELECT
`serials`
FROM
`serials`
WHERE
`serials` = "'.$_REQUEST['serial'].'"';
/*************************************************************************************/

$result = mysql_query($sql);

if ($result[verwendet]="Ja")
{
Die("Die ID Wird bereits verwendet")
}

Funtkioniert das?
 
Nein.

PHP:
$sql =
'SELECT
`serials`
FROM
`serials`
WHERE
`serials` = "'.$_REQUEST['serial'].'"';
/*************************************************************************************/

$result = mysql_query($sql);

$serial = mysql_fetch_object($result);

if ($serial->verwendet="Ja")
{
Die("Die ID Wird bereits verwendet")
}
 
Zurück