Datenkbank Virtuell Duplizieren

Loban

Grünschnabel
Hi Leute

Habe folgendes Problem:
Ich hab ne Datenbank in der ich verschiedene Datensätze drinne hab. Jetzt ruf ich in meinem Script diese Daten Random aus der datenbank ab das klappt auch wunderbar mit der mysql funktion rand().

Mein Problem ist jetzt aber das wenn ein Datensatz schonmal abgerufen wurde, dieser nicht nochmal auftauchen darf.
Ich dachte mir nun das ich vllt die Datenbank local beim User dupliziere und die Datensätze dann aus der virtuellen Datenbank lösche. So das irgendwann in der duplizierten keine Datensätze mehr drin sind und das Programm beendet.

Geht denn sowas?
Wenn ja wie?

Bis jetzt hab ich versucht meine Datensätze in einem array zu speichern. Das hat aber irgendwie nicht funktioniert. Ich poste hier mal den Code vllt hab ich auch einfach nur einen kleinen Fehler gemacht.

PHP:
<?php

session_start();

include ( "SQL.inc.php");

$SQLString = "SELECT * FROM Fragen ORDER BY RAND()";
  
$Ergebnis = mysql_query($SQLString);
$Zeilen = mysql_num_rows($Ergebnis);

	$Ausgabe = mysql_fetch_object($Ergebnis);
	$Spalte1 = $Ausgabe->Index;
	$Spalte2 = $Ausgabe->Frage;
	$Spalte3 = $Ausgabe->MC;
	$Spalte4 = $Ausgabe->Antwort1;
	$Spalte5 = $Ausgabe->Antwort2;
	$Spalte6 = $Ausgabe->Antwort3;
	$Spalte7 = $Ausgabe->Antwort4;
	$Spalte8 = $Ausgabe->Antwort5;


$vorhanden = $_GET['vorhanden'];
$Trennung = "@";
$Daten = explode("@", $vorhanden);


if ($Spalte3=="Ja" AND $Daten != $Spalte1){

?>
<form action="Seite5.php" method="get">
<tr>
	<td>Bitte ankreuzen (Mehrere Antwortmöglichkeiten) :</td><br> 
    <td>
		<input type="checkbox" name="Frage" value="<? echo $Spalte4 ?>"> <? echo $Spalte4 ?><br>
		<input type="checkbox" name="Frage" value="<? echo $Spalte5 ?>"> <? echo $Spalte5 ?><br>
		<input type="checkbox" name="Frage" value="<? echo $Spalte6 ?>"> <? echo $Spalte6 ?><br>
		<input type="checkbox" name="Frage" value="<? echo $Spalte7 ?>"> <? echo $Spalte7 ?><br>
		<input type="checkbox" name="Frage" value="<? echo $Spalte8 ?>"> <? echo $Spalte8 ?><br>
	</td>
</tr>

<tr>
<td>
		<input type="hidden" name="vorhanden" value="<? echo $vorhanden .= $Trennung.$Spalte1; ?>">

</td>
</tr>

<tr>					
<td>
	<input type="submit" value="Weiter">
</form>
</tr>
</td>

<?

}


if ($Spalte3=="Nein" AND $Daten != $Spalte1){
echo $Spalte2;

?>

<form action="Seite5.php" method="get">
<tr>
	<td>Bitte ankreuzen (Nur eine Antwortmöglichkeit) :</td><br> 
    <td>
		<input type="radio" name="Frage" value="<? echo $Spalte4 ?>"> <? echo $Spalte4 ?><br>
		<input type="radio" name="Frage" value="<? echo $Spalte5 ?>"> <? echo $Spalte5 ?><br>
		<input type="radio" name="Frage" value="<? echo $Spalte6 ?>"> <? echo $Spalte6 ?><br>
		<input type="radio" name="Frage" value="<? echo $Spalte7 ?>"> <? echo $Spalte7 ?><br>
		<input type="radio" name="Frage" value="<? echo $Spalte8 ?>"> <? echo $Spalte8 ?><br>
	</td>
</tr>

<tr>
<td>

</td>
</tr>
<tr>					
<td>
	<input type="hidden" name="vorhanden" value="<? echo $vorhanden .= $Trennung.$Spalte1 ?>">

	<input type="submit" value="Weiter">

</form>
</tr>
</td>

Hoffe ihr könnt mir helfen. Für jegliche andere Art von Vorschlägen bin ich natürlich auch offen.

Danke schonmal!
 
Hi Loban,

wie wäre es, wenn Du nur die ID´s der Datensätze in einem Array speicherst, die bereits einmal aufgerufen wurden?

Bei jedem neuen Durchlauf prüfst Du, ob die "neue" ID bereits im Array enthalten ist. Wenn ja, nochmals die Zufallsfunktion durchlaufen lassen, wenn nein, die ID in das Array aufnehmen, usw..

Ich hoffe, dass ist eine passende Lösung für Dich.

Beste Grüße,
preko
 
hi

Joa das klingt nach ner guten idee danke :)
Auf die einfachsten sachen komm ich meistens nie :(
Ich werde das ma probieren und nochma posten falls es geklappt hat :) Und wenn nich dann sowieso ^^
 
Zurück