SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 15.01.2015, 16:54:16
kidchino kidchino ist offline
Anfänger
 
Registriert seit: Jan 2015
Alter: 41
Beiträge: 19
Zählen von ";" in einer Zelle

Hey zusammen,

ich bin ziemlich neu und noch nicht sehr mit Mysql vertraut.

Ich habe eine Datenbank mit zwei Spalten: "Titel" und "Autoren"

Titel Autoren

"Lach und Sachgeschichten" "Schultz, B.; Meiner, A.; Berner, G."

Nun würde ich gern die Anzahl der Autoren zählen, also eigentlich die Anzahl der ";" plus 1.

Geht das irgendwie?

LG
kid
Mit Zitat antworten
  #2  
Alt 15.01.2015, 17:08:24
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Zählen von ";" in einer Zelle

Unglückliche DB Struktur!

Tipp:
"Die 5 Normalformen" ausdrucken und unters Kopfkissen legen.

Tipp2:
Autoren und Bücher stehen in einer n:m Relation
Mit Zitat antworten
  #3  
Alt 15.01.2015, 18:50:55
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Zählen von ";" in einer Zelle

Zitat:
Zitat von kidchino Beitrag anzeigen

Geht das irgendwie?

LG
kid

Ja.

Code:
test=*# select length('Schultz, B.; Meiner, A.; Berner, G.') - length(regexp_replace('Schultz, B.; Meiner, A.; Berner, G.',';','','g')) + 1 as "Kinder, macht das nicht zu Hause";
 Kinder, macht das nicht zu Hause
----------------------------------
                                3
(1 row)
Warum die Spalte so heißt wurde Dir in der anderen Mausgeschichte ja schon erklärt.
Mit Zitat antworten
  #4  
Alt 16.01.2015, 14:03:48
kidchino kidchino ist offline
Anfänger
 
Registriert seit: Jan 2015
Alter: 41
Beiträge: 19
AW: Zählen von ";" in einer Zelle

Hi,
@pguser:
Das ist ja eine sehr charmante lösung :) Die gefällt mir. Ich hab sie dann noch ein bisschen für MySQL angepasst:
SELECT *, length(author) - length(replace(author, ';',''))+1 AS NumbersAuthor FROM Table

@DokuLeseHemmung:
Manchmal kann man sich nicht aussuchen, was für eine Datenbank man bekommt und wie gut oder schlecht sie.
Es gibt sogar eine Buch ID und ich würde natürlich gerne eine neue Tabelle erstellen, wo steht:
BuchID1 Schultz
BuchID1 Meiner
BuchID1 Berner.

Aber ich weiß nicht wie.
Ich finde immer viel über "concat", also wie ich bspw. Titel, Vorname und Nachname zusammen schreiben kann, aber anders herum finde ich nichts.

VG
kid
Mit Zitat antworten
  #5  
Alt 16.01.2015, 14:08:49
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Zählen von ";" in einer Zelle

Zitat:
Zitat von kidchino Beitrag anzeigen
Ich finde immer viel über "concat", also wie ich bspw. Titel, Vorname und Nachname zusammen schreiben kann, aber anders herum finde ich nichts.

VG
kid
Verständlich. Klar denkende Menschen machen das nicht.
Mit Zitat antworten
  #6  
Alt 16.01.2015, 14:12:55
kidchino kidchino ist offline
Anfänger
 
Registriert seit: Jan 2015
Alter: 41
Beiträge: 19
AW: Zählen von ";" in einer Zelle

@pguser:
würdest Du diesen Inhalt
"Schultz, B.; Meiner, A.; Berner, G."
nicht trennen?

Mein Ziel wäre ja schon:

BuchID1 Schultz
BuchID1 Meiner
BuchID1 Berner
BuchID2 Müller.
VG
Mit Zitat antworten
  #7  
Alt 16.01.2015, 14:24:20
kidchino kidchino ist offline
Anfänger
 
Registriert seit: Jan 2015
Alter: 41
Beiträge: 19
AW: Zählen von ";" in einer Zelle

Ich prbiere gerade mal hiermit ein wenig rum,

SELECT *, SUBSTRING_INDEX(author,';',1) AS Author1,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',2),';',-1) AS Author2,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',3),';',-1) AS Author3,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',4),';',-1) AS Author4,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',5),';',-1) AS Author5,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',6),';',-1) AS Author6,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',7),';',-1) AS Author7,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',8),';',-1) AS Author8,
SUBSTRING_INDEX(SUBSTRING_INDEX(author,';',9),';',-1) AS Author9
FROM uic.author_count;

