Mysql Abfrage

lissylucky

Mitglied
Hallo,

ich kenn mich mit PHP noch nicht gut aus.

Wie müsste denn der Code aussehen, wenn ich bei klicken eines Buttons überprüfen soll ob schon die Datensatzplätze belegt sind. Wenn nicht weiterleiten und wenn ja auch weiterleiten aber zu einer anderen Datei.

Wie kann ich bei der DB ein Maximum hinterlegen?


Lissyluccky
 
Hallo,

ich verstehe deine Frage leider auch nicht ganz.

Du möchtest gerne eine Abfrage in einer MySQL datenbank per knopfdruck machen um Abzufragen ob Datensatzplätze belegt sind?

Welche Datensatzplätze?
Prinzipiel ist eine DB ja von der Größe her nicht wirklich eingeschränkt (außer halt die HD ist zu klein ;) )
Willst du anhand einer vorhandenen ID abfragen, ob diese bereits in der DB steht?
 
Wie müsste denn der Code aussehen, wenn ich bei klicken eines Buttons überprüfen soll ob schon die Datensatzplätze belegt sind. Wenn nicht weiterleiten und wenn ja auch weiterleiten aber zu einer anderen Datei.

Verstehe es zwar auch nicht ganz aber soweit ich folgen kann wäre es vom Prinzip her wohl so:

PHP:
//Wenn Button angeklickt wurde
if (isset($_POST["dein_button"])) {
  //Anzahl der vorhandenen Datensätze ermitteln
  $rs = mysql_query("SELECT * FROM tabelle WHERE feld = 1 OR feld = 2");
  $anzahl = mysql_num_rowss($rs);
  //Wenn es bereits einen oder mehrere solche Datensätze gibt zu dieser Seite
  if ($anzahl != 0) {
    header("Location:seite_wenn_belegt.php");
  } else {
  //Wenn nicht zu einer anderen Seite
    header("Location:seite_wenn_frei.php");
  }
}

Wie kann ich bei der DB ein Maximum hinterlegen?

Das hier verstehe ich auch nicht wirklich.
Wenn aber z.B. bestimmte Personen/Usern nur maximal 10 Einträge speichern dürfen, kannst du es im Grunde wie oben lösen:

PHP:
//Wenn Button angeklickt wurde um neuen Datensatz zu speichern
if (isset($_POST["dein_button_zum_speichern"])) {
  //Anzahl der vorhandenen Datensätze eines bestimmten Users ermitteln
  $rs = mysql_query("SELECT * FROM tabelle WHERE user_nummer = 1");
  $anzahl = mysql_num_rowss($rs);
  //Wenn es bereits 10 Datensätze gibt nicht speichern sondern Meldung ausgeben
  if ($anzahl == 10) {
    echo "Sie haben bereits 10 Einträge gespeichert.";
  } else {
  //Wenn nicht, neuen Eintrag speichern
    mysql_query("INSERT INTO tabelle ...");
    echo "Daten wurden gespeichert.";
  }
}


Ob das jetzt von dir so gemeint war ist natürlich eine gute Frage.
 
Zuletzt bearbeitet:
Hallo,

also ich schreibe meine Frage ins Reine ;)

Ich kenne mich mit PHP noch nicht gut aus.

Wie müsste denn der Code aussehen, wenn bei klicken eines Buttons überprüft werden soll ob schon z.B 2/2 Datenplätze belegt sind. Wenn nicht, dann zum Formular weiterleiten und wenn belegt, dann zur Index zurückwerfen.

Wie kann ich bei der DB ein Maximum hinterlegen, sodass maximal nur 2 Datensätze vom Formular dort Platz haben?
 
Mir ist nicht bekannt, das man eine DB begrenzen könnte.

Ansonsten musst du mittels PHP vorher die Datenbank auslesen und abfragen ob schon 2 Datensätze hinterlegt sind.

PHP:
$s = "SELECT * FROM tabelle";
$m = @mysql_query($s);
$anzahl = mysql_num_rows($m);

Damit hättest du in der variable $anzahl die $anzahl der Datensätze.

mittels header() kannst du dann redirecten

Wichtig: Es darf vorher keine Ausgabe geschehen

PHP:
<?php
  header ("Location: http://www.deineseite.de/");
  exit();
?>

also im ganzen

PHP:
$s = "SELECT * FROM tabelle";
$m = @mysql_query($s);
if(mysql_num_rows($m)>=2){
    header ("Location: http://www.index.de/");
    exit();
}else{
    header ("Location: http://www.deineseite.de/");
    exit();
}
 
Zurück