mysql Abfrage wenn vohanden, dann ersetzen

Delta-787

Mitglied
Hi Leute,

ich bin schon wieder am verzweifeln. Wahrscheinlich seh ich den Wald vor lauter Bäumen nicht.

Aber ich hab folgendes:

Ich bau gerade an einem Bingo Lotteriespiel für mein Forum.
http://delta787.dyndns.org/tip/tip.php

Soweit funktioniert alles, nur jetzt will ich ein Script schreiben, wenn ich Zahlen ziehe, die in ein Textfeld eingebe, soll die Datenbank durchsucht werden nach einer dieser Zahlen. Wenn eine oder mehrere gefunden wurden, sollen die durch ein * ersetzt werden.

Wahrscheinlich Kinderleicht, aber wie gesagt ich komm grade nich drauf.

Herzlichen Dank im Vorraus
 
Ich bin davon ausgegangen, dass er es außerhalb der Datenbank ersetzten möchte, bei der ausgabe oder so.

Also hab ich str_replace vorgeschlagen :D
 
ja nur woher weiß er jetzt welche genau er ersetzen muss ich muss ja irgendwie die übergeben zahl da eingeben.

warte ich schick euch ma nen paar quellcodes damit ihr ne vorstellung habt wie meine Datenbank aussieht:

PHP:
<?
include ("db.php");
$abfrage = "SELECT * FROM zahlen WHERE z1,z2,z3,z4,z5,z6,z7,z8,z9,z10 = '".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"].",".$_POST["gzahl"]."";
$ergebnis = mysql_query($abfrage);
$ergebnis1 = mysql_num_rows($ergebnis);
if ($ergebnis1) > 0)
{
         $eingabe = "UPDATE zahlen SET
}

also meine tabelle "zahlen" besteht aus folgenden spalten:
name, z1 ,z2 ,z3 usw. bis z10
und er soll z1 - z10 durchsuchen und wenn ein treffer dabei ist durch ein * ersetzen

hoffe mein code is bis hierhin noch richtig

Vielen Dank für die mühe
 
Hi,

hoffe mein code is bis hierhin noch richtig

nö, das Select-Statement schlägt doch schon fehl, weil es syntaktisch falsch ist. Lies mal im Manual, wie Select-Statements aufgebaut sein können. Vielleicht schaust Du Dir die Update-Syntax auch gleich an.

Warum hast Du in diesem falschen Select-Statement denn 10 mal die gleiche Postvariable verwendet? Nach welcher Logik die Zahlen ersetzt werden sollen, ist mir immer noch nicht klar.

LG
 
Ohjee... naja bin in sachen php und mysql noch nich ganz so fit (wie man merkt), aber ich muss doch jede einzelne Spalte auslesen oder nicht?

also meine Eintragung und das Abrufen funktionieren wie man auf der seite ja sieht da sieht das Eingeben in die Datenbank so aus:

PHP:
<?PHP
include ("db.php");

$abfrage = "SELECT name FROM zahlen WHERE name = '".$_POST["name"]."'";
$ergebnis = mysql_query($abfrage);
if (mysql_num_rows($ergebnis) > 0)
{
         echo "<font size=`7`><br><br>Du hast schon ein Tipp abgegeben</font>";
}
else
{
         mysql_query("INSERT INTO zahlen(name,z1,z2,z3,z4,z5,z6,z7,z8,z9,z10)VALUES('$_POST[name]','$_POST[z1]','$_POST[z2]','$_POST[z3]','$_POST[z4]','$_POST[z5]','$_POST[z6]','$_POST[z7]','$_POST[z8]','$_POST[z9]','$_POST[z10]')");
         echo "<font size=`7`><br><br>Du hast erfolgreich dein Tipp abgegeben</font>";
}
?>


Also wie schon gesagt jede Zahl hat seine eigen Spalte die von z1-z10 gehen.
Und da muss ich doch jede Spalte auslesen und mit der $_POST'gzahl' überprüfen ob eine dabei ist und dann eine if schreiben womit er übereinstimmende Zahlen ersetzt mit diesem * also, dass man auf der ersten Seite nicht mehr die zahl sondern das * sieht für gezogen.

Ich hoffe, dass das jetzt verständlicher war. Bin nich so ein guter Erklärer.

Hoffe ihr könnt mir zeigen wie das denn dann auszusehen hat das abfragen und ersetzen.

Vielen Dank
 
Hi,

Also wie schon gesagt jede Zahl hat seine eigen Spalte die von z1-z10 gehen.
Und da muss ich doch jede Spalte auslesen und mit der $_POST'gzahl' überprüfen ob eine dabei ist

Die Syntax ist sowieso falsch und außerdem brauchst Du kein Select dafür, da man auch in einem Update-Statement eine WHERE-Klausel verwenden kann.
Du bräuchtest 10 Update-Statements (für jede Spalte eins), ungefähr so, wie in meiner ersten Antwort.
Lies Dir wie gesagt mal die Manualseiten durch.

LG
 
Schuldigung wenn ich schon wieder nerve, aber so oder ähnlich müsste der Code dann ja aussehen oder?

PHP:
$update1 = "UPDATE zahlen SET z1 = '*' WHERE z1 = '$_POST[gzahl]'";

funktioniert aber noch nicht wo sitzt jetzt der fehler?

glaub ich bin heute zu doof dafür
 
Zurück