4Danke
ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
237
237
EMPFEHLEN
-
Hallo
Ich lasse ein script alle 3 Minuten per cronjob abrufen was auch funktioniert.
Nun mein Problem:
Ich möchte nicht das doppelt gespeichert wird .
Beispiel:
ID News Datum
1 Test 1 13:40
2 Test 1 13:43
3 Test2 13:46
also ID 1 und 2 sind gleich möchte aber nur das es einmal eingetargen wird.
Mit UNIQUE möchte ich es nicht lösen das es ja an nächsten Tag nicht angezeigt wird .
Habe jetz folgendes probiert aber klappt nicht wirklich
Danke für eure HilfePHP-Code:mysql_select_db( 'datenbank' )
or die ( 'Die Datenbank existiert nicht.' );
$abfrage = "SELECT News FROM datenbank ORDER BY id DESC LIMIT 1";
$ergebnis = mysql_query( $abfrage )
$row = mysql_fetch_assoc( $ergebnis );
if ( $neuste_news != $row['News'] ) {
$eintrag = "INSERT datenbank (News, Datum)
VALUES ('$news', '$datum')";
$eintragen = mysql_query( $eintrag );
}
}
-
13.01.12 15:46 #2
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Du solltest nur Datensätze abholen, die dem Kriterium des Doppelten entsprechen. Dann brauchst du nur noch schauen, ob irgendwelche Datensätze gefunden worden sind. In etwa so:
Code php:1 2 3 4 5 6 7 8 9 10
mysql_select_db( 'datenbank' ) or die ( 'Die Datenbank existiert nicht.' ); $abfrage = "SELECT News FROM datenbank WHERE News = '$news'"; $ergebnis = mysql_query( $abfrage ) or die(mysql_error()); if ( mysql_num_rows($ergebnis) == 0 ) { $eintrag = "INSERT datenbank (News, Datum) VALUES ('$news', '$datum')"; $eintragen = mysql_query( $eintrag ) or die(mysql_error()); }
Natürlich könntest du es etwas professioneller machen, in dem du einen Index auf die Spalte News legst und dann INSERT .. ON DUPLICATE KEY UPDATE verwenden.Geändert von saftmeister (13.01.12 um 15:48 Uhr) Grund: Fehler in der if-Condition-Logik
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Hallo saftmeister
Vielen Dank für die schnelle Antwort.
Wenn es nicht klappen sollte wie würde es dann mit INSERT .. ON DUPLICATE KEY UPDATE aussehen.Könntest du mir ein Bespiel geben habe mit sowas noch nie gemacht.Wie ich eine Index auf die Spalte anlege weis ich aber mit dem code nicht.
Danke
-
-
13.01.12 17:22 #5
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Mir ist gerade aufgefallen, das UNIQUE für dich keine Option ist und somit mein Vorschlag nicht umsetzbar. Warum eigentlich?
Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
Hallo
Gibt es keine andere Lösung um Dopplete Einträge nicht anzeigen oder eintragen zu lassen als UNIQUE.
Danke
-
13.01.12 18:51 #7
- Registriert seit
- May 2006
- Ort
- There is no place like 127.0.0.1
- Beiträge
- 3.521
Wieso anzeigen? Ich dachte, es ging ums Einfügen? UNIQUE bedeutet, das es nicht möglich ist, einen weiteren Datensatz hinzuzufügen, der den selben Wert enthält, wenn er schon vorhanden ist.
Wenn du den Datensatz nur einmal anzeigen willst, kannst du die GROUP BY Klausel verwenden.Grüße
--
Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)
-
13.01.12 18:58 #8Ch Tutorials.de Gastzugang
Was spricht denn gegen den Index, den er wahrscheinlich sowieso hat? Also einfach ID abfragen und mit ON DUPLICATE KEY UPDATE ran. Füge mal eine Wrapper Funktion für Codeigniter mit an.
PHP-Code:public function insert_update( $table = NULL , $set = NULL , $created_field = '')
{
if ( empty( $table ) || ! is_array( $set ) || ! count( $set ) )
{
return FALSE;
}
foreach ( $set as $key => $value )
{
// $created_field is always created date
if( $key != $created_field )
{
$update[] = "`" . $key . "` = " . $this->db->escape( $value );
}
}
$sql = $this->db->insert_string( $table, $set ).
" ON DUPLICATE KEY UPDATE ".implode( ', ', $update );
if( $this->db->simple_query( $sql ) == FALSE )
{
return FALSE;
}
else
{
return $this->db->insert_id();
}
}
Ähnliche Themen
-
DB doppelter Eintrag verhindern
Von strukturart im Forum PHPAntworten: 32Letzter Beitrag: 02.10.11, 18:31 -
Verhindern von doppelter aus wahl...
Von speedlocke im Forum .NET DatenverwaltungAntworten: 4Letzter Beitrag: 30.10.07, 23:58 -
Verhindern von doppelter aus wahl...
Von speedlocke im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 30.10.07, 18:45 -
Doppelter Eintrag
Von oOxsi im Forum PHPAntworten: 9Letzter Beitrag: 30.03.07, 21:15 -
Doppelter Eintrag nach Seite neuladen verhindern!
Von Endanwender im Forum PHPAntworten: 2Letzter Beitrag: 12.09.05, 09:44





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren