PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu explode


pfuchs
03.02.2005, 15:47:46
Hallo Forumer,

ich habe zwei Fragen zu explode und hoffe Ihr könnt mir weiterhelfen.

1. Zahl zwischen zwei Trennzeichen ermitteln

Ich habe Seitennamen a la "xxx-4.html, xxx-102.html

Wie kann ich mit die Zahl zwischen dem "-" und dem "." ermitteln?

Mit $SELF_PHP bekomme ich den gewünschten Seitennamen, das ist klar. Aber wie muss ich den Explode Befehl aufbauen?

2. Abgleich mit Zahlenkolonne

Diese ermittelte Zahl möchte ich mit einem Feld in einer mySQL-Datenbank abgleichen. Soweit ja ganz einfach.

Aber in dem Datenbank-Feld steht nicht nur eine Zahl sondern eine mit "," getrennte Zahlenkolonne. Also z.B. "10,24,35,78,99,..."

Spätestens hier habe ich erstmal gar keinen Ansatz mehr.

Wie müsste ich denn meine Abfrage aufbauen?

Freue mich über jeden Tipp!

Danke, Peter

c4
03.02.2005, 15:55:41
Zu 1. $str='xxx-4.html';
$temp=explode('-', $str);
// bei einem Minus
list($zahl)=explode('.', $temp[1]);
// bei mehreren
list($zahl)=explode('.', $temp[count($temp)-1]);

Zu 2.
Du willst also prüfen, ob diese Zahl in dem String vorhanden ist, richtig? SELECT * FORM tabelle WHERE feld LIKE '%,$zahl,%' Sollte mysql_num_rows() größer 0 sein, dann gibt's die Zahl da drin.

Alles klarofix? :)

pfuchs
03.02.2005, 16:03:48
DANKE!!

xabbuh
03.02.2005, 20:57:07
Wenn du allerdings nur die Anzahl der Datensätze benötigst und diese nicht noch weiter in verarbeiten möchtest, solltest du MySQL auch gleich das zählen überlassen:

<?php
$sql = "SELECT
COUNT(column) AS anzahl
FROM
table
WHERE
column LIKE '%$var%'";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
print $var . ' ist ' . $row['anzahl'] . ' Mal in der Tabelle enthalten.';
?>