Abfrage bei mysql

Könnte etwa so gehen
SQL:
INSERT INTO tabelle_2 AS t2 (ip, mail, text)
SELECT
    t1.ip, t1.mail, t1.text
FROM
    tabelle_1 AS t1
WHERE
    NOT MATCH ('t1.ip, t1.mail, t1.text') AGAINST ('Werbung Geld Verdienen');
 
Zuletzt bearbeitet von einem Moderator:
Es ist richtig so kommt nichts vor INSERT

PHP:
INSERT "INTO User AS t2 (IP, Mail, Text)
SELECT
    t1.IP, t1.Mail, t1.Text
FROM
    User_Sperre AS t1
WHERE
    NOT MATCH ('t1.IP, t1.Mail, t1.Text') AGAINST ()";

bei AGAINST hab ich inhalt weg er soll von Datenbanktabelle prüfen und nicht in php
 
Das hat 2 Fehler.
1) Was ist INSERT für ein PHP-befehl?

2) AGAINST ohne Inhalt bewirkt nicht gerade viel. Wo in der DB kommt denn der Wert her?
 
1) Nein. Du hast bei deinem Script 2 INSERT. Das ist einer zuviel.

2) ja, aber woher in der DB? eine Eigene Tabelle mit GENAU einer Zeile und einem Wert? Oder einen Auschhlusstabelle mit mehreren Zeilen?
 
2) Da sind 7 zeilen (Name Email Datum und so weiter ......)

1 da kommt dan eine weg ?
 
Zuletzt bearbeitet:
Ich versteh nur Bahnhof zu deiner Struktur.
Mach mir bitte ein Datenbeispiel mit Tabellen. So in der Art:
Das hab ich:
Code:
Tabelle mitarbeiter
id | firma_id | name
--------------------
1  | 1        | MA1
2  | 1        | MA2
3  | 2        | MA3

Tabelle Firma
id | name
---------------------
1  | firma1
2  | firma2

Nun will ich wissen, welche Firma wieviele Mitarbeiter hat. Das soll dann so aussehen
Code:
firma_id | firma_name | anzahl_mitarbeiter
------------------------------------------
1        | firma1     | 2
2        | firma3     | 1
 
User_Sperre (dieser soll nur Prufen Ob das was in spalten steit gibt wen nicht dann Eintag ins Tabelle "USER" Die eingabe ist Manuel (also selber Eingetragen)

ID | Email | IP | Text
1 | Igal@online.de | |
2 | | 0.0.0.0 |
3 | | | Iga Was

User (hier werd die DAten Eingetragen von PHP Formular

ID|Name|Email |Datum |Uhr |IP | Eintrag1|Eintrag2
1 |Igal |igel@online.de|1.01.2001|0:00|100.0.0.0 | igel | igal was

Eintag 1 als VARCHAR und Eintrag 2 Ist als TEXT

sind sogar 8 Zeilen
 
Zuletzt bearbeitet:
Also, wie ich das Verstehe hast du die user_sperre mit der du jede neue Eingabe prüfen willst bevor der User eingefügt wird.

Ich würde das so lösen
PHP:
$email = mysql_real_escape_string(trim($_POST['email']));
$ip = mysql_real_escape_string(trim($_POST['ip']));
$text = mysql_real_escape_string(trim($_POST['text']));

$sql = "
SELECT DISTINCT
    us.id
FROM
    user_sperre AS us
WHERE
    '{$email}' LIKE us.email
    OR '{$ip}' LIKE us.ip
    OR '{$text}' LIKE us.text
";

$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
    //TODO: user_sperre hat zugeschlageb
}else{
    //TODO: Insert
}

Mit '{$email}' LIKE us.email prüfe ich ob das Mail aus der user_sperre im Eingegeben Mail vorhanden ist. Da dort ein LIKE steht, kannst du in deiner user_sperre auch mit Vergleichspattern arbeiten. Wenn du also alle Emailadressen von gmail.ch sperren willst, dann schreibst du einfach '%gmail.ch' in deine user_sperre
 
Danke das hab ich gesucht

aber jetz krieg ich Fehler Meldung "Query was empty"


PHP:
<?php 
$aErorrs = array();
if(isset($_POST['submit']) and $_POST['submit']=='Senden') {
$Email = mysql_real_escape_string(trim($_POST['Email']));
$IP = mysql_real_escape_string(trim($_POST['IP']));
$Text = mysql_real_escape_string(trim($_POST['Text']));

$sql = "
		SELECT DISTINCT
			us.id
		FROM
			User_Sperre AS us
		WHERE
			'{$Email}' LIKE us.email
			OR '{$IP} LIKE us.ip
			OR '{$Text}' LIKE us.text
			";
$result = mysql_query($sql);
if(mysql_query($sql) > 0){
	//TODO: User_Sperre hat Zugeschlagen
}else{
	//TODO: Insert
	$aName = array();
	$aEmail = array();
	$sql = "SELECT Name, Email FROM User";
	$vResult = mysql_query($sql) or die (mysql_error());
	while($aRow=mysql_fetch_assoc($vResult)){
		$aName[] = $row['Name'];
		$aEmail[] = $row['Email'];
	}
if(trim($_POST['Name'])=='')
	$aErrors[]= "Bitte geben Sie eine Name ein.";
elseif(strlen(trim($_POST['Name'])) < 3)
	$aErrors[]= "Ihre Name muss mindestens 3 Zeichen lang sein.";
if(trim($_POST['Email'])=='')
	$aErrors[]="Bitte geben Sie Ihre Email-Adresse ein.";
//und so weiter ....
}
if(isset($_POST['submit']) and $_POST['submit']=='Senden' and ($aErrors)==0) {
	}
	unset($_SESSION['captcha_spam']);
	$sql = "INSERT INTRO `User` (
		Name,
		Email,
		Datum,
		//und so weiter
		) VALURES(
		'".mysql_real_escape_string(trim($_POST['Name']))."',
		'".mysql_real_escape_string(trim($_POST['Email']))."',
				CURDATE(),
		//und so weiter
				)";
			mysql_query($cSql) or die (mysql_error());
?>
<h2>Viele Dank!</h2>

<?php 

}else{
if(isset($_POST['submit']) and $_POST['submit']=='Senden') {
?>
<h2>Nicht</h2>
<ul>
	<?php 
		foreach($aErrors as $cError){
}			echo '<li>'.$cError.'<li>';
	?>
</ul>
<?php
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" accept-charset="ISO-8859-1">
    
</form>
<?php 
	}
?>
 
Zurück