zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden MySQL Abfrage Problem

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 09.09.2007, 14:48
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard MySQL Abfrage Problem

Hi Leute,
ich bin gerade dabei einen Counter zu programmieren, dabei habe ich folgendes Problem:
Ich möchte aus einer MySQL Tabelle eine Spalte ausgegeben, aus welcher ich die IP überprüfen möchte.
Meine MySQL Tabelle:
Code:
--
-- Tabellenstruktur für Tabelle `counter`
--

CREATE TABLE `counter` (
  `id` int(20) NOT NULL auto_increment,
  `ip` varchar(30) character set latin1 collate latin1_german1_ci NOT NULL,
  `time` varchar(50) character set latin1 collate latin1_german1_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

--
-- Daten für Tabelle `counter`
--

INSERT INTO `counter` VALUES(1, '92.123.234.32', '090907');
INSERT INTO `counter` VALUES(11, '91.14.105.152', '090907');
(Die Werte sind ausgedacht)

Ich Moment sieht mein Query so aus:
PHP-Code:
 $sql1 "SELECT ip FROM counter WHERE time = '".$today."'";
        
$result1 mysql_query($sql1);
        
$row1 mysql_fetch_assoc($result1); 
Erreichen möchte ich, dass in einem numerischen Array alle IPs gespeichert sind, die von heute (
PHP-Code:
$today date(d.m.y); 
) stammen.

Desweiteren folgt:
PHP-Code:
foreach($row1 as $DbIp) {
            if(
$DbIp != $ip) {
                
$check 1;
            } 
...als Schleife, welche überprüft, ob die jeweiligen IPs aus der Datenbank (
PHP-Code:
$DbIp 
) ungleich der Variable $ip (
PHP-Code:
$ip $_SERVER['REMOTE_ADDR']; 
) sind.

Aber leider steckt jetzt irgendwo der Wurm drin. Denn wenn ich per
PHP-Code:
print_r($row1); 
mir das Array anzeige lasse, wird immer nur ein Wert angezeigt!?
Zitat:
Array ( [ip] => 92.123.234.32 )
Weis irgendjemand wie ich das lösen könnte?
Danke schon im Voraus .
Matze
__________________

Geändert von ct2oo4 (09.09.2007 um 14:54 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 09.09.2007, 17:35
Benutzerbild von fox
fox fox ist offline
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 11.09.2006
Beiträge: 1.008
fox sorgt für eine eindrucksvolle Atmosphärefox sorgt für eine eindrucksvolle Atmosphäre
Standard

Du gehst das falsch an, du holst nur einen Datensatz mit mysql_fetch_assoc(); ab. foreach() geht nur alle Spalten durch, die du abholst. Du musst mehrere Datensätze holen, probier das hier:

PHP-Code:
while ($row mysql_fetch_assoc($result1)) {
            if(
$row['ip'] != $ip) {
                
$check 1;
    }

Wobei du diese Zeile weglässt:

PHP-Code:
$row1 mysql_fetch_assoc($result1); 
__________________
:)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 09.09.2007, 17:55
Benutzerbild von Boris
Tanzender Webentwickler
XHTMLforum-Kenner
 
Registriert seit: 29.07.2004
Ort: Kornwestheim / Stuttgart
Beiträge: 4.925
Boris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer MenschBoris ist ein sehr geschätzer Mensch
Standard

Im übrigen solltest du Zeitangaben entweder als Unix-Timestamp oder (noch viel besser) mit den MySQL Datenfeldern DATE oder DATETIME speichern.
__________________
My software never has bugs. It just develops random features ...

» DevShack - die Website des freien Webentwicklers Boris Bojic
Mit Zitat antworten
  #4 (permalink)  
Alt 09.09.2007, 19:28
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard

So habs gerade mal ausprobiert:

PHP-Code:
        while($row mysql_fetch_assoc($result1)) {
            if(
$row['ip'] != $ip) {
                
$check 1;
            }
        } 
        
        if(
$check == 1) {
            
$sql2 "INSERT INTO counter (ip, time) VALUES('$ip', '$today')";
            
$result2=mysql_query($sql2);  
        } 
Aber leider funktioniert es nicht.
Es soll ja mittels while-Schleife überprüft werde,n ob die IP in den letzen 24 Stunden schon einmal gezählt wurde. Wenn ich nun das Scipt ausführe wird aber immer wieder die IP in die DB eingetragen obwohl die IP ja schon drinsteht. Was mache ich falsch?!

MfG
__________________

Geändert von ct2oo4 (09.09.2007 um 19:30 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 10.09.2007, 10:18
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Das kannst du alles schon direkt mit der Abfrage machen
MySQL AB :: MySQL 5.0 Reference Manual :: 11.6 Date and Time Functions

in etwa so:
PHP-Code:
SELECT ip 
WHERE ip 
$deine_gesuchte_ip
 
AND time DATE_ADD(NOW(), INTERVAL -1 DAY
(ungetestet)
Mit Zitat antworten
  #6 (permalink)  
Alt 14.09.2007, 18:37
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank! Funktioniert einwandfrei!
__________________
Mit Zitat antworten
  #7 (permalink)  
Alt 14.09.2007, 18:44
Benutzerbild von netspy
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 13.08.2004
Ort: Leipzig
Beiträge: 1.953
netspy sorgt für eine eindrucksvolle Atmosphärenetspy sorgt für eine eindrucksvolle Atmosphäre
Standard

Deine IPs solltest du übrigens als INT speichern. Das spart Platz und ist schneller. Mit ip2long() und long2ip() kannst du die IPs leicht umwandeln.

Mario
__________________
AppDev Blog · AppDev Forum
Mit Zitat antworten
  #8 (permalink)  
Alt 15.09.2007, 12:05
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 07.04.2007
Beiträge: 311
ct2oo4 befindet sich auf einem aufstrebenden Ast
Standard

gesagt getan, danke! noch weitere Vorschläge? -> HIER bitte
__________________

Geändert von ct2oo4 (15.09.2007 um 18:39 Uhr)
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MySQL Problem wegen php PHP-Freak Serveradministration und serverseitige Scripte 1 08.02.2010 18:57
PHP: If abfrage problem? Logik! sepp88 Serveradministration und serverseitige Scripte 12 05.02.2010 16:17
Mysql: SELECT 5 neuste Datensätze, aber in umgekehrter Reihenfolge? braindead Serveradministration und serverseitige Scripte 3 19.10.2009 19:34
Problem bei CSS Grundlayout DasSauerkraut CSS 0 10.08.2009 22:35
Problem bei Abfrage von borderWidth/border code_pilot Javascript & Ajax 7 19.04.2007 17:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:14 Uhr.