Aber das macht ja bei max. 1300 Buchautoren auch irgendwie keinen Sinn, zumal bei einem Buch mit nur einem Autor ja trotzdem 9 mal der gleiche Autor in allen 9 Spalten steht
Mit Zitat antworten
  #8  
Alt 16.01.2015, 14:59:07
Benutzerbild von BozzaCoon
BozzaCoon BozzaCoon ist offline
Anfänger
 
Registriert seit: Dec 2014
Alter: 35
Beiträge: 20
AW: Zählen von ";" in einer Zelle

Hallo Kidchino,
echt eine Misere mit der Datenbankstruktur die du da hast...
was hällst du von folgendem Vorschlag:
Code:
SELECT *, substring_index(substring_index(author,';',1),';',-1) AS SubString1,
substring_index(substring_index(author,';',2),';',-1) AS SubString2,
substring_index(substring_index(author,';',3),';',-1) AS SubString3
FROM kidchino
where substring_index(substring_index(author,';',2),';',-1) != substring_index(substring_index(author,';',3),';',-1)
Wenn du bist zu 9 Autoren pro Buch hast... solltest du warscheinlich bei 9 Autoren anfangen und abfragen bei welchen Datenzeilen Autor 8 und 9 nicht übereinstimmt und speicherst die resultate in eine neue Tabelle (mit BücherID).
Wenn das geklappt hat leerst du alle Datensätze auf die das erfolgreich angewendet werden konnte (nur die Authoren ersetzen durch "") und stellst die selbe Anfrage mit 8 Autoren.
also welche Bücher gibt es wo der 7.te Autor != 8.te Autor und so weiter bis du alle durch hast.
(Die spalte autoren ist ja im nachhinein überflüssig da du ne neue Tabelle mit BücherID und Autor hast)

edit: ergebnis ist eine tabelle die in etwa so aussieht:
ID - Buchid - Autor1 - Autor2 - Autor3 - Autor4 - Autor5 - Autor6 - Autor7 - Autor8 - Autor9

Diese Tabelle kann man ja später in eine 3 spaltige Tabelle verschieben und alles wirkt super. :-)

Klingt kompliziert... ist es warscheinlich auch...
vielleicht konnt ich dir damit trozdem helfen.
Lg BozzaCoon

Geändert von BozzaCoon (16.01.2015 um 15:14:09 Uhr)
Mit Zitat antworten
  #9  
Alt 16.01.2015, 15:57:44
kidchino kidchino ist offline
Anfänger
 
Registriert seit: Jan 2015
Alter: 41
Beiträge: 19
AW: Zählen von ";" in einer Zelle

Hey BozzaCoon,

danke für die Hilfe!!!
Ich habe jetzt (mit Excels Hilfe ;) ) diese Zeilen erstellt.
SELECT *, substring_index(substring_index(author,';',1),';',-1) AS SubString1,
substring_index(substring_index(author,';',2),';',-1) AS SubString2,
substring_index(substring_index(author,';',3),';',-1) AS SubString3
...
substring_index(substring_index(author,';',1268),';',-1) AS SubString1268
FROM author_count

Aber jetzt habe ich bei Buch1 (das hat nur einen Autor:Autor1) natürlich 1268 Spalten mit jeweils Schultz.
jetzt weiß ich nicht mehr weiter :(
Mit Zitat antworten
  #10  
Alt 16.01.2015, 16:00:18
pguser pguser ist offline
Junior Member
 
Registriert seit: Apr 2014
Alter: 57
Beiträge: 186
AW: Zählen von ";" in einer Zelle

Zitat:
Zitat von kidchino Beitrag anzeigen
jetzt weiß ich nicht mehr weiter :(
Geh zurück auf #2.
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
zählen wenn wonder PHP Grundlagen 8 22.12.2014 21:04:08
Tabelle in Forum-Post erstellen DerKontro HTML, CSS und JavaScript Help! 3 23.10.2007 15:03:32
Sonderzeichen und Ziffern zählen BeSt PHP Grundlagen 2 15.03.2006 19:43:57
Dateien zählen nach extensions selbi PHP Grundlagen 26 20.05.2005 08:23:52
Zeilenumbruch in Zelle verhindern? silberlocke HTML, CSS und JavaScript Help! 7 05.04.2005 14:18:20


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:15:21 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt