php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-02-2011, 18:51
Spunk95
 Registrierter Benutzer
Links : Onlinestatus : Spunk95 ist offline
Registriert seit: Jul 2010
Beiträge: 95
Spunk95 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Explode in sql bzw andere Möglichkeit?

Ich habe für meine Website ein "Alert" System eingebaut, es werden also für bestimmte Aktionen von Usern Einträge in die Datenbank geschrieben.
Beim Auswerten wollte ich, dass da nicht steht:
"MrX hat in dein Gästebuch geschrieben."
"MrY hat in dein Gästebuch geschrieben."
"MrZ hat in dein Gästebuch geschrieben."
sondern "MrX,MrY und MrZ haben in dein Gästebuch geschrieben."

Da dachte es wäre praktisch, wenn man nicht immer einen neuen Eintrag macht für einen Eintrag, sondern den vorhandenen zu aktualisieren. Wenn also schon einer in dein GB geschrieben hat steht bei userid nicht mehr X sonder X,Y

Somit muss ich nur noch 1 Eintrag auslesen und die Ids per explode trennen.
1.Frage) Ist das überhaupt sinnvoll?

Jetzt habe ich das Problem, dass ich nicht weiß wie ich den updaten soll, wenn jemand seinen GB-Einträg löscht. Eigentlich muss dafür nur das ,Y raus, aber dafür müsste man erstmal den Alert-Eintrag finden..

Ich könnte natürlich nach allen Einträgen suchen immer per explode gucken ob die id dabei ist, aber das würde ewig dauern...
2.Frage) Gibt es einige Möglichkeit in sql zu überprüfen ob die Id dabei ist? Like würde ja nicht gehen, weil bei "1" dann auch "10",etc gefunden werden würde...

Ich wäre dankbar für eine schnelle Antwort ob das geht oder nicht. Wenn nicht, dann mache ich halt beim Auslesen mehrere Aufrufe
Mit Zitat antworten
  #2 (permalink)  
Alt 17-02-2011, 18:56
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Ich wäre dankbar für eine schnelle Antwort ob das geht oder nicht.
Auch wenn es gehen würde.....
Die 5 Normal Formen
__________________
Wir werden alle sterben
Mit Zitat antworten
  #3 (permalink)  
Alt 17-02-2011, 19:00
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Spunk95 Beitrag anzeigen
Da dachte es wäre praktisch, wenn man nicht immer einen neuen Eintrag macht für einen Eintrag, sondern den vorhandenen zu aktualisieren. Wenn also schon einer in dein GB geschrieben hat steht bei userid nicht mehr X sonder X,Y
Nein, das wäre nicht praktisch.

Beschäftige dich mit dem Stichwort Normalisierung.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 17-02-2011, 19:04
Spunk95
 Registrierter Benutzer
Links : Onlinestatus : Spunk95 ist offline
Registriert seit: Jul 2010
Beiträge: 95
Spunk95 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Okay, danke für die schnellen Antworten, ich machs wieder wie vorher
Mal sehn was es mit Normalisierung auf sich hat.
Mit Zitat antworten
  #5 (permalink)  
Alt 17-02-2011, 19:16
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Zitat von Spunk95 Beitrag anzeigen
Okay, danke für die schnellen Antworten, ich machs wieder wie vorher

Dieses:
Zitat:
Wenn nicht, dann mache ich halt beim Auslesen mehrere Aufrufe
??
Hört sich auch nicht gut an....
A Visual Explanation of SQL Joins
SQL und relationale Algebra

Zitat:
Zitat von Spunk95 Beitrag anzeigen
Mal sehn was es mit Normalisierung auf sich hat.
Gute Idee!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #6 (permalink)  
Alt 17-02-2011, 20:12
Spunk95
 Registrierter Benutzer
Links : Onlinestatus : Spunk95 ist offline
Registriert seit: Jul 2010
Beiträge: 95
Spunk95 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Danke für die Links. Aber ein Join ist hierbei ja nicht sinnvoll, weil es ja die gleiche Tabelle ist. Jetzt hole ich alle Alerts so raus:

PHP-Code:
$all_alerts mysql_query("SELECT alerts.*,users.name,users.is_mod,users.is_admin 
FROM alerts,users WHERE uid = users.id 
AND uid = '"
.$userid."' AND alert_from != '".$userid."' ORDER BY date DESC LIMIT 0,10"); 
Aber ich wüsste nicht, wie ich jetzt da noch einbauen kann, dass nur 1 Eintrag angezeigt wird mit 1/2/mehr Namen.
Mit Zitat antworten
  #7 (permalink)  
Alt 18-02-2011, 01:42
medium22
 Registrierter Benutzer
Links : Onlinestatus : medium22 ist offline
Registriert seit: Mar 2006
Beiträge: 308
medium22 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

PHP-Code:
$arr_usernames = array();

$all_alerts mysql_query("SELECT 
  alerts.*,
  users.name AS username,
  users.is_mod,
  users.is_admin 
FROM 
  alerts, 
  users 
WHERE 
  uid = users.id 
AND 
  uid = '"
.$userid."' 
AND 
  alert_from != '"
.$userid."' 
ORDER BY date DESC LIMIT 0,10"
);  
while (
$row mysql_fetch_array($all_alerts)) {
  
// ..
  
$arr_usernames[] = $row['username'];
  
// ...
}
$zaehle_inhalt count($arr_usernames);
$namen implode(", "$arr_usernames);
echo 
$namen
if (
$zaehle_inhalt >= 1) {
  echo 
" haben";
}
else {
  echo 
" hat";

echo 
" in dein Gästebuch geschrieben."
Ungetestet!!

Mal ganz davon abgesehen, dass ein JOIN hier sehr wohl Sinn machen würde und '*' im Normalfall zu vermeiden ist.
Mit Zitat antworten
  #8 (permalink)  
Alt 18-02-2011, 07:52
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Zitat von Spunk95 Beitrag anzeigen
. Aber ein Join ist hierbei ja nicht sinnvoll, weil es ja die gleiche Tabelle ist.
>>> FROM alerts,users
Das sieht aber schon wie ein JOIN aus!
__________________
Wir werden alle sterben
Mit Zitat antworten
  #9 (permalink)  
Alt 18-02-2011, 15:50
Spunk95
 Registrierter Benutzer
Links : Onlinestatus : Spunk95 ist offline
Registriert seit: Jul 2010
Beiträge: 95
Spunk95 zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von combie Beitrag anzeigen
>>> FROM alerts,users
Das sieht aber schon wie ein JOIN aus!
Jaja, ihr schlauschnacker Ich meinte kein weiterer Join

@medium: Vielen Dank für den Code, hab ihn etwas angepasst und jetzt klappt es echt gut
Werde auch da * noch ausbaun.

Danke euch :=)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array oder andere Möglichkeit? owi PHP Developer Forum 3 21-08-2008 07:52
gibts eine möglichkeit DeadNovum SQL / Datenbanken 6 29-11-2003 08:58
Vorschau-Möglichkeit... delta85 PHP Developer Forum 1 15-10-2003 11:25
Schnellste Möglichkeit? phpdestroy PHP Developer Forum 7 09-06-2002 13:38
Gibt es ein Möglichkeit... heinrich PHP Developer Forum 3 18-09-2001 15:42

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:47 Uhr.