2017-06-20 1 views
0

Ich versuche, die letzten 7 Zeichen aus einer Zeichenfolge in PHP zu entfernen, bevor Sie es als Ergebnis in eine Tabelle schreiben. Wenn ich die Mysql-Abfrage in Navicat erstelle, bekomme ich die gewünschte Zeichenfolge, aber ich kann diese nicht in PHP verschieben und es funktionieren lassen. Hier ist die Arbeits Mysql query (in Navicat):Entfernen Sie letzte 7 Zeichen aus String in Mysql/PHP

SELECT 
SUBSTRING(ssp_subjects.uid, 1, LENGTH(ssp_subjects.uid) -7), 
ssp_subjects.namefirst, 
ssp_subjects.namelast, 
ssp_subjects.imageactual, 
ssp_subjects.accesscode, 
ssp_subjects.correction, 
ssp_subjects.correctiondate 
FROM 
ssp_subjects 
WHERE 
ssp_subjects.correction = 1 

Returns:

CCU-SOC-14-05-31-A KYLE O'CONNOR 29 GFKDPFLM3F 1 2017.06.20 09.14 : 39

(Dies ist richtig, da es die letzten 7 Zeichen vom Ende der UID getrimmt.)

In PHP ich versuche, eine ähnliche Tabelle zu bauen, aber ich kann nicht schreiben zu können scheinen die SUBSTRING-Anweisung korrekt. Dies ist, wie ich den Tisch bin Gebäude in PHP:

 $sql = "SELECT 
    ssp_subjects.correctiondate, 
    ssp_subjects.namelast, 
    ssp_subjects.namefirst, 
    ssp_subjects.imageactual, 
    ssp_subjects.accesscode, 
    ssp_subjects.uid 
    FROM 
     ssp_subjects 
    WHERE 
     ssp_subjects.correction = 1"; 

    $result = $conn->query($sql); 

if ($result->num_rows > 0) { 
    echo "<table><tr><th>Date</th><th>Job Name</th><th>Team Number</th><th>Type</th><th>Last Name</th><th>First Name</th><th>Access Code</th><th>Sequence</th><th>Card</th><th>Image</th><th>UID</th><th>Order</th></tr>"; 
    // output data of each row 
    while($row = $result->fetch_assoc()) { 
     echo "<tr> 
     <td>".$row["correctiondate"]."</td> 
     <td><p>Corrections</p></td> 
     <td><p>10</p></td> 
     <td><p>Player</p></td> 
     <td>".$row["namelast"]." </td> 
     <td>".$row["namefirst"]."</td> 
     <td>".$row["accesscode"]." </td> 
     <td><p>1000</p></td> 
     <td>".$row["imageactual"]." </td> 
     <td> ".$row["uid"]." </td> 
     <td><p>1x1</p></td> 
     </tr>"; 
     } 
     echo "</table>"; 
    } else { 
     echo "0 results"; 
    } 

Wenn ich versuche, SUBSTR hinzuzufügen in PHP es eine gibt „Nicht definierte Index: uid“ Fehler, anstelle des beschnittenen Strings.

$sql = "SELECT 
    ssp_subjects.correctiondate, 
    ssp_subjects.namelast, 
    ssp_subjects.namefirst, 
    ssp_subjects.imageactual, 
    ssp_subjects.accesscode, 
    SUBSTRING(ssp_subjects.uid, 1, LENGTH(ssp_subjects.uid) -7) 
FROM 
    ssp_subjects 
WHERE 
    ssp_subjects.correction = 1"; 

$result = $conn->query($sql); 

Vielen Dank im Voraus!

+3

'substr ($ string, -7)' – Pickle

+0

ich ziemlich sicher bin, dass gleiche SQL in Ihrer Abfrage funktioniert . Warum in PHP? – mkaatman

+0

Ich benutze PHP, weil ich einen Prozess erstellen muss, der von unseren Labortechnikern repliziert werden kann. Unsere interne Datenbank ist in PHP geschrieben. Das Endziel ist es, eine Tabelle zu erstellen, die wahrscheinlich per CSV "heruntergeladen" werden kann. Ich habe gerade mit meinem Versuch begonnen, den Tisch zu bauen. –

Antwort

2

Der Code für die letzten 7 Zeichen aus einer Zeichenfolge in PHP zu entfernen, ist

$string = substr($string, 0, -7);

Verwandte Themen