Vollständige Version anzeigen : [PHP] Namen lookup
hi,
folgendes ist ich empfange sms im format_:
id - text - time - rufnummer
1 - bla bla - 06_03_2012 - 15_15 - +4917393933
2 - bla bla - 06_03_2012 - 15_15 - +4917399999
3 - bla bla - 06_03_2012 - 15_15 - +4927272727
Habe eine Kontakt datenbank:
id - name - tel
1 - testy - +4917393933
2 - peter - +4927272727
Nun möchte ich wenn eine sms kommt ein "lookup" machen ob der jeniger der in der Kontaktdatenbank steht mir schreibt -> namens anzeige oder ob die nummer von einem kontakt kommt der NICHT in dieser Datenbank ist - hat den sinn zu wissen wenn mir ein nicht kontakt schreibt ;)
Ausgabe wäre dann z_b 2 Kontakte / 1 nicht Kontakt
Bitte um hilfe
hi,
eine abfrage könnte so aussehen
$tel = "+4917393933";
$qry = mysql_query ('SELECT name FROM kontakt WHERE tel="'_$tel_'"');
Das ist mir durchaus klar _. nur mir geht es um die abfrage von den sms + kontakten _.
Das er die ganzen sms durchgeht und dann sagt -> X sms von kontakten und X von nicht kontakten.
Mit select name -> bekomme ich ja nur die namen und keinerlei count als auch nicht die gesamte anzahl der kontakte die mir gesimst haben_.
*push* hoffe es kann mir wer helfen :)
DOWNandOUT
10.03.2012, 12:23
[PHP] Namen lookup
<?php
$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test", $mysql);
$query = "SELECT a-rufnummer
FROM sms_tabelle a
LEFT JOIN namen_tabelle w ON ( w-tel )
WHERE w-tel = a-rufnummer";
$result = mysql_query($query) OR die(mysql_error());
$count = mysql_num_rows($result);
$query_a = "SELECT * FROM `sms_tabelle`";
$result_a = mysql_query($query_a) OR die(mysql_error());
$count_a = mysql_num_rows($result_a);
$count_x = $count_a - $count;
echo "Du hast ". $count . " neue SMS von Kontakten mit Namen";
echo "<br /><br />Du hast ". $count_x . " neue SMS von Kontakten ohne Namen";
?>
Erzeugt mit den Daten die du in den Anfangspost geschrieben hast folgende Ausgabe:
Du hast 2 neue SMS von Kontakten mit Namen
Du hast 1 neue SMS von Kontakten ohne Namen
Musst natürlich dann evtl. die Tabellen und Spaltennamen ändern, hab jetzt einfach die namen genommen die du auch im anfangspost angegeben hast und die Tabelle mit den SMS "sms_tabelle" und die andere "namen_tabelle" genannt.
peace 8)
funkt perfekt ;))
Meine kurze frage noch hab nun folgendes erweitert_:
id - name - tel1 - tel2
1 - testy - 491245435 4912345678
2 - peter - 4927272727
Die frage wie kann ich nun auch tele2 prüfen lassen damit das eben auch als "möglichkeit" gesehn wird als auch das + das nun leider aus der tabelle raus musste dennoch gewertet wird bei den Kontakten???
Bei den SMS ist und bleibt ein + vor der Rufnummer erhalten_.
big big big thanks ;)
powernator
11.03.2012, 00:48
_sql_1keydata-com/de/sql-and-or-php
WHERE w-tel = a-rufnummer OR w-tel2 = a-rufnummer
DOWNandOUT
11.03.2012, 12:51
<?php
$mysql = mysql_connect("localhost", "root", "");
mysql_select_db("test", $mysql);
$query = mysql_query("SELECT * FROM `sms_tabelle`") OR die(mysql_error());
$num = mysql_num_rows($query);
$array = array();
$x = 0;
$counter = 0;
while($row = mysql_fetch_object($query)) {
$array[$x] = substr($row->rufnummer, 1);
$x++;
}
for($i = 0; $i < count($array); $i++) {
$query_a = mysql_query("SELECT * FROM `namen_tabelle` WHERE `tel` = '"_$array[$i]_"' OR `tel2` = '"_$array[$i]_"'");
$num_a = mysql_num_rows($query_a);
if($num_a > 0) {
$counter++;
}
}
$count_x = $num - $counter;
echo "Du hast ". $counter . " neue SMS von Kontakten mit Namen";
echo "<br /><br />Du hast ". $count_x . " neue SMS von Kontakten ohne Namen";
?>
funktioniert so. Obs anders geht weiss ich nicht, wegen dem kack "+" _._, naja aber so gehts 8)
peace
werds testen wenn ich zeit haben :) eine frage noch - wie komm ich nun an die nicht kontakte -> das ich da drauf klicke und eine oname-php aufgeht und mir die entrys anzeigt die ohne selectiert wurden??
_sql_1keydata-com/de/sql-and-or-php
WHERE w-tel = a-rufnummer OR w-tel2 = a-rufnummer
Danke für die Simple lösung dachte es klappt wegen dem LEFT JOIN nicht , hat aber durchaus geklappt :)
Nun fehlt nur mehr die "nicht" kontakt sms auszulesen bzw. anzuzeigen.